00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef SUNDANCE_H
00032 #define SUNDANCE_H
00033
00034
00035 #include "SundanceDefs.hpp"
00036 #include "SundanceOut.hpp"
00037 #include "SundancePathUtils.hpp"
00038 #include "Teuchos_Time.hpp"
00039 #include "Teuchos_GlobalMPISession.hpp"
00040 #include "Teuchos_TimeMonitor.hpp"
00041 #include "Teuchos_ParameterList.hpp"
00042 #include "Teuchos_ParameterXMLFileReader.hpp"
00043 #include "Teuchos_CommandLineProcessor.hpp"
00044
00045
00046 #include "SundanceTestFunction.hpp"
00047 #include "SundanceUnknownFunction.hpp"
00048 #include "SundanceUnknownParameter.hpp"
00049 #include "SundanceDiscreteSpace.hpp"
00050 #include "SundanceDiscreteFunction.hpp"
00051 #include "SundanceEssentialBC.hpp"
00052 #include "SundanceIntegral.hpp"
00053 #include "SundanceDerivative.hpp"
00054 #include "SundanceCoordExpr.hpp"
00055 #include "SundanceCellDiameterExpr.hpp"
00056 #include "SundanceCurveNormExpr.hpp"
00057 #include "SundanceCellVectorExpr.hpp"
00058 #include "SundanceStdMathOps.hpp"
00059 #include "SundanceParameter.hpp"
00060 #include "SundancePointwiseUserDefFunctor.hpp"
00061 #include "SundanceUserDefFunctor.hpp"
00062 #include "SundanceUserDefOp.hpp"
00063 #include "SundanceVectorCalculus.hpp"
00064 #include "SundanceCurveExpr.hpp"
00065
00066
00067 #include "SundanceCircle.hpp"
00068 #include "SundanceBox2D.hpp"
00069 #include "SundanceBox3D.hpp"
00070 #include "SundanceLine2D.hpp"
00071 #include "SundancePlane3D.hpp"
00072 #include "SundanceEllipse2D.hpp"
00073 #include "SundanceSphere.hpp"
00074 #include "SundancePolygon2D.hpp"
00075 #include "SundanceTriangleSurf3D.hpp"
00076 #include "SundanceDummyParametrizedCurve.hpp"
00077 #include "SundanceParamCurveIntegral.hpp"
00078 #include "SundanceParametrizedCurve.hpp"
00079 #include "SundanceCurveIntegralCalc.hpp"
00080 #include "SundanceCurveCollection.hpp"
00081
00082
00083 #include "SundanceMesh.hpp"
00084 #include "SundanceMeshType.hpp"
00085 #include "SundanceBasicSimplicialMeshType.hpp"
00086 #include "SundanceMeshSource.hpp"
00087 #include "SundanceMeshTransformation.hpp"
00088 #include "SundancePartitionedLineMesher.hpp"
00089 #include "SundanceExtrusionMeshTransformation.hpp"
00090 #include "SundancePartitionedRectangleMesher.hpp"
00091 #include "SundanceSerialPartitionerBase.hpp"
00092 #include "SundanceFileIOChacoPartitioner.hpp"
00093 #include "SundanceTriangleMeshReader.hpp"
00094 #include "SundanceExodusNetCDFMeshReader.hpp"
00095 #include "SundanceExodusMeshReader.hpp"
00096 #include "SundanceMeshBuilder.hpp"
00097 #include "SundanceBamgMeshReader.hpp"
00098 #include "SundanceHNMesher2D.hpp"
00099 #include "SundanceHNMeshType2D.hpp"
00100 #include "SundanceHNMesher3D.hpp"
00101 #include "SundanceHNMeshType3D.hpp"
00102
00103
00104 #ifdef HAVE_SUNDANCE_PEANO
00105 #ifdef HAVE_SUNDANCE_PEANO_NO_2D
00106 #else
00107 #include "SundancePeanoMeshType2D.hpp"
00108 #include "SundancePeanoMesher2D.hpp"
00109 #endif
00110 #ifdef HAVE_SUNDANCE_PEANO_NO_3D
00111 #else
00112 #include "SundancePeanoMeshType3D.hpp"
00113 #include "SundancePeanoMesher3D.hpp"
00114 #endif
00115 #endif
00116
00117
00118 #include "SundanceRefinementBase.hpp"
00119 #include "SundanceRefinementClass.hpp"
00120
00121
00122 #include "SundanceCellFilter.hpp"
00123 #include "SundanceMaximalCellFilter.hpp"
00124 #include "SundanceBoundaryCellFilter.hpp"
00125 #include "SundanceDimensionalCellFilter.hpp"
00126 #include "SundancePositionalCellPredicate.hpp"
00127 #include "SundanceDomainDefinition.hpp"
00128
00129
00130 #include "SundanceFieldWriter.hpp"
00131 #include "SundanceMatlabWriter.hpp"
00132 #include "SundanceDSVWriter.hpp"
00133 #include "SundanceVerboseFieldWriter.hpp"
00134 #include "SundanceTriangleWriter.hpp"
00135 #include "SundanceVTKWriter.hpp"
00136 #include "SundanceExodusWriter.hpp"
00137
00138
00139
00140 #include "SundanceBasisFamily.hpp"
00141 #include "SundanceBernstein.hpp"
00142 #include "SundanceQuadratureFamily.hpp"
00143 #include "SundanceLagrange.hpp"
00144 #include "SundanceLegendre.hpp"
00145 #include "SundanceGaussianQuadrature.hpp"
00146 #include "SundanceFeketeQuadrature.hpp"
00147 #include "SundanceTrapesoidQuadrature.hpp"
00148 #include "SundanceGaussLobattoQuadrature.hpp"
00149 #include "SundancePolygonQuadrature.hpp"
00150 #include "SundanceSurfQuadrature.hpp"
00151
00152
00153 #include "SundanceHermiteSpectralBasis.hpp"
00154
00155
00156 #include "SundanceCoordinateSystem.hpp"
00157 #include "SundanceLinearProblem.hpp"
00158 #include "SundanceLinearEigenproblem.hpp"
00159 #include "SundanceL2Projector.hpp"
00160 #include "SundanceNonlinearProblem.hpp"
00161 #include "SundanceFunctionalEvaluator.hpp"
00162 #include "SundanceFunctional.hpp"
00163 #include "SundanceRivaraDriver.hpp"
00164 #include "SundanceExprFieldWrapper.hpp"
00165 #include "SundanceNitscheBC.hpp"
00166 #include "SundanceBlock.hpp"
00167
00168
00169
00170 #include "PlayaVectorType.hpp"
00171 #include "PlayaEpetraVectorType.hpp"
00172 #include "PlayaEpetraMatrixMatrixProduct.hpp"
00173 #include "PlayaEpetraMatrixMatrixSum.hpp"
00174 #include "PlayaEpetraMatrixOps.hpp"
00175 #include "PlayaBICGSTABSolverDecl.hpp"
00176 #include "PlayaAztecSolver.hpp"
00177 #include "PlayaLinearSolverImpl.hpp"
00178 #include "PlayaLinearCombinationImpl.hpp"
00179 #include "PlayaLinearSolverBuilder.hpp"
00180 #include "PlayaMLOperator.hpp"
00181 #include "PlayaParameterListPreconditionerFactory.hpp"
00182 #include "SundancePCDPreconditioner.hpp"
00183 #include "PlayaEpetraMatrixMatrixProduct.hpp"
00184 #include "PlayaEpetraMatrixMatrixSum.hpp"
00185 #include "PlayaEpetraMatrixOps.hpp"
00186
00187
00188
00189
00190 #include "NOX.H"
00191 #include "NOX_Common.H"
00192 #include "NOX_Utils.H"
00193 #include "PlayaNOXSolver.hpp"
00194 #include "PlayaNonlinearSolver.hpp"
00195 #include "PlayaNonlinearSolverBuilder.hpp"
00196
00197
00198
00199 #include "PlayaAnasaziEigensolverDecl.hpp"
00200 #include "PlayaEigensolver.hpp"
00201
00202
00203
00204 #include "SundanceAToCDensitySampler.hpp"
00205 #include "SundanceCToAInterpolator.hpp"
00206
00207
00208
00209
00210
00211
00212 namespace Sundance
00213 {
00214
00215 using namespace PlayaExprTemplates;
00216 using namespace Playa;
00217 using namespace Teuchos;
00218 using Sundance::List;
00219
00220
00221
00222
00223
00224
00225
00226
00227 class SundanceGlobal
00228 {
00229 public:
00230
00231
00232 static void setOption(const std::string& optionName,
00233 int& value,
00234 const std::string& helpMsg);
00235
00236
00237 static void setOption(const std::string& optionName,
00238 std::string& value,
00239 const std::string& helpMsg);
00240
00241
00242 static void setOption(const std::string& optionName,
00243 double& value,
00244 const std::string& helpMsg);
00245
00246
00247 static void setOption(const std::string& optionTrueName,
00248 const std::string& optionFalseName,
00249 bool& value,
00250 const std::string& helpMsg);
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263 static int init(int* argc, char*** argv);
00264
00265
00266
00267
00268
00269 static int finalize();
00270
00271
00272 static void handleException(std::exception& e);
00273
00274
00275 static Teuchos::FancyOStream& os() ;
00276
00277
00278
00279 static bool passFailTest(bool pass);
00280
00281
00282 static bool passFailTest(double error, double tol);
00283
00284
00285 static bool passFailTest(const std::string& statusMsg,
00286 bool status, double error, double tol);
00287
00288
00289
00290
00291 static bool& showStartupMessage();
00292
00293
00294
00295 static bool& skipTimingOutput()
00296 {static bool rtn=false; return rtn;}
00297
00298
00299 static int& testStatus() {static int rtn = -1; return rtn;}
00300
00301
00302
00303 static CommandLineProcessor& clp()
00304 {static CommandLineProcessor rtn; return rtn;}
00305
00306 static bool checkTest(double error, double tol);
00307
00308
00309 };
00310
00311
00312
00313 void handleException(std::exception& e);
00314
00315
00316 bool passFailTest(bool pass);
00317
00318
00319 bool passFailTest(double error, double tol);
00320
00321
00322 bool passFailTest(const std::string& statusMsg,
00323 bool status, double error, double tol);
00324
00325
00326 int& testStatus() ;
00327
00328
00329 CommandLineProcessor& clp() ;
00330
00331
00332 int init(int* argc, char*** argv);
00333
00334
00335 int finalize();
00336
00337
00338
00339 void setOption(const std::string& optionName,
00340 int& value,
00341 const std::string& helpMsg);
00342
00343
00344 void setOption(const std::string& optionName,
00345 std::string& value,
00346 const std::string& helpMsg);
00347
00348
00349 void setOption(const std::string& optionName,
00350 double& value,
00351 const std::string& helpMsg);
00352
00353
00354 void setOption(const std::string& optionTrueName,
00355 const std::string& optionFalseName,
00356 bool& value,
00357 const std::string& helpMsg);
00358
00359 }
00360
00361
00362
00363
00364 #endif
00365