15 #if !defined(KRATOS_RESIDUALBASED_INCREMENTALUPDATE_STATIC_SIMP_SCHEME_H)
16 #define KRATOS_RESIDUALBASED_INCREMENTALUPDATE_STATIC_SIMP_SCHEME_H
59 template<
class TSparseSpace,
class TDenseSpace >
127 const double E_min = rCurrentElement.
GetProperties()[YOUNGS_MODULUS_MIN];
128 const double E_initial = rCurrentElement.
GetProperties()[YOUNGS_MODULUS_0];
130 const std::string mat_interp = rCurrentElement.
GetValue(MAT_INTERP);
131 const double E_current = rCurrentElement.
GetValue(YOUNG_MODULUS);
132 const double penalty = rCurrentElement.
GetValue(PENAL);
133 const double x_phys = rCurrentElement.
GetValue(X_PHYS);
136 if (mat_interp ==
"simp")
138 E_new += E_initial*pow(x_phys, penalty);
140 else if (mat_interp ==
"simp_modified")
142 E_new += (E_min + pow(x_phys, penalty) * (E_initial - E_min));
144 else if (mat_interp ==
"ramp")
146 E_new += E_min + x_phys/(1+penalty*(1-x_phys)) * (E_initial - E_min);
150 KRATOS_ERROR <<
"Material interpolation option incorrectly chosen \nAvailable methods are: 'simp', 'simp_modified', 'ramp'." << std::endl;
154 const double factor = E_new/E_current;
159 rLHSContribution *=
factor;
160 rRHSContribution *=
factor;
Base class for all Elements.
Definition: element.h:60
PropertiesType & GetProperties()
Definition: element.h:1024
virtual void EquationIdVector(EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const
Definition: element.h:258
virtual void InitializeNonLinearIteration(const ProcessInfo &rCurrentProcessInfo)
Definition: element.h:372
virtual void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo)
Definition: element.h:405
std::vector< std::size_t > EquationIdVectorType
Definition: element.h:98
TVariableType::Type & GetValue(const TVariableType &rThisVariable)
Definition: geometrical_object.h:248
A sorted associative container similar to an STL set, but uses a vector to store pointers to its data...
Definition: pointer_vector_set.h:72
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Definition: residualbased_incrementalupdate_static_simp_scheme.h:61
~ResidualBasedIncrementalUpdateStaticSIMPScheme() override
Definition: residualbased_incrementalupdate_static_simp_scheme.h:99
BaseType::TSystemVectorType TSystemVectorType
Definition: residualbased_incrementalupdate_static_simp_scheme.h:77
BaseType::LocalSystemVectorType LocalSystemVectorType
Definition: residualbased_incrementalupdate_static_simp_scheme.h:79
BaseType::DofsArrayType DofsArrayType
Definition: residualbased_incrementalupdate_static_simp_scheme.h:73
BaseType::TDataType TDataType
Definition: residualbased_incrementalupdate_static_simp_scheme.h:71
ResidualBasedIncrementalUpdateStaticScheme< TSparseSpace, TDenseSpace > BaseType
Definition: residualbased_incrementalupdate_static_simp_scheme.h:69
void CalculateSystemContributions(Element &rCurrentElement, LocalSystemMatrixType &rLHSContribution, LocalSystemVectorType &rRHSContribution, EquationIdVectorType &rEquationId, const ProcessInfo &rCurrentProcessInfo) override
Definition: residualbased_incrementalupdate_static_simp_scheme.h:111
KRATOS_CLASS_POINTER_DEFINITION(ResidualBasedIncrementalUpdateStaticSIMPScheme)
Element::EquationIdVectorType EquationIdVectorType
The definition of the vector containing the equation ids.
Definition: residualbased_incrementalupdate_static_simp_scheme.h:84
BaseType::TSystemMatrixType TSystemMatrixType
Definition: residualbased_incrementalupdate_static_simp_scheme.h:75
ResidualBasedIncrementalUpdateStaticSIMPScheme()
Definition: residualbased_incrementalupdate_static_simp_scheme.h:93
BaseType::LocalSystemMatrixType LocalSystemMatrixType
Definition: residualbased_incrementalupdate_static_simp_scheme.h:80
This class provides the implementation of a static scheme.
Definition: residualbased_incrementalupdate_static_scheme.h:57
BaseType::LocalSystemMatrixType LocalSystemMatrixType
Local system vector type definition.
Definition: residualbased_incrementalupdate_static_scheme.h:84
Element::EquationIdVectorType EquationIdVectorType
The definition of the vector containing the equation ids.
Definition: residualbased_incrementalupdate_static_scheme.h:92
BaseType::LocalSystemVectorType LocalSystemVectorType
Local system matrix type definition.
Definition: residualbased_incrementalupdate_static_scheme.h:82
typename TSparseSpace::MatrixType TSystemMatrixType
Matrix type definition.
Definition: scheme.h:71
typename TSparseSpace::VectorType TSystemVectorType
Vector type definition.
Definition: scheme.h:74
typename TDenseSpace::VectorType LocalSystemVectorType
Local system vector type definition.
Definition: scheme.h:80
typename TSparseSpace::DataType TDataType
Data type definition.
Definition: scheme.h:68
typename TDenseSpace::MatrixType LocalSystemMatrixType
Local system matrix type definition.
Definition: scheme.h:77
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
#define KRATOS_ERROR
Definition: exception.h:161
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
float factor
for node in (self.combined_model_part).Nodes: pold = node.GetSolutionStepValue(PRESSURE,...
Definition: ulf_PGLASS.py:254