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::SPRErrorProcess< TDim > Class Template Reference

This class is can be used to compute the metrics of the model part with a superconvergent patch recovery (SPR) approach. More...

#include <spr_error_process.h>

Inheritance diagram for Kratos::SPRErrorProcess< TDim >:
Collaboration diagram for Kratos::SPRErrorProcess< TDim >:

Public Member Functions

Life Cycle
 SPRErrorProcess (ModelPart &rThisModelPart, Parameters ThisParameters=Parameters(R"({})"))
 
virtual ~SPRErrorProcess ()
 Destructor. More...
 
Operators
void operator() ()
 
Operations
void Execute () override
 We initialize the metrics of the MMG sol using the Hessian metric matrix approach. More...
 
const Parameters GetDefaultParameters () const override
 This method provides the defaults parameters to avoid conflicts between the different constructors. More...
 
Input and output
virtual std::string Info () const override
 Turn back information as a string. More...
 
virtual void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
virtual 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...
 
virtual void Clear ()
 This method clears the assignation of the conditions. 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
void CalculateSuperconvergentStresses ()
 This method computes the superconvergent stresses. More...
 
void CalculateErrorEstimation (double &rEnergyNormOverall, double &rErrorOverall)
 This method estimates the error. More...
 
virtual void CalculatePatch (NodeItType itNode, NodeItType itPatchNode, const SizeType NeighbourSize, Vector &rSigmaRecovered)
 Calculates the recovered stress. Checks whatever this is a contact case or a standard one. More...
 

Protected Attributes

Protected member Variables
ModelPartmThisModelPart
 
Variable< Vector > * mpStressVariable = &CAUCHY_STRESS_VECTOR
 The model part to compute. More...
 
SizeType mEchoLevel
 The stress variable considered. More...
 

Type Definitions

typedef ModelPart::NodesContainerType NodesArrayType
 Containers definition. More...
 
typedef ModelPart::ElementsContainerType ElementsArrayType
 
typedef ModelPart::ConditionsContainerType ConditionsArrayType
 
typedef Node NodeType
 The definition of the node type. More...
 
typedef GlobalPointersVector< Element >::iterator WeakElementItType
 Definition of the iterators. More...
 
typedef NodesArrayType::iterator NodeItType
 
typedef ElementsArrayType::iterator ElementItType
 
typedef std::size_t IndexType
 Definition of the indextype. More...
 
static constexpr SizeType SigmaSize = (TDim == 2) ? 3 : 6
 The Voigt notation size. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (SPRErrorProcess)
 Pointer definition of SPRErrorProcess. More...
 

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<SizeType TDim>
class Kratos::SPRErrorProcess< TDim >

This class is can be used to compute the metrics of the model part with a superconvergent patch recovery (SPR) approach.

The formulation employed in order to compute the super patch recovery is based on the work of O. C. Zienkiewicz J. Z. Zhu, and extended for contact mechanics. In the papers:

Member Typedef Documentation

◆ ConditionsArrayType

◆ ElementItType

template<SizeType TDim>
typedef ElementsArrayType::iterator Kratos::SPRErrorProcess< TDim >::ElementItType

◆ ElementsArrayType

◆ IndexType

template<SizeType TDim>
typedef std::size_t Kratos::SPRErrorProcess< TDim >::IndexType

Definition of the indextype.

◆ NodeItType

template<SizeType TDim>
typedef NodesArrayType::iterator Kratos::SPRErrorProcess< TDim >::NodeItType

◆ NodesArrayType

template<SizeType TDim>
typedef ModelPart::NodesContainerType Kratos::SPRErrorProcess< TDim >::NodesArrayType

Containers definition.

◆ NodeType

template<SizeType TDim>
typedef Node Kratos::SPRErrorProcess< TDim >::NodeType

The definition of the node type.

◆ WeakElementItType

template<SizeType TDim>
typedef GlobalPointersVector< Element >::iterator Kratos::SPRErrorProcess< TDim >::WeakElementItType

Definition of the iterators.

Constructor & Destructor Documentation

◆ SPRErrorProcess()

template<SizeType TDim>
Kratos::SPRErrorProcess< TDim >::SPRErrorProcess ( ModelPart rThisModelPart,
Parameters  ThisParameters = Parameters(R"({})") 
)

This is the default constructor

Parameters
rThisModelPartThe model part to be computed
ThisParametersThe input parameters

◆ ~SPRErrorProcess()

template<SizeType TDim>
virtual Kratos::SPRErrorProcess< TDim >::~SPRErrorProcess ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ CalculateErrorEstimation()

template<SizeType TDim>
void Kratos::SPRErrorProcess< TDim >::CalculateErrorEstimation ( double rEnergyNormOverall,
double rErrorOverall 
)
protected

This method estimates the error.

Parameters
rEnergyNormOverallThe mean of the energy norm
rErrorOverallThe mean of the error

◆ CalculatePatch()

template<SizeType TDim>
void Kratos::SPRErrorProcess< TDim >::CalculatePatch ( NodeItType  itNode,
NodeItType  itPatchNode,
const SizeType  NeighbourSize,
Vector rSigmaRecovered 
)
protectedvirtual

Calculates the recovered stress. Checks whatever this is a contact case or a standard one.

Parameters
itNodethe node for which the recovered stress should be calculated
itPatchNodethe center node of the patch
NeighbourSizeNumber of neighbour elements
rSigmaRecoveredThe recovered stress

Reimplemented in Kratos::ContactSPRErrorProcess< TDim >.

◆ CalculateSuperconvergentStresses()

template<SizeType TDim>
void Kratos::SPRErrorProcess< TDim >::CalculateSuperconvergentStresses
protected

This method computes the superconvergent stresses.

◆ Execute()

template<SizeType TDim>
void Kratos::SPRErrorProcess< TDim >::Execute
overridevirtual

We initialize the metrics of the MMG sol using the Hessian metric matrix approach.

Reimplemented from Kratos::Process.

◆ GetDefaultParameters()

template<SizeType TDim>
const Parameters Kratos::SPRErrorProcess< TDim >::GetDefaultParameters
overridevirtual

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

Reimplemented from Kratos::Process.

◆ Info()

template<SizeType TDim>
virtual std::string Kratos::SPRErrorProcess< TDim >::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

Reimplemented from Kratos::Process.

Reimplemented in Kratos::ContactSPRErrorProcess< TDim >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<SizeType TDim>
Kratos::SPRErrorProcess< TDim >::KRATOS_CLASS_POINTER_DEFINITION ( SPRErrorProcess< TDim >  )

Pointer definition of SPRErrorProcess.

◆ operator()()

template<SizeType TDim>
void Kratos::SPRErrorProcess< TDim >::operator() ( )
inline

◆ PrintData()

template<SizeType TDim>
virtual void Kratos::SPRErrorProcess< TDim >::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

Print object"s data.

Reimplemented from Kratos::Process.

Reimplemented in Kratos::ContactSPRErrorProcess< TDim >.

◆ PrintInfo()

template<SizeType TDim>
virtual void Kratos::SPRErrorProcess< TDim >::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

Reimplemented from Kratos::Process.

Reimplemented in Kratos::ContactSPRErrorProcess< TDim >.

Member Data Documentation

◆ mEchoLevel

template<SizeType TDim>
SizeType Kratos::SPRErrorProcess< TDim >::mEchoLevel
protected

The stress variable considered.

◆ mpStressVariable

template<SizeType TDim>
Variable<Vector>* Kratos::SPRErrorProcess< TDim >::mpStressVariable = &CAUCHY_STRESS_VECTOR
protected

The model part to compute.

◆ mThisModelPart

template<SizeType TDim>
ModelPart& Kratos::SPRErrorProcess< TDim >::mThisModelPart
protected

◆ SigmaSize

template<SizeType TDim>
constexpr SizeType Kratos::SPRErrorProcess< TDim >::SigmaSize = (TDim == 2) ? 3 : 6
staticconstexpr

The Voigt notation size.


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