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 CL implements the serial-parallel rule of mixtures developed by F.Rastellini. More...
#include <serial_parallel_rule_of_mixtures_law.h>
Public Member Functions | |
Life Cycle | |
SerialParallelRuleOfMixturesLaw () | |
SerialParallelRuleOfMixturesLaw (double FiberVolParticipation, const Vector &rParallelDirections) | |
ConstitutiveLaw::Pointer | Clone () const override |
SerialParallelRuleOfMixturesLaw (SerialParallelRuleOfMixturesLaw const &rOther) | |
~SerialParallelRuleOfMixturesLaw () override | |
Operations | |
ConstitutiveLaw::Pointer | Create (Kratos::Parameters NewParameters) const override |
SizeType | WorkingSpaceDimension () override |
Dimension of the law: More... | |
SizeType | GetStrainSize () const override |
Voigt tensor size: More... | |
void | CalculateMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override |
void | CalculateMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override |
void | CalculateMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override |
void | CalculateMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override |
void | FinalizeMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override |
void | FinalizeMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override |
void | FinalizeMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override |
void | FinalizeMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override |
Vector & | GetValue (const Variable< Vector > &rThisVariable, Vector &rValue) override |
Returns the value of a specified variable (Vector) More... | |
bool & | GetValue (const Variable< bool > &rThisVariable, bool &rValue) override |
Returns the value of a specified variable (bool) More... | |
int & | GetValue (const Variable< int > &rThisVariable, int &rValue) override |
Returns the value of a specified variable (integer) More... | |
double & | GetValue (const Variable< double > &rThisVariable, double &rValue) override |
Returns the value of a specified variable (double) More... | |
Matrix & | GetValue (const Variable< Matrix > &rThisVariable, Matrix &rValue) override |
Returns the value of a specified variable (Matrix) More... | |
void | SetValue (const Variable< bool > &rThisVariable, const bool &rValue, const ProcessInfo &rCurrentProcessInfo) override |
Sets the value of a specified variable (bool) More... | |
void | SetValue (const Variable< int > &rThisVariable, const int &rValue, const ProcessInfo &rCurrentProcessInfo) override |
Sets the value of a specified variable (integer) More... | |
void | SetValue (const Variable< double > &rThisVariable, const double &rValue, const ProcessInfo &rCurrentProcessInfo) override |
Sets the value of a specified variable (double) More... | |
bool | Has (const Variable< bool > &rThisVariable) override |
Returns whether this constitutive Law has specified variable (boolean) More... | |
bool | Has (const Variable< int > &rThisVariable) override |
Returns whether this constitutive Law has specified variable (integer) More... | |
bool | Has (const Variable< double > &rThisVariable) override |
Returns whether this constitutive Law has specified variable (double) More... | |
bool | Has (const Variable< Vector > &rThisVariable) override |
Returns whether this constitutive Law has specified variable (Vector) More... | |
bool | Has (const Variable< Matrix > &rThisVariable) override |
Returns whether this constitutive Law has specified variable (Matrix) More... | |
bool & | CalculateValue (Parameters &rParameterValues, const Variable< bool > &rThisVariable, bool &rValue) override |
Calculates the value of a specified variable (bool) More... | |
int & | CalculateValue (Parameters &rParameterValues, const Variable< int > &rThisVariable, int &rValue) override |
Calculates the value of a specified variable (integer) More... | |
double & | CalculateValue (Parameters &rParameterValues, const Variable< double > &rThisVariable, double &rValue) override |
Calculates the value of a specified variable (double) More... | |
Vector & | CalculateValue (Parameters &rParameterValues, const Variable< Vector > &rThisVariable, Vector &rValue) override |
Calculates the value of a specified variable (Vector) More... | |
Matrix & | CalculateValue (Parameters &rParameterValues, const Variable< Matrix > &rThisVariable, Matrix &rValue) override |
Calculates the value of a specified variable (Matrix) More... | |
void | InitializeMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues) override |
void | IntegrateStrainSerialParallelBehaviour (const Vector &rStrainVector, Vector &FiberStressVector, Vector &MatrixStressVector, const Properties &rMaterialProperties, ConstitutiveLaw::Parameters &rValues, Vector &rSerialStrainMatrix, const ConstitutiveLaw::StressMeasure &rStressMeasure=ConstitutiveLaw::StressMeasure_Cauchy) |
void | CalculateSerialParallelProjectionMatrices (Matrix &rParallelProjector, Matrix &rSerialProjector) |
void | InitializeMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override |
void | InitializeMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override |
void | InitializeMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override |
void | InitializeMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override |
void | CalculateGreenLagrangeStrain (Parameters &rValues) |
void | CalculateAlmansiStrain (Parameters &rValues) |
void | CalculateStrainsOnEachComponent (const Vector &rStrainVector, const Matrix &rParallelProjector, const Matrix &rSerialProjector, const Vector &rSerialStrainMatrix, Vector &rStrainVectorMatrix, Vector &rStrainVectorFiber, ConstitutiveLaw::Parameters &rValues, const int Iteration=1) |
void | CalculateInitialApproximationSerialStrainMatrix (const Vector &rStrainVector, const Vector &rPreviousStrainVector, const Properties &rMaterialProperties, const Matrix &rParallelProjector, const Matrix &rSerialProjector, Matrix &rConstitutiveTensorMatrixSS, Matrix &rConstitutiveTensorFiberSS, Vector &rInitialApproximationSerialStrainMatrix, ConstitutiveLaw::Parameters &rValues, const ConstitutiveLaw::StressMeasure &rStressMeasure) |
void | IntegrateStressesOfFiberAndMatrix (ConstitutiveLaw::Parameters &rValues, Vector &rMatrixStrainVector, Vector &rFiberStrainVector, Vector &rMatrixStressVector, Vector &rFiberStressVector, const ConstitutiveLaw::StressMeasure &rStressMeasure) |
void | CheckStressEquilibrium (ConstitutiveLaw::Parameters &rValues, const Vector &rStrainVector, const Matrix &rSerialProjector, const Vector &rMatrixStressVector, const Vector &rFiberStressVector, Vector &rStressResidual, bool &rIsConverged, const Matrix &rConstitutiveTensorMatrixSS, const Matrix &rConstitutiveTensorFiberSS) |
void | CorrectSerialStrainMatrix (ConstitutiveLaw::Parameters &rValues, const Vector &rResidualStresses, Vector &rSerialStrainMatrix, const Matrix &rSerialProjector, const ConstitutiveLaw::StressMeasure &rStressMeasure) |
void | CalculateTangentTensor (ConstitutiveLaw::Parameters &rValues, const ConstitutiveLaw::StressMeasure &rStressMeasure=ConstitutiveLaw::StressMeasure_Cauchy) |
This method computes the tangent tensor. More... | |
bool | RequiresInitializeMaterialResponse () override |
If the CL requires to initialize the material response, called by the element in InitializeSolutionStep. More... | |
bool | RequiresFinalizeMaterialResponse () override |
If the CL requires to initialize the material response, called by the element in InitializeSolutionStep. More... | |
int | Check (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const ProcessInfo &rCurrentProcessInfo) const override |
This function is designed to be called once to perform all the checks needed on the input provided. Checks can be "expensive" as the function is designed to catch user's errors. More... | |
Public Member Functions inherited from Kratos::ConstitutiveLaw | |
KRATOS_CLASS_POINTER_DEFINITION (ConstitutiveLaw) | |
KRATOS_DEFINE_LOCAL_FLAG (USE_ELEMENT_PROVIDED_STRAIN) | |
KRATOS_DEFINE_LOCAL_FLAG (COMPUTE_STRESS) | |
KRATOS_DEFINE_LOCAL_FLAG (COMPUTE_CONSTITUTIVE_TENSOR) | |
KRATOS_DEFINE_LOCAL_FLAG (COMPUTE_STRAIN_ENERGY) | |
KRATOS_DEFINE_LOCAL_FLAG (ISOCHORIC_TENSOR_ONLY) | |
KRATOS_DEFINE_LOCAL_FLAG (VOLUMETRIC_TENSOR_ONLY) | |
KRATOS_DEFINE_LOCAL_FLAG (MECHANICAL_RESPONSE_ONLY) | |
KRATOS_DEFINE_LOCAL_FLAG (THERMAL_RESPONSE_ONLY) | |
KRATOS_DEFINE_LOCAL_FLAG (INCREMENTAL_STRAIN_MEASURE) | |
KRATOS_DEFINE_LOCAL_FLAG (INITIALIZE_MATERIAL_RESPONSE) | |
KRATOS_DEFINE_LOCAL_FLAG (FINALIZE_MATERIAL_RESPONSE) | |
KRATOS_DEFINE_LOCAL_FLAG (FINITE_STRAINS) | |
KRATOS_DEFINE_LOCAL_FLAG (INFINITESIMAL_STRAINS) | |
KRATOS_DEFINE_LOCAL_FLAG (THREE_DIMENSIONAL_LAW) | |
KRATOS_DEFINE_LOCAL_FLAG (PLANE_STRAIN_LAW) | |
KRATOS_DEFINE_LOCAL_FLAG (PLANE_STRESS_LAW) | |
KRATOS_DEFINE_LOCAL_FLAG (AXISYMMETRIC_LAW) | |
KRATOS_DEFINE_LOCAL_FLAG (U_P_LAW) | |
KRATOS_DEFINE_LOCAL_FLAG (ISOTROPIC) | |
KRATOS_DEFINE_LOCAL_FLAG (ANISOTROPIC) | |
ConstitutiveLaw () | |
~ConstitutiveLaw () override | |
virtual Pointer | Create (Kratos::Parameters NewParameters, const Properties &rProperties) const |
It creates a new constitutive law pointer (version with properties) More... | |
void | SetInitialState (InitialState::Pointer pInitialState) |
InitialState::Pointer | pGetInitialState () |
InitialState & | GetInitialState () |
bool | HasInitialState () const |
template<typename TVectorType > | |
void | AddInitialStressVectorContribution (TVectorType &rStressVector) |
Adds the initial stress vector if it is defined in the InitialState. More... | |
template<typename TVectorType > | |
void | AddInitialStrainVectorContribution (TVectorType &rStrainVector) |
Adds the initial strain vector if it is defined in the InitialState. More... | |
template<typename TMatrixType > | |
void | AddInitialDeformationGradientMatrixContribution (TMatrixType &rF) |
Adds the initial strain vector if it is defined in the InitialState. More... | |
virtual bool | Has (const Variable< array_1d< double, 3 > > &rThisVariable) |
Returns whether this constitutive Law has specified variable (array of 3 components) More... | |
virtual bool | Has (const Variable< array_1d< double, 6 > > &rThisVariable) |
Returns whether this constitutive Law has specified variable (array of 6 components) More... | |
virtual array_1d< double, 3 > & | GetValue (const Variable< array_1d< double, 3 > > &rThisVariable, array_1d< double, 3 > &rValue) |
Returns the value of a specified variable (array of 3 components) More... | |
virtual array_1d< double, 6 > & | GetValue (const Variable< array_1d< double, 6 > > &rThisVariable, array_1d< double, 6 > &rValue) |
Returns the value of a specified variable (array of 6 components) More... | |
virtual void | SetValue (const Variable< Vector > &rVariable, const Vector &rValue, const ProcessInfo &rCurrentProcessInfo) |
Sets the value of a specified variable (Vector) More... | |
virtual void | SetValue (const Variable< Matrix > &rVariable, const Matrix &rValue, const ProcessInfo &rCurrentProcessInfo) |
Sets the value of a specified variable (Matrix) More... | |
virtual void | SetValue (const Variable< array_1d< double, 3 > > &rVariable, const array_1d< double, 3 > &rValue, const ProcessInfo &rCurrentProcessInfo) |
Sets the value of a specified variable (array of 3 components) More... | |
virtual void | SetValue (const Variable< array_1d< double, 6 > > &rVariable, const array_1d< double, 6 > &rValue, const ProcessInfo &rCurrentProcessInfo) |
Sets the value of a specified variable (array of 6 components) More... | |
virtual array_1d< double, 3 > & | CalculateValue (Parameters &rParameterValues, const Variable< array_1d< double, 3 > > &rVariable, array_1d< double, 3 > &rValue) |
Calculates the value of a specified variable (array of 3 components) More... | |
virtual array_1d< double, 6 > & | CalculateValue (Parameters &rParameterValues, const Variable< array_1d< double, 6 > > &rVariable, array_1d< double, 6 > &rValue) |
virtual void | CalculateDerivative (Parameters &rParameterValues, const Variable< double > &rFunctionVariable, const Variable< double > &rDerivativeVariable, double &rOutput) |
Calculates derivatives of a given function. More... | |
virtual void | CalculateDerivative (Parameters &rParameterValues, const Variable< Vector > &rFunctionVariable, const Variable< double > &rDerivativeVariable, Vector &rOutput) |
Calculates derivatives of a given function. More... | |
virtual void | CalculateDerivative (Parameters &rParameterValues, const Variable< Matrix > &rFunctionVariable, const Variable< double > &rDerivativeVariable, Matrix &rOutput) |
Calculates derivatives of a given function. More... | |
virtual void | CalculateDerivative (Parameters &rParameterValues, const Variable< array_1d< double, 3 >> &rFunctionVariable, const Variable< double > &rDerivativeVariable, array_1d< double, 3 > &rOutput) |
Calculates derivatives of a given function. More... | |
virtual bool | ValidateInput (const Properties &rMaterialProperties) |
virtual StrainMeasure | GetStrainMeasure () |
virtual StressMeasure | GetStressMeasure () |
virtual bool | IsIncremental () |
virtual void | InitializeSolutionStep (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | FinalizeSolutionStep (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | InitializeNonLinearIteration (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo) |
virtual void | FinalizeNonLinearIteration (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo) |
void | CalculateMaterialResponse (Parameters &rValues, const StressMeasure &rStressMeasure) |
virtual void | CalculateStressResponse (Parameters &rValues, Vector &rInternalVariables) |
void | InitializeMaterialResponse (Parameters &rValues, const StressMeasure &rStressMeasure) |
Initialize the material response, called by the element in InitializeSolutionStep. More... | |
void | FinalizeMaterialResponse (Parameters &rValues, const StressMeasure &rStressMeasure) |
Finalize the material response, called by the element in FinalizeSolutionStep. More... | |
virtual void | ResetMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues) |
virtual Vector & | TransformStrains (Vector &rStrainVector, const Matrix &rF, StrainMeasure rStrainInitial, StrainMeasure rStrainFinal) |
virtual Matrix & | TransformStresses (Matrix &rStressMatrix, const Matrix &rF, const double &rdetF, StressMeasure rStressInitial, StressMeasure rStressFinal) |
virtual Vector & | TransformStresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressInitial, StressMeasure rStressFinal) |
Vector & | TransformPK1Stresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressFinal) |
Vector & | TransformPK2Stresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressFinal) |
Vector & | TransformKirchhoffStresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressFinal) |
Vector & | TransformCauchyStresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressFinal) |
void | PullBackConstitutiveMatrix (Matrix &rConstitutiveMatrix, const Matrix &rF) |
void | PushForwardConstitutiveMatrix (Matrix &rConstitutiveMatrix, const Matrix &rF) |
virtual void | GetLawFeatures (Features &rFeatures) |
virtual void | CalculateCauchyStresses (Vector &Cauchy_StressVector, const Matrix &F, const Vector &PK2_StressVector, const Vector &GreenLagrangeStrainVector) |
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 | |
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 Operators | |
ConstitutiveLaw::Pointer | GetMatrixConstitutiveLaw () |
This method the constitutive law of the matrix material. More... | |
void | SetMatrixConstitutiveLaw (ConstitutiveLaw::Pointer pMatrixConstitutiveLaw) |
This method sets the constitutive law of the matrix material. More... | |
ConstitutiveLaw::Pointer | GetFiberConstitutiveLaw () |
This method the constitutive law of the fiber material. More... | |
void | SetFiberConstitutiveLaw (ConstitutiveLaw::Pointer pFiberConstitutiveLaw) |
This method sets the constitutive law of the fiber material. More... | |
int | GetNumberOfSerialComponents () |
This method returns the number of directions with serial behaviour (iso-stress behaviour) More... | |
Protected Member Functions inherited from Kratos::ConstitutiveLaw | |
void | ContraVariantPushForward (Matrix &rMatrix, const Matrix &rF) |
void | ContraVariantPullBack (Matrix &rMatrix, const Matrix &rF) |
void | CoVariantPushForward (Matrix &rMatrix, const Matrix &rF) |
void | CoVariantPullBack (Matrix &rMatrix, const Matrix &rF) |
void | ConstitutiveMatrixTransformation (Matrix &rConstitutiveMatrix, const Matrix &rOriginalConstitutiveMatrix, const Matrix &rF) |
double & | TransformConstitutiveComponent (double &rCabcd, const Matrix &rConstitutiveMatrix, const Matrix &rF, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d) |
double & | GetConstitutiveComponent (double &rCabcd, const Matrix &rConstitutiveMatrix, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d) |
Type Definitions | |
typedef Node | NodeType |
The node definition. More... | |
typedef Geometry< NodeType > | GeometryType |
The geometry definition. More... | |
static constexpr double | machine_tolerance = std::numeric_limits<double>::epsilon() |
Definition of the machine precision tolerance. More... | |
KRATOS_CLASS_POINTER_DEFINITION (SerialParallelRuleOfMixturesLaw) | |
Counted pointer of SerialParallelRuleOfMixturesLaw. More... | |
Un accessible methods | |
class | Serializer |
Additional Inherited Members | |
Public Types inherited from Kratos::ConstitutiveLaw | |
enum | StrainMeasure { StrainMeasure_Infinitesimal , StrainMeasure_GreenLagrange , StrainMeasure_Almansi , StrainMeasure_Hencky_Material , StrainMeasure_Hencky_Spatial , StrainMeasure_Deformation_Gradient , StrainMeasure_Right_CauchyGreen , StrainMeasure_Left_CauchyGreen , StrainMeasure_Velocity_Gradient } |
enum | StressMeasure { StressMeasure_PK1 , StressMeasure_PK2 , StressMeasure_Kirchhoff , StressMeasure_Cauchy } |
typedef ProcessInfo | ProcessInfoType |
typedef std::size_t | SizeType |
typedef Geometry< Node > | GeometryType |
typedef Vector | StrainVectorType |
typedef Vector | StressVectorType |
typedef Matrix | VoigtSizeMatrixType |
typedef Matrix | DeformationGradientMatrixType |
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::ConstitutiveLaw | |
static bool | HasSameType (const ConstitutiveLaw &rLHS, const ConstitutiveLaw &rRHS) |
This method is used to check that two Constitutive Laws are the same type (references) More... | |
static bool | HasSameType (const ConstitutiveLaw *rLHS, const ConstitutiveLaw *rRHS) |
This method is used to check that two Constitutive Laws are the same type (pointers) More... | |
Static Public Member Functions inherited from Kratos::Flags | |
static const Flags | AllDefined () |
static const Flags | AllTrue () |
static Flags | Create (IndexType ThisPosition, bool Value=true) |
Static Protected Attributes inherited from Kratos::ConstitutiveLaw | |
static const unsigned int | msIndexVoigt3D6C [6][2] = { {0, 0}, {1, 1}, {2, 2}, {0, 1}, {1, 2}, {0, 2} } |
static const unsigned int | msIndexVoigt2D4C [4][2] = { {0, 0}, {1, 1}, {2, 2}, {0, 1} } |
static const unsigned int | msIndexVoigt2D3C [3][2] = { {0, 0}, {1, 1}, {0, 1} } |
This CL implements the serial-parallel rule of mixtures developed by F.Rastellini.
The geometry definition.
The node definition.
|
inline |
Default constructor.
|
inline |
Constructor.
|
inline |
|
inlineoverride |
Destructor.
void Kratos::SerialParallelRuleOfMixturesLaw::CalculateAlmansiStrain | ( | ConstitutiveLaw::Parameters & | rValues | ) |
This method computes the Almansi strain
void Kratos::SerialParallelRuleOfMixturesLaw::CalculateGreenLagrangeStrain | ( | ConstitutiveLaw::Parameters & | rValues | ) |
This method computes the Green-Lagrange strain
void Kratos::SerialParallelRuleOfMixturesLaw::CalculateInitialApproximationSerialStrainMatrix | ( | const Vector & | rStrainVector, |
const Vector & | rPreviousStrainVector, | ||
const Properties & | rMaterialProperties, | ||
const Matrix & | rParallelProjector, | ||
const Matrix & | rSerialProjector, | ||
Matrix & | rConstitutiveTensorMatrixSS, | ||
Matrix & | rConstitutiveTensorFiberSS, | ||
Vector & | rInitialApproximationSerialStrainMatrix, | ||
ConstitutiveLaw::Parameters & | rValues, | ||
const ConstitutiveLaw::StressMeasure & | rStressMeasure | ||
) |
This method computes the initial aproximation of the Newton-Raphson procedure regarding the serial strain of the matrix
rStrainVector | The total strain of the composite |
rPreviousStrainVector | The total strain of the composite of the previous step |
rMaterialProperties | the Properties instance of the current element |
rParallelProjector | The Parallel behaviour projector |
rSerialProjector | The Serial behaviour projector |
rConstitutiveTensorMatrixSS | the serial-serial components of the constitutive tensor of the matrix |
rConstitutiveTensorFiberSS | the serial-serial components of the constitutive tensor of the fiber |
rInitialApproximationSerialStrainMatrix | initial aproximation of the serial strain of the matrix |
|
overridevirtual |
Computes the material response in terms of Cauchy stresses and constitutive tensor
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Computes the material response in terms of Kirchhoff stresses and constitutive tensor
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Computes the material response in terms of 1st Piola-Kirchhoff stresses and constitutive tensor
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Computes the material response in terms of 2nd Piola-Kirchhoff stresses and constitutive tensor
Reimplemented from Kratos::ConstitutiveLaw.
void Kratos::SerialParallelRuleOfMixturesLaw::CalculateSerialParallelProjectionMatrices | ( | Matrix & | rParallelProjector, |
Matrix & | rSerialProjector | ||
) |
This method computes the projection tensors that divide the serial & paralle behaviours of the Strain/Stress
rParallelProjector | The Parallel behaviour projector |
rSerialProjector | The Serial behaviour projector |
void Kratos::SerialParallelRuleOfMixturesLaw::CalculateStrainsOnEachComponent | ( | const Vector & | rStrainVector, |
const Matrix & | rParallelProjector, | ||
const Matrix & | rSerialProjector, | ||
const Vector & | rSerialStrainMatrix, | ||
Vector & | rStrainVectorMatrix, | ||
Vector & | rStrainVectorFiber, | ||
ConstitutiveLaw::Parameters & | rValues, | ||
const int | Iteration = 1 |
||
) |
This method computes the strain vector in the fiber and matrix according to the total strain and the serial strain of the matrix
rStrainVector | The total strain of the composite |
rParallelProjector | The Parallel behaviour projector |
rSerialProjector | The Serial behaviour projector |
rSerialStrainMatrix | the serial component of the matrix strain vector |
rStrainVectorMatrix | the strain vector of the matrix |
rStrainVectorFiber | the strain vector of the fiber |
void Kratos::SerialParallelRuleOfMixturesLaw::CalculateTangentTensor | ( | ConstitutiveLaw::Parameters & | rValues, |
const ConstitutiveLaw::StressMeasure & | rStressMeasure = ConstitutiveLaw::StressMeasure_Cauchy |
||
) |
This method computes the tangent tensor.
rValues | The constitutive law parameters and flags |
|
overridevirtual |
Calculates the value of a specified variable (bool)
rParameterValues | the needed parameters for the CL calculation |
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
rValue | output: the value of the specified variable |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Calculates the value of a specified variable (double)
rParameterValues | the needed parameters for the CL calculation |
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
rValue | output: the value of the specified variable |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Calculates the value of a specified variable (integer)
rParameterValues | the needed parameters for the CL calculation |
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
rValue | output: the value of the specified variable |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Calculates the value of a specified variable (Matrix)
rParameterValues | the needed parameters for the CL calculation |
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
rValue | output: the value of the specified variable |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Calculates the value of a specified variable (Vector)
rParameterValues | the needed parameters for the CL calculation |
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
rValue | output: the value of the specified variable |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
This function is designed to be called once to perform all the checks needed on the input provided. Checks can be "expensive" as the function is designed to catch user's errors.
rMaterialProperties | |
rElementGeometry | |
rCurrentProcessInfo |
Reimplemented from Kratos::ConstitutiveLaw.
void Kratos::SerialParallelRuleOfMixturesLaw::CheckStressEquilibrium | ( | ConstitutiveLaw::Parameters & | rValues, |
const Vector & | rStrainVector, | ||
const Matrix & | rSerialProjector, | ||
const Vector & | rMatrixStressVector, | ||
const Vector & | rFiberStressVector, | ||
Vector & | rStressResidual, | ||
bool & | rIsConverged, | ||
const Matrix & | rConstitutiveTensorMatrixSS, | ||
const Matrix & | rConstitutiveTensorFiberSS | ||
) |
This method checks wether the serial stresses are in equilibrium
rStrainVector | The total strain of the composite |
rSerialProjector | The Serial behaviour projector |
rMatrixStressVector | the stress vector of the matrix |
rFiberStressVector | the stress vector of the fiber |
rStressResidual | the stress residual between the serial stresses |
rIsConverged | boolean indicator, true if equilibrium is achieved |
rConstitutiveTensorMatrixSS | the serial-serial components of the constitutive tensor of the matrix |
rConstitutiveTensorFiberSS | the serial-serial components of the constitutive tensor of the fiber |
|
inlineoverridevirtual |
Clone.
Reimplemented from Kratos::ConstitutiveLaw.
void Kratos::SerialParallelRuleOfMixturesLaw::CorrectSerialStrainMatrix | ( | ConstitutiveLaw::Parameters & | rValues, |
const Vector & | rResidualStresses, | ||
Vector & | rSerialStrainMatrix, | ||
const Matrix & | rSerialProjector, | ||
const ConstitutiveLaw::StressMeasure & | rStressMeasure | ||
) |
This method updates the serial strain of the matrix in order to reach equilibrium
rValues | the needed parameters for the CL calculation |
rResidualStresses | the stress residual between the serial stresses |
rSerialStrainMatrix | the serial component of the matrix strain vector |
rSerialProjector | The Serial behaviour projector |
|
overridevirtual |
creates a new constitutive law pointer
NewParameters | The configuration parameters of the new constitutive law |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Finalize the material response in terms of Cauchy stresses
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Finalize the material response in terms of Kirchhoff stresses
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Finalize the material response in terms of 1st Piola-Kirchhoff stresses
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Finalize the material response in terms of 2nd Piola-Kirchhoff stresses
Reimplemented from Kratos::ConstitutiveLaw.
|
inlineprotected |
This method the constitutive law of the fiber material.
|
inlineprotected |
This method the constitutive law of the matrix material.
|
inlineprotected |
This method returns the number of directions with serial behaviour (iso-stress behaviour)
|
inlineoverridevirtual |
Voigt tensor size:
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Returns the value of a specified variable (bool)
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Returns the value of a specified variable (double)
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Returns the value of a specified variable (integer)
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Returns the value of a specified variable (Matrix)
rThisVariable | the variable to be returned |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Returns the value of a specified variable (Vector)
rThisVariable | the variable to be returned |
rValue | a reference to the returned value |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Returns whether this constitutive Law has specified variable (boolean)
rThisVariable | the variable to be checked for |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Returns whether this constitutive Law has specified variable (double)
rThisVariable | the variable to be checked for |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Returns whether this constitutive Law has specified variable (integer)
rThisVariable | the variable to be checked for |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Returns whether this constitutive Law has specified variable (Matrix)
rThisVariable | the variable to be checked for |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Returns whether this constitutive Law has specified variable (Vector)
rThisVariable | the variable to be checked for |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
This is to be called at the very beginning of the calculation (e.g. from InitializeElement) in order to initialize all relevant attributes of the constitutive law
rMaterialProperties | the Properties instance of the current element |
rElementGeometry | the geometry of the current element |
rShapeFunctionsValues | the shape functions values in the current integration point |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Initialize the material response in terms of Cauchy stresses
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Initialize the material response in terms of Kirchhoff stresses
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Initialize the material response in terms of 1st Piola-Kirchhoff stresses
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Initialize the material response in terms of 2nd Piola-Kirchhoff stresses
Reimplemented from Kratos::ConstitutiveLaw.
void Kratos::SerialParallelRuleOfMixturesLaw::IntegrateStrainSerialParallelBehaviour | ( | const Vector & | rStrainVector, |
Vector & | FiberStressVector, | ||
Vector & | MatrixStressVector, | ||
const Properties & | rMaterialProperties, | ||
ConstitutiveLaw::Parameters & | rValues, | ||
Vector & | rSerialStrainMatrix, | ||
const ConstitutiveLaw::StressMeasure & | rStressMeasure = ConstitutiveLaw::StressMeasure_Cauchy |
||
) |
This method computes the stresses in the matrix and fiber according to the Serial-Parallel RoM
rStrainVector | The total strain of the composite |
FiberStressVector | the Stress of the Fiber |
MatrixStressVector | the Stress of the Matrix |
rMaterialProperties | the Properties instance of the current element |
rValues | the needed parameters for the CL calculation |
rSerialStrainMatrix | the serial component of the matrix strain vector |
void Kratos::SerialParallelRuleOfMixturesLaw::IntegrateStressesOfFiberAndMatrix | ( | ConstitutiveLaw::Parameters & | rValues, |
Vector & | rMatrixStrainVector, | ||
Vector & | rFiberStrainVector, | ||
Vector & | rMatrixStressVector, | ||
Vector & | rFiberStressVector, | ||
const ConstitutiveLaw::StressMeasure & | rStressMeasure | ||
) |
This method computes the stresses of the matrix/fiber according to its own CL
rValues | the needed parameters for the CL calculation |
rMatrixStrainVector | the strain vector of the matrix |
rMatrixStressVector | the stress vector of the matrix |
rFiberStressVector | the stress vector of the fiber |
Kratos::SerialParallelRuleOfMixturesLaw::KRATOS_CLASS_POINTER_DEFINITION | ( | SerialParallelRuleOfMixturesLaw | ) |
Counted pointer of SerialParallelRuleOfMixturesLaw.
|
inlineoverridevirtual |
If the CL requires to initialize the material response, called by the element in InitializeSolutionStep.
Reimplemented from Kratos::ConstitutiveLaw.
|
inlineoverridevirtual |
If the CL requires to initialize the material response, called by the element in InitializeSolutionStep.
Reimplemented from Kratos::ConstitutiveLaw.
|
inlineprotected |
This method sets the constitutive law of the fiber material.
|
inlineprotected |
This method sets the constitutive law of the matrix material.
|
overridevirtual |
Sets the value of a specified variable (bool)
rThisVariable | the variable to be returned |
rValue | new value of the specified variable |
rCurrentProcessInfo | the process info |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Sets the value of a specified variable (double)
rThisVariable | the variable to be returned |
rValue | new value of the specified variable |
rCurrentProcessInfo | the process info |
Reimplemented from Kratos::ConstitutiveLaw.
|
overridevirtual |
Sets the value of a specified variable (integer)
rThisVariable | the variable to be returned |
rValue | new value of the specified variable |
rCurrentProcessInfo | the process info |
Reimplemented from Kratos::ConstitutiveLaw.
|
inlineoverridevirtual |
Dimension of the law:
Reimplemented from Kratos::ConstitutiveLaw.
|
friend |
|
staticconstexpr |
Definition of the machine precision tolerance.