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.
List of all members
Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver > Class Template Reference

Edge-based gradient recovery process This process implements the edge-based gradient recovery process technique described in https://onlinelibrary.wiley.com/doi/epdf/10.1002/nme.4374. More...

#include <edge_based_gradient_recovery_process.h>

Inheritance diagram for Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >:
Collaboration diagram for Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >:

Public Member Functions

Pointer Definitions
 KRATOS_CLASS_POINTER_DEFINITION (EdgeBasedGradientRecoveryProcess)
 Pointer definition of EdgeBasedGradientRecoveryProcess. More...
 
Life Cycle
 EdgeBasedGradientRecoveryProcess (Model &rModel, typename TLinearSolver::Pointer pLinearSolver, Parameters ThisParameters)
 Construct a new Edge Based Gradient Recovery Process object Level set convection proces model constructor. More...
 
 EdgeBasedGradientRecoveryProcess (EdgeBasedGradientRecoveryProcess const &rOther)=delete
 Copy constructor. More...
 
 ~EdgeBasedGradientRecoveryProcess () override
 Destructor. More...
 
Operations
int Check () override
 This function is designed for being called after ExecuteInitialize ONCE to verify that the input is correct. More...
 
void Execute () override
 Execute method is used to execute the Process algorithms. More...
 
void ExecuteInitialize () override
 This function is designed for being called at the beginning of the computations right after reading the model and the groups. More...
 
void ExecuteInitializeSolutionStep () override
 This function will be executed at every time step BEFORE performing the solve phase. More...
 
void ExecuteFinalizeSolutionStep () override
 This function will be executed at every time step AFTER performing the solve phase. More...
 
void ExecuteFinalize () override
 This function is designed for being called at the end of the computations. 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...
 
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...
 
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 ExecuteBeforeSolutionLoop ()
 This function is designed for being execute once before the solution loop but after all of the solvers where built. 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...
 
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...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::Flags
Flagsoperator= (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 Flagsoperator|= (const Flags &Other)
 
const Flagsoperator&= (const Flags &Other)
 
 Flags ()
 Default constructor. More...
 
 Flags (Flags const &rOther)
 Copy constructor. More...
 
virtual ~Flags ()
 Destructor. More...
 

Protected Member Functions

Protected Operations
 EdgeBasedGradientRecoveryProcess (Model &rModel, Parameters ThisParameters)
 
virtual void InitializeGradientRecoveryModelPart (ModelPart &rOriginModelPart)
 

Protected Attributes

Protected member Variables
ModelmrModel
 
ModelPartmpOriginModelPart
 
ModelPartmpGradientRecoveryModelPart = nullptr
 
const Variable< TDataType > * mpOriginVar = nullptr
 
const Variable< GradientDataType > * mpGradientVar = nullptr
 
bool mModelPartIsInitialized = false
 
SolvingStrategyType::UniquePointer mpSolvingStrategy
 
std::string mGradientModelPartName
 
std::string mElementRegisterName
 
Parameters mSettings
 

Type Definitions

using GradientDataType = typename std::conditional< IsDataTypeScalar, array_1d< double, 3 >, Matrix >::type
 
using NodeType = typename ModelPart::NodeType
 
using OriginGetFunctionType = std::function< double(const NodeType &, const Variable< TDataType > &, const std::size_t)>
 
using GradientSetFunctionType = std::function< void(NodeType &rNode, const Variable< GradientDataType > &, const array_1d< double, 3 > &, const std::size_t)>
 
using SolvingStrategyType = ImplicitSolvingStrategy< TSparseSpace, TDenseSpace, TLinearSolver >
 
using BuilderAndSolverPointerType = typename BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::Pointer
 
static constexpr bool IsDataTypeScalar = std::is_same<TDataType, double>()
 

Additional Inherited Members

- 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
 
- Static Public Member Functions inherited from Kratos::Flags
static const Flags AllDefined ()
 
static const Flags AllTrue ()
 
static Flags Create (IndexType ThisPosition, bool Value=true)
 

Detailed Description

template<class TDataType, class TSparseSpace, class TDenseSpace, class TLinearSolver>
class Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >

Edge-based gradient recovery process This process implements the edge-based gradient recovery process technique described in https://onlinelibrary.wiley.com/doi/epdf/10.1002/nme.4374.

Template Parameters
TDataType
TSparseSpace
TDenseSpace
TLinearSolver

Member Typedef Documentation

◆ BuilderAndSolverPointerType

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
using Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::BuilderAndSolverPointerType = typename BuilderAndSolver<TSparseSpace,TDenseSpace,TLinearSolver>::Pointer

◆ GradientDataType

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
using Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::GradientDataType = typename std::conditional<IsDataTypeScalar, array_1d<double,3>, Matrix>::type

◆ GradientSetFunctionType

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
using Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::GradientSetFunctionType = std::function<void( NodeType &rNode, const Variable<GradientDataType>&, const array_1d<double, 3>&, const std::size_t)>

◆ NodeType

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
using Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::NodeType = typename ModelPart::NodeType

◆ OriginGetFunctionType

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
using Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::OriginGetFunctionType = std::function<double( const NodeType&, const Variable<TDataType>&, const std::size_t)>

◆ SolvingStrategyType

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
using Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::SolvingStrategyType = ImplicitSolvingStrategy<TSparseSpace, TDenseSpace, TLinearSolver>

Constructor & Destructor Documentation

◆ EdgeBasedGradientRecoveryProcess() [1/3]

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::EdgeBasedGradientRecoveryProcess ( Model rModel,
typename TLinearSolver::Pointer  pLinearSolver,
Parameters  ThisParameters 
)
inline

Construct a new Edge Based Gradient Recovery Process object Level set convection proces model constructor.

Parameters
rModelModel container
pLinearSolverLinear solver to be used in the level set convection problem
ThisParametersJson settings encapsulating the process configuration (see also GetDefaultParameters)

◆ EdgeBasedGradientRecoveryProcess() [2/3]

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::EdgeBasedGradientRecoveryProcess ( EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver > const &  rOther)
delete

Copy constructor.

◆ ~EdgeBasedGradientRecoveryProcess()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::~EdgeBasedGradientRecoveryProcess ( )
inlineoverride

Destructor.

◆ EdgeBasedGradientRecoveryProcess() [3/3]

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::EdgeBasedGradientRecoveryProcess ( Model rModel,
Parameters  ThisParameters 
)
inlineprotected

Member Function Documentation

◆ Check()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
int Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::Check ( )
inlineoverridevirtual

This function is designed for being called after ExecuteInitialize ONCE to verify that the input is correct.

Reimplemented from Kratos::Process.

◆ Clear()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::Clear ( )
inlineoverridevirtual

This method clears the assignation of the conditions.

Reimplemented from Kratos::Process.

◆ Execute()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::Execute ( )
inlineoverridevirtual

Execute method is used to execute the Process algorithms.

Reimplemented from Kratos::Process.

◆ ExecuteFinalize()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::ExecuteFinalize ( )
inlineoverridevirtual

This function is designed for being called at the end of the computations.

Reimplemented from Kratos::Process.

◆ ExecuteFinalizeSolutionStep()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::ExecuteFinalizeSolutionStep ( )
inlineoverridevirtual

This function will be executed at every time step AFTER performing the solve phase.

Reimplemented from Kratos::Process.

◆ ExecuteInitialize()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::ExecuteInitialize ( )
inlineoverridevirtual

This function is designed for being called at the beginning of the computations right after reading the model and the groups.

Reimplemented from Kratos::Process.

◆ ExecuteInitializeSolutionStep()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::ExecuteInitializeSolutionStep ( )
inlineoverridevirtual

This function will be executed at every time step BEFORE performing the solve phase.

Reimplemented from Kratos::Process.

◆ GetDefaultParameters()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
const Parameters Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::GetDefaultParameters ( ) const
inlineoverridevirtual

This method provides the defaults parameters to avoid conflicts between the different constructors.

Reimplemented from Kratos::Process.

◆ Info()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
std::string Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

Reimplemented from Kratos::Flags.

◆ InitializeGradientRecoveryModelPart()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
virtual void Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::InitializeGradientRecoveryModelPart ( ModelPart rOriginModelPart)
inlineprotectedvirtual

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::KRATOS_CLASS_POINTER_DEFINITION ( EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >  )

Pointer definition of EdgeBasedGradientRecoveryProcess.

◆ PrintData()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

Print object's data.

Reimplemented from Kratos::Flags.

◆ PrintInfo()

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
void Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

Reimplemented from Kratos::Flags.

Member Data Documentation

◆ IsDataTypeScalar

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
constexpr bool Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::IsDataTypeScalar = std::is_same<TDataType, double>()
staticconstexpr

◆ mElementRegisterName

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
std::string Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::mElementRegisterName
protected

◆ mGradientModelPartName

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
std::string Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::mGradientModelPartName
protected

◆ mModelPartIsInitialized

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
bool Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::mModelPartIsInitialized = false
protected

◆ mpGradientRecoveryModelPart

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
ModelPart* Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::mpGradientRecoveryModelPart = nullptr
protected

◆ mpGradientVar

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
const Variable<GradientDataType>* Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::mpGradientVar = nullptr
protected

◆ mpOriginModelPart

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
ModelPart* Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::mpOriginModelPart
protected

◆ mpOriginVar

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
const Variable<TDataType>* Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::mpOriginVar = nullptr
protected

◆ mpSolvingStrategy

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
SolvingStrategyType::UniquePointer Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::mpSolvingStrategy
protected

◆ mrModel

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
Model& Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::mrModel
protected

◆ mSettings

template<class TDataType , class TSparseSpace , class TDenseSpace , class TLinearSolver >
Parameters Kratos::EdgeBasedGradientRecoveryProcess< TDataType, TSparseSpace, TDenseSpace, TLinearSolver >::mSettings
protected

The documentation for this class was generated from the following file: