10 #if !defined(KRATOS_SIMO_METHOD_H_INCLUDED)
11 #define KRATOS_SIMO_METHOD_H_INCLUDED
49 template<
class TVariableType,
class TValueType>
87 SimoMethod(
const TVariableType& rVariable,
const TVariableType& rFirstDerivative,
const TVariableType& rSecondDerivative) :
DerivedType(rVariable,rFirstDerivative,rSecondDerivative) {}
90 SimoMethod(
const TVariableType& rVariable,
const TVariableType& rFirstDerivative,
const TVariableType& rSecondDerivative,
const TVariableType& rPrimaryVariable) :
DerivedType(rVariable,rFirstDerivative,rSecondDerivative,rPrimaryVariable) {}
126 std::string
Info()
const override
128 std::stringstream buffer;
129 buffer <<
"SimoMethod";
136 rOStream <<
"SimoMethod";
142 rOStream <<
"SimoMethod Data";
189 CurrentVariable = PreviousVariable + CurrentFirstDerivative * (1.0/this->
mNewmark.
c1);
207 CurrentVariable = PreviousVariable + CurrentFirstDerivative * (1.0/this->
mNewmark.
c1) + CurrentSecondDerivative * (1.0/this->
mNewmark.
c0);
229 CurrentFirstDerivative = this->
mNewmark.
c1 * (CurrentVariable-PreviousVariable);
244 CurrentSecondDerivative = (this->
mNewmark.
c0/this->
mNewmark.
c1) * (CurrentFirstDerivative-PreviousFirstDerivative);
254 KRATOS_ERROR <<
" Calling UpdateFromFirstDerivative for Simo time integration method : NOT IMPLEMENTED " <<std::endl;
276 CurrentFirstDerivative = this->
mNewmark.
c1 * (CurrentVariable-PreviousVariable);
292 CurrentSecondDerivative = (this->
mNewmark.
c0/this->
mNewmark.
c1) * (CurrentFirstDerivative-PreviousFirstDerivative);
340 void save(
Serializer& rSerializer)
const override
372 template<
class TVariableType,
class TValueType>
378 template<
class TVariableType,
class TValueType>
381 return rOStream << rThis.
Info();
Short class definition.
Definition: bossak_method.hpp:51
BaseType::Pointer BasePointerType
BasePointerType.
Definition: bossak_method.hpp:64
Short class definition.
Definition: newmark_method.hpp:51
NewmarkParameters mNewmark
Definition: newmark_method.hpp:320
This class defines the node.
Definition: node.h:65
TVariableType::Type & FastGetSolutionStepValue(const TVariableType &rThisVariable)
Definition: node.h:435
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Short class definition.
Definition: simo_method.hpp:51
SimoMethod(const TVariableType &rVariable, const TVariableType &rFirstDerivative, const TVariableType &rSecondDerivative, const TVariableType &rPrimaryVariable)
Constructor.
Definition: simo_method.hpp:90
std::string Info() const override
Turn back information as a string.
Definition: simo_method.hpp:126
void UpdateFromFirstDerivative(NodeType &rNode) override
Definition: simo_method.hpp:250
BasePointerType Clone() override
Clone.
Definition: simo_method.hpp:96
SimoMethod(const TVariableType &rVariable, const TVariableType &rFirstDerivative, const TVariableType &rSecondDerivative)
Constructor.
Definition: simo_method.hpp:87
void UpdateVariable(NodeType &rNode) override
Definition: simo_method.hpp:259
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: simo_method.hpp:134
TimeIntegrationMethod< TVariableType, TValueType > BaseType
BaseType.
Definition: simo_method.hpp:58
BaseType::NodeType NodeType
NodeType.
Definition: simo_method.hpp:64
void AssignFromFirstDerivative(NodeType &rNode) override
Definition: simo_method.hpp:179
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: simo_method.hpp:140
BaseType::Pointer BasePointerType
BasePointerType.
Definition: simo_method.hpp:61
KRATOS_CLASS_POINTER_DEFINITION(SimoMethod)
void AssignFromVariable(NodeType &rNode) override
Definition: simo_method.hpp:171
SimoMethod()
Default Constructor.
Definition: simo_method.hpp:81
BaseType::VariablePointer VariablePointer
KratosVariable or KratosVariableComponent.
Definition: simo_method.hpp:67
void PredictFirstDerivative(NodeType &rNode) override
Definition: simo_method.hpp:220
BossakMethod< TVariableType, TValueType > DerivedType
DerivedType.
Definition: simo_method.hpp:70
void PredictVariable(NodeType &rNode) override
Definition: simo_method.hpp:213
void UpdateFirstDerivative(NodeType &rNode) override
Definition: simo_method.hpp:267
void AssignFromSecondDerivative(NodeType &rNode) override
Definition: simo_method.hpp:194
SimoMethod(const TVariableType &rVariable)
Constructor.
Definition: simo_method.hpp:84
void UpdateSecondDerivative(NodeType &rNode) override
Definition: simo_method.hpp:281
void PredictSecondDerivative(NodeType &rNode) override
Definition: simo_method.hpp:234
~SimoMethod() override
Destructor.
Definition: simo_method.hpp:102
SimoMethod(SimoMethod &rOther)
Copy Constructor.
Definition: simo_method.hpp:93
Short class definition.
Definition: time_integration_method.hpp:55
VariablePointer mpVariable
Definition: time_integration_method.hpp:405
const TVariableType * VariablePointer
KratosVariable or KratosVariableComponent.
Definition: time_integration_method.hpp:65
VariablePointer mpFirstDerivative
Definition: time_integration_method.hpp:407
VariablePointer mpSecondDerivative
Definition: time_integration_method.hpp:409
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
#define KRATOS_ERROR
Definition: exception.h:161
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
def load(f)
Definition: ode_solve.py:307
double c1
Definition: newmark_method.hpp:63
double c0
Definition: newmark_method.hpp:62