11 #if !defined( KRATOS_NODAL_UPDATE_UTILITIES )
12 #define KRATOS_NODAL_UPDATE_UTILITIES
58 template <
unsigned int TDim>
106 const double timeStep) {
107 KRATOS_ERROR <<
"Calling the nodal update base class UpdateMeshTimeDerivatives() method. Call the proper time scheme derived one.";
117 #pragma omp parallel for firstprivate(local_mesh_nodes_begin)
118 for(
int k=0; k<static_cast<int>(rLocalMesh.NumberOfNodes()); ++
k)
123 noalias(v_node) = it_node->FastGetSolutionStepValue(MESH_VELOCITY);
210 template <
unsigned int TDim>
232 const double bossak_f = 0.0;
233 const double bossak_beta = 0.25;
234 const double bossak_gamma = 0.5;
236 mBossakBeta = std::pow((1.0 + bossak_f - BossakAlpha), 2) * bossak_beta;
266 const double timeStep)
override{
270 #pragma omp parallel for firstprivate(local_mesh_nodes_begin)
271 for(
int k = 0; k < static_cast<int>(rLocalMesh.NumberOfNodes()); ++
k) {
274 const array_1d<double, 3>& umesh_n = it_node->FastGetSolutionStepValue(MESH_DISPLACEMENT, 1);
276 const array_1d<double, 3>& amesh_n = it_node->FastGetSolutionStepValue(MESH_ACCELERATION, 1);
278 const array_1d<double, 3>& umesh_n1 = it_node->FastGetSolutionStepValue(MESH_DISPLACEMENT);
286 for (
unsigned int d=0;
d<TDim; ++
d) {
287 vmesh_n1[
d] = const_u * (umesh_n1[
d] - umesh_n[
d]) + const_v * vmesh_n[
d] + const_a * amesh_n[
d];
virtual bool SynchronizeVariable(Variable< int > const &rThisVariable)
Definition: communicator.cpp:357
MeshType & LocalMesh()
Returns the reference to the mesh storing all local entities.
Definition: communicator.cpp:245
NodeIterator NodesBegin()
Definition: mesh.h:326
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
Communicator & GetCommunicator()
Definition: model_part.h:1821
MeshType::NodeIterator NodeIterator
Definition: model_part.h:134
Definition: nodal_update_utilities.h:60
NodalUpdateBaseClass(const NodalUpdateBaseClass &Other)
virtual void UpdateMeshTimeDerivatives(ModelPart &rModelPart, const double timeStep)
Definition: nodal_update_utilities.h:105
virtual void SetMeshTimeDerivativesOnInterface(ModelPart &rInterfaceModelPart)
Definition: nodal_update_utilities.h:114
KRATOS_CLASS_POINTER_DEFINITION(NodalUpdateBaseClass)
virtual ~NodalUpdateBaseClass()
Definition: nodal_update_utilities.h:94
NodalUpdateBaseClass()
Definition: nodal_update_utilities.h:79
Definition: nodal_update_utilities.h:212
NodalUpdateNewmark(const NodalUpdateNewmark &Other)
double mBossakBeta
Definition: nodal_update_utilities.h:309
double mBossakGamma
Definition: nodal_update_utilities.h:310
virtual ~NodalUpdateNewmark()
Definition: nodal_update_utilities.h:254
NodalUpdateNewmark(const double BossakAlpha=-0.3)
Definition: nodal_update_utilities.h:231
void UpdateMeshTimeDerivatives(ModelPart &rModelPart, const double timeStep) override
Definition: nodal_update_utilities.h:265
KRATOS_CLASS_POINTER_DEFINITION(NodalUpdateNewmark)
#define KRATOS_ERROR
Definition: exception.h:161
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
int d
Definition: ode_solve.py:397
int k
Definition: quadrature.py:595