KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
Short class definition. More...
#include <trilinos_levelset_convection_process.h>
Public Types | |
Type Definitions | |
typedef LevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver > | BaseType |
typedef TLinearSolver::Pointer | LinearSolverPointerType |
typedef BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::Pointer | BuilderSolverPointerType |
Public Types inherited from Kratos::LevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver > | |
typedef ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver > | SolvingStrategyType |
typedef BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::Pointer | BuilderAndSolverPointerType |
typedef ComputeNodalGradientProcess< ComputeNodalGradientProcessSettings::SaveAsNonHistoricalVariable > | ComputeGradientProcessType |
typedef ComputeGradientProcessType::Pointer | ComputeGradientProcessPointerType |
Public Types inherited from Kratos::Flags | |
enum | FlagsList { Flag0 = BlockType(1) , Flag1 = BlockType(1) << 1 , Flag2 = BlockType(1) << 2 , Flag3 = BlockType(1) << 3 , Flag4 = BlockType(1) << 4 , Flag5 = BlockType(1) << 5 , Flag6 = BlockType(1) << 6 , Flag7 = BlockType(1) << 7 , Flag8 = BlockType(1) << 8 , Flag9 = BlockType(1) << 9 , Flag10 = BlockType(1) << 10 , Flag11 = BlockType(1) << 11 , Flag12 = BlockType(1) << 12 , Flag13 = BlockType(1) << 13 , Flag14 = BlockType(1) << 14 , Flag15 = BlockType(1) << 15 , Flag16 = BlockType(1) << 16 , Flag17 = BlockType(1) << 17 , Flag18 = BlockType(1) << 18 , Flag19 = BlockType(1) << 19 , Flag20 = BlockType(1) << 20 , Flag21 = BlockType(1) << 21 , Flag22 = BlockType(1) << 22 , Flag23 = BlockType(1) << 23 , Flag24 = BlockType(1) << 24 , Flag25 = BlockType(1) << 25 , Flag26 = BlockType(1) << 26 , Flag27 = BlockType(1) << 27 , Flag28 = BlockType(1) << 28 , Flag29 = BlockType(1) << 29 , Flag30 = BlockType(1) << 30 } |
typedef int64_t | BlockType |
typedef int64_t | FlagType |
typedef std::size_t | IndexType |
Public Member Functions | |
KRATOS_DEFINE_LOCAL_FLAG (PERFORM_STEP1) | |
KRATOS_DEFINE_LOCAL_FLAG (DO_EXPENSIVE_CHECKS) | |
Pointer Definitions | |
KRATOS_CLASS_POINTER_DEFINITION (TrilinosLevelSetConvectionProcess) | |
Pointer definition of TrilinosLevelSetConvectionProcess. More... | |
Life Cycle | |
TrilinosLevelSetConvectionProcess (Epetra_MpiComm &rEpetraCommunicator, Model &rModel, typename TLinearSolver::Pointer pLinearSolver, Parameters ThisParameters) | |
TrilinosLevelSetConvectionProcess (Epetra_MpiComm &rEpetraCommunicator, ModelPart &rBaseModelPart, typename TLinearSolver::Pointer pLinearSolver, Parameters ThisParameters) | |
TrilinosLevelSetConvectionProcess (TrilinosLevelSetConvectionProcess const &rOther)=delete | |
Copy constructor. More... | |
~TrilinosLevelSetConvectionProcess () override | |
Destructor. More... | |
Input and output | |
std::string | Info () const override |
Turn back information as a string. More... | |
void | PrintInfo (std::ostream &rOStream) const override |
Print information about this object. More... | |
Public Member Functions inherited from Kratos::LevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver > | |
KRATOS_CLASS_POINTER_DEFINITION (LevelSetConvectionProcess) | |
Pointer definition of LevelSetConvectionProcess. More... | |
LevelSetConvectionProcess (Model &rModel, typename TLinearSolver::Pointer pLinearSolver, Parameters ThisParameters) | |
Construct a new Level Set Convection Process object Level set convection proces model constructor. More... | |
LevelSetConvectionProcess (ModelPart &rBaseModelPart, typename TLinearSolver::Pointer pLinearSolver, Parameters ThisParameters) | |
Construct a new Level Set Convection Process object Level set convection proces model part constructor. More... | |
LevelSetConvectionProcess (LevelSetConvectionProcess const &rOther)=delete | |
Copy constructor. More... | |
~LevelSetConvectionProcess () override | |
Destructor. More... | |
void | operator() () |
void | Execute () override |
Perform the level-set convection This solver provides a stabilized convection solver based on [Codina, R., 1993. Comput. Methods Appl. Mech. Engrg., 110(3-4), pp.325-342.] It uses the sub-stepping approach to comply with the user defined maximum CFL number. The error compensation is done according to the BFECC algorithm, which requires forward, backward, and the final forward solution steps (that triplicates the computational cost). The error compensation severely disturbs the monotonicity of the results that is compensated for by implementing a limited BFECC algorithm. The limiter relies on the nodal gradient of LevelSetVar (non-historical variable LevelSetGradientVar). For more info see [Kuzmin et al., Comput. Methods Appl. Mech. Engrg., 322 (2017) 23–41]. More... | |
void | Clear () override |
This method clears the assignation of the conditions. More... | |
const Parameters | GetDefaultParameters () const override |
This method provides the defaults parameters to avoid conflicts between the different constructors. More... | |
void | PrintData (std::ostream &rOStream) const override |
Print object's data. More... | |
Public Member Functions inherited from Kratos::Process | |
KRATOS_CLASS_POINTER_DEFINITION (Process) | |
Pointer definition of Process. More... | |
Process () | |
Default constructor. More... | |
Process (const Flags options) | |
~Process () override | |
Destructor. More... | |
void | operator() () |
This operator is provided to call the process as a function and simply calls the Execute method. More... | |
virtual Process::Pointer | Create (Model &rModel, Parameters ThisParameters) |
This method creates an pointer of the process. More... | |
virtual void | ExecuteInitialize () |
This function is designed for being called at the beginning of the computations right after reading the model and the groups. More... | |
virtual void | ExecuteBeforeSolutionLoop () |
This function is designed for being execute once before the solution loop but after all of the solvers where built. More... | |
virtual void | ExecuteInitializeSolutionStep () |
This function will be executed at every time step BEFORE performing the solve phase. More... | |
virtual void | ExecuteFinalizeSolutionStep () |
This function will be executed at every time step AFTER performing the solve phase. More... | |
virtual void | ExecuteBeforeOutputStep () |
This function will be executed at every time step BEFORE writing the output. More... | |
virtual void | ExecuteAfterOutputStep () |
This function will be executed at every time step AFTER writing the output. More... | |
virtual void | ExecuteFinalize () |
This function is designed for being called at the end of the computations. More... | |
virtual int | Check () |
This function is designed for being called after ExecuteInitialize ONCE to verify that the input is correct. More... | |
void | PrintData (std::ostream &rOStream) const override |
Print object's data. More... | |
Public Member Functions inherited from Kratos::Flags | |
Flags & | operator= (Flags const &rOther) |
Assignment operator. More... | |
operator bool () const | |
Flags | operator~ () const |
bool | operator! () const |
void | AssignFlags (Flags const &rOther) |
void | Set (const Flags ThisFlag) |
void | Set (const Flags ThisFlag, bool Value) |
void | Reset (const Flags ThisFlag) |
void | Flip (const Flags ThisFlag) |
void | SetPosition (IndexType Position, bool Value=true) |
bool | GetPosition (IndexType Position) const |
void | FlipPosition (IndexType Position) |
void | ClearPosition (IndexType Position) |
void | Clear () |
Flags | AsFalse () const |
bool | Is (Flags const &rOther) const |
bool | IsDefined (Flags const &rOther) const |
bool | IsNot (Flags const &rOther) const |
bool | IsNotDefined (Flags const &rOther) const |
KRATOS_CLASS_POINTER_DEFINITION (Flags) | |
Pointer definition of Flags. More... | |
const Flags & | operator|= (const Flags &Other) |
const Flags & | operator&= (const Flags &Other) |
Flags () | |
Default constructor. More... | |
Flags (Flags const &rOther) | |
Copy constructor. More... | |
virtual | ~Flags () |
Destructor. More... | |
Protected Member Functions | |
Protected Operations | |
void | ReGenerateConvectionModelPart (ModelPart &rBaseModelPart) override |
Protected Member Functions inherited from Kratos::LevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver > | |
LevelSetConvectionProcess (ModelPart &rModelPart, Parameters ThisParameters) | |
void | SetConvectionProblemSettings () |
Set the level set convection formulation settings This method sets the convection diffusion settings specifying the variable to be convect, its gradient, and the convection variable Additionally, it also sets the required ProcessInfo variables. More... | |
void | InitializeDistanceModelPartDatabases () |
Initializes the databases values This function initializes is intended to collect all the database initializations. More... | |
unsigned int | EvaluateNumberOfSubsteps () |
void | EvaluateLimiter () |
Convection limiter evaluation This function implements the limiter evaluation Note that both the standard and the high order limiter (with nodal projections contributions) are implemented. More... | |
void | ErrorCalculationAndCorrection () |
Eulerian error calculation and correction This function implements the Backward Forward Error Compensation and Correction (BFECC) algorithm Note that this assumes that the first forward convection to n+1 has been completed. Then we go backwards to n* to calculate and apply the convection error. More... | |
void | ComputeNodalH () |
Nodal H calculation This function calculates the nodal h by executing a process where the nodal h calculaiton is implemented. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from Kratos::Flags | |
static const Flags | AllDefined () |
static const Flags | AllTrue () |
static Flags | Create (IndexType ThisPosition, bool Value=true) |
Short class definition.
takes a model part full of SIMPLICIAL ELEMENTS (triangles and tetras) and convects a level set distance on the top of it
typedef LevelSetConvectionProcess<TDim, TSparseSpace, TDenseSpace, TLinearSolver> Kratos::TrilinosLevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver >::BaseType |
typedef BuilderAndSolver<TSparseSpace, TDenseSpace, TLinearSolver>::Pointer Kratos::TrilinosLevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver >::BuilderSolverPointerType |
typedef TLinearSolver::Pointer Kratos::TrilinosLevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver >::LinearSolverPointerType |
|
inline |
|
inline |
|
delete |
Copy constructor.
|
inlineoverride |
Destructor.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::LevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver >.
Kratos::TrilinosLevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_CLASS_POINTER_DEFINITION | ( | TrilinosLevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver > | ) |
Pointer definition of TrilinosLevelSetConvectionProcess.
Kratos::TrilinosLevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_DEFINE_LOCAL_FLAG | ( | DO_EXPENSIVE_CHECKS | ) |
Kratos::TrilinosLevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_DEFINE_LOCAL_FLAG | ( | PERFORM_STEP1 | ) |
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::LevelSetConvectionProcess< TDim, TSparseSpace, TDenseSpace, TLinearSolver >.
|
inlineoverrideprotectedvirtual |
|
protected |