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.
|
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>
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 | |
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 | 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 | |
ModelPart & | mThisModelPart |
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) |
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:
TDim | The dimension to be computed |
typedef ModelPart::ConditionsContainerType Kratos::SPRErrorProcess< TDim >::ConditionsArrayType |
typedef ElementsArrayType::iterator Kratos::SPRErrorProcess< TDim >::ElementItType |
typedef ModelPart::ElementsContainerType Kratos::SPRErrorProcess< TDim >::ElementsArrayType |
typedef std::size_t Kratos::SPRErrorProcess< TDim >::IndexType |
Definition of the indextype.
typedef NodesArrayType::iterator Kratos::SPRErrorProcess< TDim >::NodeItType |
typedef ModelPart::NodesContainerType Kratos::SPRErrorProcess< TDim >::NodesArrayType |
Containers definition.
typedef Node Kratos::SPRErrorProcess< TDim >::NodeType |
The definition of the node type.
typedef GlobalPointersVector< Element >::iterator Kratos::SPRErrorProcess< TDim >::WeakElementItType |
Definition of the iterators.
Kratos::SPRErrorProcess< TDim >::SPRErrorProcess | ( | ModelPart & | rThisModelPart, |
Parameters | ThisParameters = Parameters(R"({})") |
||
) |
This is the default constructor
rThisModelPart | The model part to be computed |
ThisParameters | The input parameters |
|
inlinevirtual |
Destructor.
|
protected |
This method estimates the error.
rEnergyNormOverall | The mean of the energy norm |
rErrorOverall | The mean of the error |
|
protectedvirtual |
Calculates the recovered stress. Checks whatever this is a contact case or a standard one.
itNode | the node for which the recovered stress should be calculated |
itPatchNode | the center node of the patch |
NeighbourSize | Number of neighbour elements |
rSigmaRecovered | The recovered stress |
Reimplemented in Kratos::ContactSPRErrorProcess< TDim >.
|
protected |
This method computes the superconvergent stresses.
|
overridevirtual |
We initialize the metrics of the MMG sol using the Hessian metric matrix approach.
Reimplemented from Kratos::Process.
|
overridevirtual |
This method provides the defaults parameters to avoid conflicts between the different constructors.
Reimplemented from Kratos::Process.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::Process.
Reimplemented in Kratos::ContactSPRErrorProcess< TDim >.
Kratos::SPRErrorProcess< TDim >::KRATOS_CLASS_POINTER_DEFINITION | ( | SPRErrorProcess< TDim > | ) |
Pointer definition of SPRErrorProcess.
|
inline |
|
inlineoverridevirtual |
Print object"s data.
Reimplemented from Kratos::Process.
Reimplemented in Kratos::ContactSPRErrorProcess< TDim >.
|
inlineoverridevirtual |
Print information about this object.
Reimplemented from Kratos::Process.
Reimplemented in Kratos::ContactSPRErrorProcess< TDim >.
|
protected |
The stress variable considered.
|
protected |
The model part to compute.
|
protected |
|
staticconstexpr |
The Voigt notation size.