00001 #ifdef CH_LANG_CC
00002
00003
00004
00005
00006
00007
00008
00009 #endif
00010
00011 #ifndef _ADVECTDIFFUSEUTILS_H_
00012 #define _ADVECTDIFFUSEUTILS_H_
00013
00014 #include <cmath>
00015
00016 #include "AMR.H"
00017 #include "AMRLevelAdvectDiffuseFactory.H"
00018 #include "AdvectTestIBC.H"
00019 #include "AdvectionFunctions.H"
00020 #include "memtrack.H"
00021 #include "parstream.H"
00022
00023 #include "NamespaceHeader.H"
00024
00025
00026
00027
00028 extern void
00029 makeFinestDomain(ProblemDomain& a_domain,
00030 Real& a_dx);
00031
00032
00033
00034
00035 extern Real
00036 dtgNorm(const Vector< LevelData<FArrayBox>* >& a_src,
00037 const Vector< DisjointBoxLayout >& a_grids,
00038 const Vector<int>& a_refRatio,
00039 const ProblemDomain& a_coarseDom,
00040 const int& a_comp,
00041 const int& a_pval);
00042
00043
00044
00045
00046 extern void
00047 compareError(Vector<Real>& a_orders,
00048 const Vector< LevelData<FArrayBox>* >& a_errorFine,
00049 const Vector< LevelData<FArrayBox>* >& a_errorCoar,
00050 const Vector< DisjointBoxLayout >& a_gridsFine,
00051 const Vector< DisjointBoxLayout >& a_gridsCoar,
00052 const Vector<int>& a_refRat,
00053 const ProblemDomain& a_coarseDom,
00054 int a_testverbosity);
00055
00056
00057
00058
00059
00060 extern void
00061 getErrorFromCoarseAndFine(Vector< LevelData<FArrayBox>* >& a_errorCoar,
00062 const Vector< LevelData<FArrayBox>* >& a_solnCoar,
00063 const Vector< DisjointBoxLayout >& a_gridsCoar,
00064 const ProblemDomain& a_level0DomainCoar,
00065 const Vector< LevelData<FArrayBox>* >& a_solnFine,
00066 const Vector< DisjointBoxLayout >& a_gridsFine,
00067 const ProblemDomain& a_level0DomainFine,
00068 const Vector<int>& a_refRat);
00069
00070
00071
00072 extern void
00073 coarsenBoxes(Vector< Vector<Box> >& a_boxesCoar,
00074 const Vector<Vector<Box> >& a_boxesFine,
00075 int a_refToCoar);
00076
00077
00078 extern void
00079 getBoxes(Vector<Vector<Box> >& a_boxes,
00080 Vector<int>& a_refRat,
00081 const Box& a_domain);
00082
00083
00084
00085
00086 extern void
00087 getProblemDomain(ProblemDomain& a_domain);
00088
00089
00090
00091
00092 extern void
00093 getAdvectTestIBC(RefCountedPtr<AdvectTestIBC>& a_advPhys);
00094
00095
00096
00097
00098 extern void
00099 getAMRLADFactory(RefCountedPtr<AMRLevelAdvectDiffuseFactory>& a_fact,
00100 AdvectionVelocityFunction& a_velFunc,
00101 AdvectPhysics & a_advPhys);
00102
00103
00104
00105
00106 extern void
00107 getAdvectionVelocityFunction(AdvectionVelocityFunction& a_velFunc);
00108
00109
00110
00111
00112 extern void
00113 defineAMR(AMR& a_amr,
00114 RefCountedPtr<AMRLevelAdvectDiffuseFactory>& a_fact,
00115 const ProblemDomain& a_prob_domain,
00116 const Vector<int>& a_refRat);
00117
00118
00119
00120
00121 extern void
00122 setupAMRForAMRRun(AMR& a_amr);
00123
00124
00125
00126 #include "NamespaceFooter.H"
00127
00128 #endif