1 #ifndef KRATOS_TRILINOS_FRACTIONAL_STEP_SETTINGS_PERIODIC_H
2 #define KRATOS_TRILINOS_FRACTIONAL_STEP_SETTINGS_PERIODIC_H
7 #include "Epetra_MpiComm.h"
18 #include "../FluidDynamicsApplication/custom_utilities/solver_settings.h"
45 template<
class TSparseSpace,
74 const unsigned int ThisDomainSize,
75 const unsigned int ThisTimeOrder,
77 const bool MoveMeshFlag,
78 const bool ReformDofSet,
80 SolverSettings<TSparseSpace,TDenseSpace,TLinearSolver>(rModelPart,ThisDomainSize,ThisTimeOrder,UseSlip,MoveMeshFlag,ReformDofSet),
82 mrPeriodicVar(rPeriodicVar)
102 typename TLinearSolver::Pointer pLinearSolver,
103 const double Tolerance,
104 const unsigned int MaxIter)
override
114 bool CalculateReactions =
false;
115 bool CalculateNormDxFlag =
true;
132 BuilderSolverTypePointer pBuildAndSolver = Kratos::make_shared<TrilinosBlockBuilderAndSolverPeriodic<TSparseSpace, TDenseSpace, TLinearSolver > >(mrComm,RowSizeGuess,pLinearSolver,mrPeriodicVar);
134 SchemePointerType pScheme;
139 SchemePointerType
Temp = Kratos::make_shared<ResidualBasedIncrementalUpdateStaticSchemeSlip< TSparseSpace, TDenseSpace > >(DomainSize,DomainSize);
144 SchemePointerType
Temp = Kratos::make_shared< ResidualBasedIncrementalUpdateStaticScheme< TSparseSpace, TDenseSpace > >();
149 this->
mStrategies[
BaseType::Velocity] = Kratos::make_shared< ResidualBasedLinearStrategy<TSparseSpace, TDenseSpace, TLinearSolver > >(rModelPart, pScheme, pBuildAndSolver, CalculateReactions, ReformDofSet, CalculateNormDxFlag);
155 BuilderSolverTypePointer pBuildAndSolver = Kratos::make_shared< TrilinosBlockBuilderAndSolverPeriodic<TSparseSpace, TDenseSpace, TLinearSolver> >(mrComm,RowSizeGuess,pLinearSolver,mrPeriodicVar);
156 SchemePointerType pScheme = Kratos::make_shared< ResidualBasedIncrementalUpdateStaticScheme< TSparseSpace, TDenseSpace > >();
165 CalculateNormDxFlag);
169 KRATOS_THROW_ERROR(std::runtime_error,
"Error in TrilinosFractionalStepSettingsPeriodic: Unknown strategy label.",
"");
174 this->
mMaxIter[rStrategyLabel] = MaxIter;
182 typename TLinearSolver::Pointer pLinearSolver,
183 const double Tolerance,
184 const unsigned int MaxIter)
override
197 this->
mpTurbulenceModel = Kratos::make_shared< TrilinosSpalartAllmarasTurbulenceModel<TSparseSpace,TDenseSpace,TLinearSolver> >(mrComm,rModelPart,pLinearSolver,DomainSize,Tolerance,MaxIter,ReformDofSet,TimeOrder);
201 KRATOS_THROW_ERROR(std::runtime_error,
"Error in TrilinosFractionalStepSettingsPeriodic: Unknown turbulence model label.",
"");
221 std::string
Info()
const override
223 std::stringstream buffer;
224 buffer <<
"TrilinosFractionalStepSettingsPeriodic" ;
229 void PrintInfo(std::ostream& rOStream)
const override {rOStream <<
"TrilinosFractionalStepSettingsPeriodic";}
232 void PrintData(std::ostream& rOStream)
const override {}
288 Epetra_MpiComm& mrComm;
320 TrilinosFractionalStepSettingsPeriodic& operator=(TrilinosFractionalStepSettingsPeriodic
const& rOther){}
342 template<
class TDenseSpace,
class TSparseSpace,
class TLinearSolver >
350 template<
class TDenseSpace,
class TSparseSpace,
class TLinearSolver >
355 rOStream << std::endl;
Current class provides an implementation for the base builder and solving operations.
Definition: builder_and_solver.h:64
Implicit solving strategy base class This is the base class from which we will derive all the implici...
Definition: implicit_solving_strategy.h:61
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class provides the implementation of the basic tasks that are needed by the solution strategy.
Definition: scheme.h:56
Helper class to define solution strategies for FS_Strategy.
Definition: solver_settings.h:53
StrategyLabel
Definition: solver_settings.h:66
@ Velocity
Definition: solver_settings.h:66
@ Pressure
Definition: solver_settings.h:66
virtual unsigned int GetDomainSize() const
Definition: solver_settings.h:146
ModelPart & GetModelPart()
Definition: solver_settings.h:285
virtual void SetTurbulenceModel(TurbulenceModelLabel const &rTurbulenceModel, typename TLinearSolver::Pointer pLinearSolver, const double Tolerance, const unsigned int MaxIter)
Definition: solver_settings.h:124
bool GetReformDofSet()
Definition: solver_settings.h:226
StrategyType::Pointer StrategyPointerType
Definition: solver_settings.h:62
virtual bool UseSlipConditions() const
Definition: solver_settings.h:156
std::map< StrategyLabel, double > mTolerances
Definition: solver_settings.h:292
std::map< StrategyLabel, StrategyPointerType > mStrategies
Definition: solver_settings.h:290
std::map< StrategyLabel, unsigned int > mMaxIter
Definition: solver_settings.h:294
Process::Pointer ProcessPointerType
Definition: solver_settings.h:63
virtual unsigned int GetEchoLevel()
Definition: solver_settings.h:221
TurbulenceModelLabel
Definition: solver_settings.h:68
@ SpalartAllmaras
Definition: solver_settings.h:68
bool mHaveTurbulenceModel
Definition: solver_settings.h:298
ProcessPointerType mpTurbulenceModel
Definition: solver_settings.h:296
virtual unsigned int GetTimeOrder() const
Definition: solver_settings.h:151
Helper class to define solution strategies for FS_Strategy.
Definition: trilinos_fractional_step_settings_periodic.h:50
KRATOS_CLASS_POINTER_DEFINITION(TrilinosFractionalStepSettingsPeriodic)
Pointer definition of TrilinosFractionalStepSettingsPeriodic.
SolverSettings< TSparseSpace, TDenseSpace, TLinearSolver > BaseType
Definition: trilinos_fractional_step_settings_periodic.h:58
BaseType::StrategyType StrategyType
Definition: trilinos_fractional_step_settings_periodic.h:60
BaseType::StrategyLabel StrategyLabel
Definition: trilinos_fractional_step_settings_periodic.h:64
void SetStrategy(StrategyLabel const &rStrategyLabel, typename TLinearSolver::Pointer pLinearSolver, const double Tolerance, const unsigned int MaxIter) override
Definition: trilinos_fractional_step_settings_periodic.h:101
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: trilinos_fractional_step_settings_periodic.h:232
void SetTurbulenceModel(ProcessPointerType pTurbulenceModel) override
Definition: trilinos_fractional_step_settings_periodic.h:207
std::string Info() const override
Turn back information as a string.
Definition: trilinos_fractional_step_settings_periodic.h:221
BaseType::ProcessPointerType ProcessPointerType
Definition: trilinos_fractional_step_settings_periodic.h:62
TrilinosFractionalStepSettingsPeriodic(Epetra_MpiComm &rComm, ModelPart &rModelPart, const unsigned int ThisDomainSize, const unsigned int ThisTimeOrder, const bool UseSlip, const bool MoveMeshFlag, const bool ReformDofSet, const Kratos::Variable< int > &rPeriodicVar)
Constructor.
Definition: trilinos_fractional_step_settings_periodic.h:72
void SetTurbulenceModel(TurbulenceModelLabel const &rTurbulenceModel, typename TLinearSolver::Pointer pLinearSolver, const double Tolerance, const unsigned int MaxIter) override
Definition: trilinos_fractional_step_settings_periodic.h:181
BaseType::TurbulenceModelLabel TurbulenceModelLabel
Definition: trilinos_fractional_step_settings_periodic.h:65
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: trilinos_fractional_step_settings_periodic.h:229
virtual ~TrilinosFractionalStepSettingsPeriodic()
Destructor.
Definition: trilinos_fractional_step_settings_periodic.h:86
BaseType::StrategyPointerType StrategyPointerType
Definition: trilinos_fractional_step_settings_periodic.h:61
#define KRATOS_THROW_ERROR(ExceptionType, ErrorMessage, MoreInfo)
Definition: define.h:77
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
static int EchoLevel
Definition: co_sim_EMPIRE_API.h:42
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
Temp
Definition: PecletTest.py:105