27class DAESolverInTime {
31 typedef Teuchos::RCP<Problem_Type> ProblemPtr_Type;
32 typedef typename Problem_Type::CommConstPtr_Type CommConstPtr_Type;
33 typedef typename Problem_Type::MapConstPtr_Type MapConstPtr_Type;
34 typedef typename Problem_Type::MultiVector_Type MultiVector_Type;
35 typedef typename Problem_Type::MultiVectorPtr_Type MultiVectorPtr_Type;
36 typedef typename Problem_Type::MultiVectorConstPtr_Type MultiVectorConstPtr_Type;
37 typedef typename Problem_Type::BlockMatrix_Type BlockMatrix_Type;
38 typedef typename Problem_Type::BlockMatrixPtr_Type BlockMatrixPtr_Type;
39 typedef typename Problem_Type::BlockMultiVector_Type BlockMultiVector_Type;
40 typedef typename Problem_Type::BlockMultiVectorPtr_Type BlockMultiVectorPtr_Type;
41 typedef Teuchos::Array<MultiVectorPtr_Type> MultiVectorPtrArray_Type;
42 typedef Teuchos::Array<MultiVectorConstPtr_Type> MultiVectorConstPtrArray_Type;
43 typedef Teuchos::Array<BlockMultiVectorPtr_Type> BlockMultiVectorPtrArray_Type;
44 typedef typename Problem_Type::FEFacPtr_Type FEFacPtr_Type;
45 typedef typename Problem_Type::DomainConstPtr_Type DomainConstPtr_Type;
46 typedef typename Problem_Type::Matrix_Type Matrix_Type;
47 typedef typename Problem_Type::MatrixPtr_Type MatrixPtr_Type;
50 typedef Teuchos::RCP<NonLinProb_Type> NonLinProbPtr_Type;
52 typedef Teuchos::RCP<TimeProblem_Type> TimeProblemPtr_Type;
55 typedef Teuchos::RCP<Exporter_Type> ExporterPtr_Type;
56 typedef Teuchos::RCP<ExporterTxt> ExporterTxtPtr_Type;
59 typedef Teuchos::RCP<FSIProblem_Type> FSIProblemPtr_Type;
62 typedef Teuchos::RCP<Domain_Type > DomainPtr_Type;
63 typedef typename Domain_Type::Mesh_Type Mesh_Type;
64 typedef typename Domain_Type::MeshPtr_Type MeshPtr_Type;
68 typedef Teuchos::RCP<MeshUnstr_Type> MeshUnstrPtr_Type;
70 DAESolverInTime(CommConstPtr_Type comm);
72 DAESolverInTime(ParameterListPtr_Type ¶meterList, CommConstPtr_Type comm);
74 DAESolverInTime(
SmallMatrix<int> &timeStepDef, ParameterListPtr_Type ¶meterList, CommConstPtr_Type comm);
80 void setProblem(Problem_Type &problem);
84 void setupTimeStepping();
88 void advanceWithLoadStepping();
90 void advanceInTimeLinear();
92 void advanceInTimeNonLinear();
95 void advanceInTimeLinearNewmark();
98 void advanceInTimeNonLinearNewmark();
102 void advanceInTimeFSI();
104 void advanceInTimeLinearMultistep();
106 void advanceInTimeNonLinearMultistep();
108 void advanceInTimeLinearExternal();
110 void advanceInTimeNonLinearExternal();
112 void setTimeStep(
double dt);
114 void setFinalTime(
double T);
116 void checkTimeSteppingDef();
118 void exportTimestep();
120 void exportTimestep(BlockMultiVectorPtr_Type& solShort);
122 void setupExporter();
124 void setupExporter(BlockMultiVectorPtr_Type& solShort);
126 void closeExporter();
128 void addRhsDAE(
SmallMatrix<double> coeff, BlockMatrixPtr_Type bMat, BlockMultiVectorPtr_Type vec);
138 void addSourceTermToRHS(
double coeff);
142 void getMultiStageCoefficients(
SmallMatrix<double> &problemCoeff,
int stage,
int stagePrior,
bool forRhs =
false);
144 void buildMultiStageRhs(
int stage, Teuchos::Array<BlockMatrixPtr_Type>& matrixPrevStages, BlockMultiVectorPtrArray_Type& solutionPrevStages );
146 CommConstPtr_Type comm_;
148 ParameterListPtr_Type parameterList_;
149 bool isTimeSteppingDefined_;
151 ProblemPtr_Type problem_;
152 TimeProblemPtr_Type problemTime_;
155 Teuchos::RCP<TimeSteppingTools> timeSteppingTool_;
156 FEFacPtr_Type feFactory_;
158 std::vector<ExporterPtr_Type> exporter_vector_;
159 MultiVectorConstPtrArray_Type export_solution_vector_;
160 bool boolExporterSetup_;
165 TimePtr_Type solveProblemTimer_;
168 TimePtr_Type reassmbleAddInterfaceRHSTimer_;
169 TimePtr_Type reassmbleUpdateMeshDisplacementTimer_;
170 TimePtr_Type reassmbleSolveGeometryTimer_;
171 TimePtr_Type reassmbleMoveMeshTimer_;
172 TimePtr_Type reassmbleSolidMassAndRHSTimer_;
173 TimePtr_Type reassmbleForTimeTimer_;
174 TimePtr_Type reassmbleUpdateFluidInTimeTimer_;
Definition Domain_decl.hpp:20