31class DAESolverInTime {
35 typedef Teuchos::RCP<Problem_Type> ProblemPtr_Type;
36 typedef typename Problem_Type::CommConstPtr_Type CommConstPtr_Type;
37 typedef typename Problem_Type::MapConstPtr_Type MapConstPtr_Type;
38 typedef typename Problem_Type::MultiVector_Type MultiVector_Type;
39 typedef typename Problem_Type::MultiVectorPtr_Type MultiVectorPtr_Type;
40 typedef typename Problem_Type::MultiVectorConstPtr_Type MultiVectorConstPtr_Type;
41 typedef typename Problem_Type::BlockMatrix_Type BlockMatrix_Type;
42 typedef typename Problem_Type::BlockMatrixPtr_Type BlockMatrixPtr_Type;
43 typedef typename Problem_Type::BlockMultiVector_Type BlockMultiVector_Type;
44 typedef typename Problem_Type::BlockMultiVectorPtr_Type BlockMultiVectorPtr_Type;
45 typedef Teuchos::Array<MultiVectorPtr_Type> MultiVectorPtrArray_Type;
46 typedef Teuchos::Array<MultiVectorConstPtr_Type> MultiVectorConstPtrArray_Type;
47 typedef Teuchos::Array<BlockMultiVectorPtr_Type> BlockMultiVectorPtrArray_Type;
48 typedef typename Problem_Type::FEFacPtr_Type FEFacPtr_Type;
49 typedef typename Problem_Type::DomainConstPtr_Type DomainConstPtr_Type;
50 typedef typename Problem_Type::Matrix_Type Matrix_Type;
51 typedef typename Problem_Type::MatrixPtr_Type MatrixPtr_Type;
54 typedef Teuchos::RCP<NonLinProb_Type> NonLinProbPtr_Type;
56 typedef Teuchos::RCP<TimeProblem_Type> TimeProblemPtr_Type;
59 typedef Teuchos::RCP<Exporter_Type> ExporterPtr_Type;
60 typedef Teuchos::RCP<ExporterTxt> ExporterTxtPtr_Type;
63 typedef Teuchos::RCP<FSIProblem_Type> FSIProblemPtr_Type;
66 typedef Teuchos::RCP<Domain_Type > DomainPtr_Type;
67 typedef typename Domain_Type::Mesh_Type Mesh_Type;
68 typedef typename Domain_Type::MeshPtr_Type MeshPtr_Type;
72 typedef Teuchos::RCP<MeshUnstr_Type> MeshUnstrPtr_Type;
74 DAESolverInTime(CommConstPtr_Type comm);
76 DAESolverInTime(ParameterListPtr_Type ¶meterList, CommConstPtr_Type comm);
78 DAESolverInTime(
SmallMatrix<int> &timeStepDef, ParameterListPtr_Type ¶meterList, CommConstPtr_Type comm);
84 void setProblem(Problem_Type &problem);
88 void setupTimeStepping();
92 void advanceWithLoadStepping();
94 void advanceInTimeLinear();
96 void advanceInTimeNonLinear();
99 void advanceInTimeLinearNewmark();
102 void advanceInTimeNonLinearNewmark();
106 void advanceInTimeFSI();
108 void advanceInTimeLinearMultistep();
110 void advanceInTimeNonLinearMultistep();
112 void advanceInTimeLinearExternal();
114 void advanceInTimeNonLinearExternal();
116 void setTimeStep(
double dt);
118 void setFinalTime(
double T);
120 void checkTimeSteppingDef();
122 void exportTimestep();
124 void exportTimestep(BlockMultiVectorPtr_Type& solShort);
126 void setupExporter();
128 void setupExporter(BlockMultiVectorPtr_Type& solShort);
130 void closeExporter();
132 void addRhsDAE(
SmallMatrix<double> coeff, BlockMatrixPtr_Type bMat, BlockMultiVectorPtr_Type vec);
142 void addSourceTermToRHS(
double coeff);
146 void getMultiStageCoefficients(
SmallMatrix<double> &problemCoeff,
int stage,
int stagePrior,
bool forRhs =
false);
148 void buildMultiStageRhs(
int stage, Teuchos::Array<BlockMatrixPtr_Type>& matrixPrevStages, BlockMultiVectorPtrArray_Type& solutionPrevStages );
150 CommConstPtr_Type comm_;
152 ParameterListPtr_Type parameterList_;
153 bool isTimeSteppingDefined_;
155 ProblemPtr_Type problem_;
156 TimeProblemPtr_Type problemTime_;
159 Teuchos::RCP<TimeSteppingTools> timeSteppingTool_;
160 FEFacPtr_Type feFactory_;
162 std::vector<ExporterPtr_Type> exporter_vector_;
163 MultiVectorConstPtrArray_Type export_solution_vector_;
164 bool boolExporterSetup_;
169 TimePtr_Type solveProblemTimer_;
172 TimePtr_Type reassmbleAddInterfaceRHSTimer_;
173 TimePtr_Type reassmbleUpdateMeshDisplacementTimer_;
174 TimePtr_Type reassmbleSolveGeometryTimer_;
175 TimePtr_Type reassmbleMoveMeshTimer_;
176 TimePtr_Type reassmbleSolidMassAndRHSTimer_;
177 TimePtr_Type reassmbleForTimeTimer_;
178 TimePtr_Type reassmbleUpdateFluidInTimeTimer_;
Definition Domain_decl.hpp:20