00001 /* _______ __ 00002 / ___/ / ___ __ _ / / ___ 00003 / /__/ _ \/ _ \/ ' \/ _ \/ _ \ 00004 \___/_//_/\___/_/_/_/_.__/\___/ 00005 */ 00006 00007 // AMRNavierStokes.cpp 00008 00009 // 00010 // This software is copyright (C) by the Lawrence Berkeley 00011 // National Laboratory. Permission is granted to reproduce 00012 // this software for non-commercial purposes provided that 00013 // this notice is left intact. 00014 // 00015 // It is acknowledged that the U.S. Government has rights to 00016 // this software under Contract DE-AC03-765F00098 between 00017 // the U.S. Department of Energy and the University of 00018 // California. 00019 // 00020 // This software is provided as a professional and academic 00021 // contribution for joint exchange. Thus it is experimental, 00022 // is provided ``as is'', with no warranties of any kind 00023 // whatsoever, no support, no promise of updates, or printed 00024 // documentation. By using this software, you acknowledge 00025 // that the Lawrence Berkeley National Laboratory and 00026 // Regents of the University of California shall have no 00027 // liability with respect to the infringement of other 00028 // copyrights by any part of this software. 00029 // 00030 // Dan Martin, Fri, Jan 14, 2000 00031 00032 00033 /*****************/ 00034 /*****************/ 00035 00036 #ifndef _AMRNavierStokeHeaders_H_ 00037 #define _AMRNavierStokeHeaders_H_ 00038 00039 #include <iostream> 00040 using std::cout; 00041 using std::cin; 00042 using std::cerr; 00043 #include <cmath> 00044 #include <cstdio> 00045 00046 #include "parstream.H" 00047 #include "LoadBalance.H" 00048 #include "LayoutIterator.H" 00049 #include "FineInterp.H" 00050 #include "ParmParse.H" 00051 #include "LoHiSide.H" 00052 #include "BoxIterator.H" 00053 #include "ProblemDomain.H" 00054 #include "AMRIO.H" 00055 00056 #ifdef HDF5 00057 #include "HDF5.H" 00058 #endif 00059 00060 #include "AMRNavierStokes.H" 00061 #include "GodunovTrace.H" 00062 #include "basicVelBC.H" 00063 #include "ExtrapBC.H" 00064 #include "HOExtrapBC.H" 00065 #include "PoissonBC.H" 00066 #include "scalarDirichletBC.H" 00067 #include "viscousBC.H" 00068 #include "Divergence.H" 00069 #include "CellToEdge.H" 00070 #include "EdgeToCell.H" 00071 #include "computeNorm.H" 00072 #include "IAMRGodunovF_F.H" 00073 #include "PROB_F_F.H" 00074 #include "AMRNS_F_F.H" 00075 #include "timeInterp.H" 00076 #include "Gradient.H" 00077 00078 #include "Timer.H" 00079 00080 #ifdef DEBUG 00081 #include "computeSum.H" 00082 #endif 00083 00084 #ifdef MATCH_OLDCODE 00085 // this is necessary because we call library fortran directly 00086 #include "PoissonOpF_F.H" 00087 #endif 00088 00089 // #define TEST_TAGGING 00090 00091 #define ADVECT_GROW 2 00092 00093 #ifdef CH_USE_DOUBLE 00094 #define TIME_EPS 1.0e-10 00095 #else 00096 #define TIME_EPS 1.0e-5 00097 #endif 00098 00099 // small parameter used in defining TGA constants for viscous solves 00100 #define TGA_EPS 1.0e-8 00101 00102 //#include "AMRNavierStokesTimers.H" 00103 00104 extern Timer TimeNSadvance; 00105 extern Timer TimeNSadvanceIntro ; 00106 extern Timer TimeNSadvanceCompAV ; 00107 extern Timer TimeNSadvanceAdvectLambda ; 00108 extern Timer TimeNSadvanceAdvectDiffScalar ; 00109 extern Timer TimeNSadvancePredictVelocities; 00110 extern Timer TimeNSadvanceCompUStar ; 00111 extern Timer TimeNSadvanceLevelProject ; 00112 00113 extern Timer cs0; 00114 extern Timer cs1; 00115 extern Timer cs2; 00116 extern Timer cs3; 00117 extern Timer cs4; 00118 extern Timer cs5; 00119 extern Timer cs7; 00120 extern Timer cs8; 00121 extern Timer TimeNScompUStarlevelSolve1; 00122 extern Timer cs10; 00123 extern Timer cs11; 00124 extern Timer TimeNScompUStarlevelSolve2; 00125 extern Timer cs13; 00126 extern Timer cs14; 00127 extern Timer cs15; 00128 00129 extern Timer TimeNSpost; 00130 extern Timer TimeNSpostPart1; 00131 extern Timer TimeNSpostPart2; 00132 extern Timer TimeNSpostImplicitReflux; 00133 extern Timer TimeNSpostSyncOperations; 00134 extern Timer TimeNSpostDiagnostic; 00135 extern Timer TimeNSpostCreateBC; 00136 00137 extern Timer TimeNSpostRegrid; 00138 extern Timer TimeinitialVelocityProject; 00139 extern Timer TimedoPostRegridOps; 00140 extern Timer TimeinitializeGlobalPressure; 00141 00142 extern Timer TimecomputeAdvectionVelocities; 00143 //extern Timer TimeSetPBC; 00144 extern Timer TimeTraceState; 00145 extern Timer TimelevelMacProject; 00146 00147 extern Timer NST_Everything; 00148 extern Timer TimeSA_diffusionSolver; 00149 extern Timer TimeSA_viscousSolver; 00150 extern Timer TimeSA_initialData; 00151 extern Timer TimeSA_velocity; 00152 extern Timer TimeSA_scalar; 00153 00154 extern Timer TimeLS_advectScalar1; 00155 extern Timer TimeLS_advectScalar2; 00156 extern Timer TimeLS_compUstar1; 00157 extern Timer TimeLS_compUstar2; 00158 extern Timer TimeLS_compUstarInit1; //noel 00159 extern Timer TimeLS_compUstarInit2; //noel 00160 00161 00162 // AMRNavierStokeInit.cpp 00163 extern Timer TF_INITVORT; 00164 extern Timer TF_COMPUTEVORT; 00165 extern Timer TF_INITSCAL; 00166 00167 // AMRNavierStokeVel.cpp 00168 extern Timer TF_OPERATORLAP_ustar; 00169 extern Timer TF_OPERATORLAP_ustarInit; 00170 extern Timer TF_UDELS_predictVelocities; 00171 00172 // AMRNavierStokeScal.cpp 00173 extern Timer TF_OPERATORLAP_advectDiffuseScalar; 00174 00175 00176 #endif