40 template<
class TSparseSpace,
class TDenseSpace >
115 AuxiliarInitializeBossak();
141 AuxiliarInitializeBossak();
169 return Kratos::make_shared<ClassType>(ThisParameters);
201 noalias(rDeltaDisplacementTLS) = rNode.FastGetSolutionStepValue(DISPLACEMENT) - rNode.FastGetSolutionStepValue(DISPLACEMENT, 1);
203 array_1d<double, 3>& r_current_velocity = rNode.FastGetSolutionStepValue(VELOCITY);
204 const array_1d<double, 3>& r_previous_velocity = rNode.FastGetSolutionStepValue(VELOCITY, 1);
206 array_1d<double, 3>& r_current_acceleration = rNode.FastGetSolutionStepValue(ACCELERATION);
207 const array_1d<double, 3>& r_previous_acceleration = rNode.FastGetSolutionStepValue(ACCELERATION, 1);
209 UpdateVelocity(r_current_velocity, rDeltaDisplacementTLS, r_previous_velocity, r_previous_acceleration);
210 UpdateAcceleration(r_current_acceleration, rDeltaDisplacementTLS, r_previous_velocity, r_previous_acceleration);
237 const double delta_time = r_current_process_info[DELTA_TIME];
240 if (rModelPart.
Nodes().size() > 0) {
241 const auto it_node_begin = rModelPart.
Nodes().begin();
244 KRATOS_ERROR_IF_NOT(it_node_begin->HasDofFor(DISPLACEMENT_X)) <<
"ResidualBasedBossakDisplacementScheme:: DISPLACEMENT is not added" << std::endl;
245 const int disppos = it_node_begin->GetDofPosition(DISPLACEMENT_X);
246 const int velpos = it_node_begin->HasDofFor(VELOCITY_X) ?
static_cast<int>(it_node_begin->GetDofPosition(VELOCITY_X)) : -1;
247 const int accelpos = it_node_begin->HasDofFor(ACCELERATION_X) ?
static_cast<int>(it_node_begin->GetDofPosition(ACCELERATION_X)) : -1;
250 KRATOS_WARNING_IF(
"ResidualBasedBossakDisplacementScheme", !r_current_process_info.
Has(DOMAIN_SIZE)) <<
"DOMAIN_SIZE not defined. Please define DOMAIN_SIZE. 3D case will be assumed" << std::endl;
251 const std::size_t
dimension = r_current_process_info.
Has(DOMAIN_SIZE) ? r_current_process_info.
GetValue(DOMAIN_SIZE) : 3;
255 std::array<bool, 3> predicted = {
false,
false,
false};
256 const std::array<const Variable<ComponentType>*, 3> disp_components = {&DISPLACEMENT_X, &DISPLACEMENT_Y, &DISPLACEMENT_Z};
257 const std::array<const Variable<ComponentType>*, 3> vel_components = {&VELOCITY_X, &VELOCITY_Y, &VELOCITY_Z};
258 const std::array<const Variable<ComponentType>*, 3> accel_components = {&ACCELERATION_X, &ACCELERATION_Y, &ACCELERATION_Z};
260 typedef std::tuple<array_1d<double,3>, std::array<bool,3>> TLSContainerType;
261 TLSContainerType aux_TLS = std::make_tuple(delta_displacement, predicted);
264 auto& r_delta_displacement = std::get<0>(rAuxTLS);
265 auto& r_predicted = std::get<1>(rAuxTLS);
267 for (std::size_t i_dim = 0; i_dim < dimension; ++i_dim) {
268 r_predicted[i_dim] = false;
280 for (std::size_t i_dim = 0; i_dim <
dimension; ++i_dim) {
281 if (rNode.
GetDof(*accel_components[i_dim], accelpos + i_dim).
IsFixed()) {
282 r_delta_displacement[i_dim] = (r_current_acceleration[i_dim] + mBossak.c3 * r_previous_acceleration[i_dim] + mBossak.c2 * r_previous_velocity[i_dim])/mBossak.c0;
283 r_current_displacement[i_dim] = r_previous_displacement[i_dim] + r_delta_displacement[i_dim];
284 r_predicted[i_dim] = true;
289 for (std::size_t i_dim = 0; i_dim <
dimension; ++i_dim) {
290 if (rNode.
GetDof(*vel_components[i_dim], velpos + i_dim).
IsFixed() && !r_predicted[i_dim]) {
291 r_delta_displacement[i_dim] = (r_current_velocity[i_dim] + mBossak.c4 * r_previous_velocity[i_dim] + mBossak.c5 * r_previous_acceleration[i_dim])/mBossak.c1;
292 r_current_displacement[i_dim] = r_previous_displacement[i_dim] + r_delta_displacement[i_dim];
293 r_predicted[i_dim] = true;
297 for (std::size_t i_dim = 0; i_dim <
dimension; ++i_dim) {
298 if (!rNode.
GetDof(*disp_components[i_dim], disppos + i_dim).
IsFixed() && !r_predicted[i_dim]) {
299 r_current_displacement[i_dim] = r_previous_displacement[i_dim] + delta_time * r_previous_velocity[i_dim] + 0.5 * std::pow(delta_time, 2) * r_previous_acceleration[i_dim];
304 noalias(r_delta_displacement) = r_current_displacement - r_previous_displacement;
305 UpdateVelocity(r_current_velocity, r_delta_displacement, r_previous_velocity, r_previous_acceleration);
306 UpdateAcceleration(r_current_acceleration, r_delta_displacement, r_previous_velocity, r_previous_acceleration);
335 const double delta_time = r_current_process_info[DELTA_TIME];
339 mBossak.c1 = ( mBossak.gamma / (mBossak.beta *
delta_time) );
340 mBossak.c2 = ( 1.0 / (mBossak.beta *
delta_time) );
341 mBossak.c3 = ( 0.5 / (mBossak.beta) - 1.0 );
342 mBossak.c4 = ( (mBossak.gamma / mBossak.beta) - 1.0 );
343 mBossak.c5 = (
delta_time * 0.5 * ( ( mBossak.gamma / mBossak.beta ) - 2.0 ) );
346 if (rModelPart.
Nodes().size() > 0) {
347 const auto it_node_begin = rModelPart.
Nodes().begin();
350 KRATOS_WARNING_IF(
"ResidualBasedBossakDisplacementScheme", !r_current_process_info.
Has(DOMAIN_SIZE)) <<
"DOMAIN_SIZE not defined. Please define DOMAIN_SIZE. 3D case will be assumed" << std::endl;
351 const std::size_t
dimension = r_current_process_info.
Has(DOMAIN_SIZE) ? r_current_process_info.
GetValue(DOMAIN_SIZE) : 3;
354 const int velpos = it_node_begin->HasDofFor(VELOCITY_X) ?
static_cast<int>(it_node_begin->GetDofPosition(VELOCITY_X)) : -1;
355 const int accelpos = it_node_begin->HasDofFor(ACCELERATION_X) ?
static_cast<int>(it_node_begin->GetDofPosition(ACCELERATION_X)) : -1;
357 std::array<bool, 3> fixed = {
false,
false,
false};
358 const std::array<const Variable<ComponentType>*, 3> disp_components = {&DISPLACEMENT_X, &DISPLACEMENT_Y, &DISPLACEMENT_Z};
359 const std::array<const Variable<ComponentType>*, 3> vel_components = {&VELOCITY_X, &VELOCITY_Y, &VELOCITY_Z};
360 const std::array<const Variable<ComponentType>*, 3> accel_components = {&ACCELERATION_X, &ACCELERATION_Y, &ACCELERATION_Z};
363 for (std::size_t i_dim = 0; i_dim < dimension; ++i_dim) {
364 rFixedTLS[i_dim] = false;
368 for (std::size_t i_dim = 0; i_dim <
dimension; ++i_dim) {
369 if (rNode.
GetDof(*accel_components[i_dim], accelpos + i_dim).
IsFixed()) {
370 rNode.Fix(*disp_components[i_dim]);
371 rFixedTLS[i_dim] = true;
376 for (std::size_t i_dim = 0; i_dim <
dimension; ++i_dim) {
377 if (rNode.
GetDof(*vel_components[i_dim], velpos + i_dim).
IsFixed() && !rFixedTLS[i_dim]) {
378 rNode.Fix(*disp_components[i_dim]);
397 const int err = ImplicitBaseType::Check(rModelPart);
398 if(err != 0)
return err;
401 for (
const auto& rnode : rModelPart.
Nodes()) {
414 <<
"Insufficient buffer size. Buffer size should be greater than 2. Current size is: "
418 KRATOS_ERROR_IF(mBossak.alpha > 0.0 || mBossak.alpha < -0.5) <<
"Value not admissible for "
419 <<
"AlphaBossak. Admissible values are between 0.0 and -0.5\nCurrent value is: "
420 << mBossak.alpha << std::endl;
422 static const double epsilon = 1
e-12;
424 std::abs(mNewmark.beta - 0.167) < epsilon ||
425 std::abs(mNewmark.beta - 0.25) < epsilon)
426 <<
"Value not admissible for NewmarkBeta. Admissible values are:\n"
427 <<
"0.0 for central-differencing\n"
428 <<
"0.25 for mean-constant-acceleration\n"
429 <<
"0.167 for linear-acceleration\n"
430 <<
"Current value is: " << mNewmark.beta << std::endl;
439 this->mpDofUpdater->Clear();
447 "name" : "bossak_scheme",
448 "damp_factor_m" : -0.3,
449 "newmark_beta" : 0.25
453 const Parameters base_default_parameters = ImplicitBaseType::GetDefaultParameters();
455 return default_parameters;
461 return "bossak_scheme";
469 std::string
Info()
const override
471 return "ResidualBasedBossakDisplacementScheme";
490 typename TSparseSpace::DofUpdaterPointerType mpDofUpdater = TSparseSpace::CreateDofUpdater();
505 double c0, c1, c2, c3, c4, c5;
522 std::vector< Vector >
v;
525 std::vector< Vector >
a;
528 std::vector< Vector >
ap;
556 noalias(rCurrentVelocity) = (mBossak.
c1 * rDeltaDisplacement - mBossak.
c4 * rPreviousVelocity - mBossak.
c5 * rPreviousAcceleration);
572 noalias(rCurrentAcceleration) = (mBossak.
c0 * rDeltaDisplacement - mBossak.
c2 * rPreviousVelocity - mBossak.
c3 * rPreviousAcceleration);
591 noalias(LHS_Contribution) += M * (1.0 - mBossak.
alpha) * mBossak.
c0;
595 noalias(LHS_Contribution) += D * mBossak.
c1;
614 const std::size_t this_thread = OpenMPUtils::ThisThread();
616 const auto& r_const_elem_ref = rElement;
618 if (M.size1() != 0) {
621 mVector.
a[this_thread] *= (1.00 - mBossak.
alpha);
623 r_const_elem_ref.GetSecondDerivativesVector(mVector.
ap[this_thread], 1);
624 noalias(mVector.
a[this_thread]) += mBossak.
alpha * mVector.
ap[this_thread];
626 noalias(RHS_Contribution) -=
prod(M, mVector.
a[this_thread]);
630 if (D.size1() != 0) {
631 r_const_elem_ref.GetFirstDerivativesVector(mVector.
v[this_thread], 0);
632 noalias(RHS_Contribution) -=
prod(D, mVector.
v[this_thread]);
652 const std::size_t this_thread = OpenMPUtils::ThisThread();
653 const auto& r_const_cond_ref = rCondition;
656 if (M.size1() != 0) {
658 mVector.
a[this_thread] *= (1.00 - mBossak.
alpha);
660 r_const_cond_ref.GetSecondDerivativesVector(mVector.
ap[this_thread], 1);
661 noalias(mVector.
a[this_thread]) += mBossak.
alpha * mVector.
ap[this_thread];
663 noalias(RHS_Contribution) -=
prod(M, mVector.
a[this_thread]);
668 if (D.size1() != 0) {
669 r_const_cond_ref.GetFirstDerivativesVector(mVector.
v[this_thread], 0);
671 noalias(RHS_Contribution) -=
prod(D, mVector.
v[this_thread]);
678 ImplicitBaseType::AssignSettings(ThisParameters);
690 void AuxiliarInitializeBossak()
693 CalculateBossakCoefficients();
696 const std::size_t
num_threads = ParallelUtilities::GetNumThreads();
702 KRATOS_DETAIL(
"MECHANICAL SCHEME: The Bossak Time Integration Scheme ") <<
"[alpha_m= " << mBossak.
alpha <<
" beta= " << mNewmark.
beta <<
" gamma= " << mNewmark.
gamma <<
"]" <<std::endl;
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Base class for all Conditions.
Definition: condition.h:59
virtual void GetSecondDerivativesVector(Vector &values, int Step=0) const
Definition: condition.h:323
bool Has(const Variable< TDataType > &rThisVariable) const
Checks if the data container has a value associated with a given variable.
Definition: data_value_container.h:382
TDataType & GetValue(const Variable< TDataType > &rThisVariable)
Gets the value associated with a given variable.
Definition: data_value_container.h:268
bool IsFixed() const
Definition: dof.h:376
Base class for all Elements.
Definition: element.h:60
std::vector< DofType::Pointer > DofsVectorType
Definition: element.h:100
virtual void GetSecondDerivativesVector(Vector &values, int Step=0) const
Definition: element.h:320
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
MeshType::ConditionsContainerType ConditionsContainerType
Condintions container. A vector set of Conditions with their Id's as key.
Definition: model_part.h:183
MeshType::ElementsContainerType ElementsContainerType
Element container. A vector set of Elements with their Id's as key.
Definition: model_part.h:168
IndexType GetBufferSize() const
This method gets the suffer size of the model part database.
Definition: model_part.h:1876
ProcessInfo & GetProcessInfo()
Definition: model_part.h:1746
MeshType::NodeIterator NodeIterator
Definition: model_part.h:134
MeshType::NodesContainerType NodesContainerType
Nodes container. Which is a vector set of nodes with their Id's as key.
Definition: model_part.h:128
NodesContainerType & Nodes(IndexType ThisIndex=0)
Definition: model_part.h:507
This class defines the node.
Definition: node.h:65
const DofType & GetDof(TVariableType const &rDofVariable, int pos) const
Get dof with a given position. If not found it is search.
Definition: node.h:649
TVariableType::Type & FastGetSolutionStepValue(const TVariableType &rThisVariable)
Definition: node.h:435
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
double GetDouble() const
This method returns the double contained in the current Parameter.
Definition: kratos_parameters.cpp:657
void RecursivelyAddMissingParameters(const Parameters &rDefaultParameters)
This function is designed to verify that the parameters under testing contain at least all parameters...
Definition: kratos_parameters.cpp:1457
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
Bossak integration scheme (for linear and nonlinear dynamic problems) for displacements.
Definition: residual_based_bossak_displacement_scheme.hpp:43
BaseType::Pointer Create(Parameters ThisParameters) const override
Construct a dynamically allocated new scheme from a Parameters object.
Definition: residual_based_bossak_displacement_scheme.hpp:167
void Update(ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override
Update state variables within a newton iteration at the end of the time step.
Definition: residual_based_bossak_displacement_scheme.hpp:187
std::string Info() const override
Return information as a string.
Definition: residual_based_bossak_displacement_scheme.hpp:469
TSparseSpace::DofUpdaterPointerType mpDofUpdater
Definition: residual_based_bossak_displacement_scheme.hpp:490
void PrintData(std::ostream &rOStream) const override
Print the instance's data.
Definition: residual_based_bossak_displacement_scheme.hpp:481
void UpdateVelocity(array_1d< double, 3 > &rCurrentVelocity, const array_1d< double, 3 > &rDeltaDisplacement, const array_1d< double, 3 > &rPreviousVelocity, const array_1d< double, 3 > &rPreviousAcceleration)
Update the first time derivative.
Definition: residual_based_bossak_displacement_scheme.hpp:549
ResidualBasedBossakDisplacementScheme(const double Alpha, const double NewmarkBeta)
Constructor.
Definition: residual_based_bossak_displacement_scheme.hpp:133
void CalculateBossakCoefficients()
Recalculate the Newmark coefficients, taking the alpha parameters into account.
Definition: residual_based_bossak_displacement_scheme.hpp:173
void UpdateAcceleration(array_1d< double, 3 > &rCurrentAcceleration, const array_1d< double, 3 > &rDeltaDisplacement, const array_1d< double, 3 > &rPreviousVelocity, const array_1d< double, 3 > &rPreviousAcceleration)
Update the second time derivative.
Definition: residual_based_bossak_displacement_scheme.hpp:565
int Check(const ModelPart &rModelPart) const override
Check whether the scheme and the provided ModelPart are configured correctly.
Definition: residual_based_bossak_displacement_scheme.hpp:393
typename ImplicitBaseType::TSystemMatrixType TSystemMatrixType
Type for the system matrix within ImplicitBaseType.
Definition: residual_based_bossak_displacement_scheme.hpp:69
typename ImplicitBaseType::LocalSystemMatrixType LocalSystemMatrixType
Type for local system matrices within ImplicitBaseType.
Definition: residual_based_bossak_displacement_scheme.hpp:78
typename ImplicitBaseType::LocalSystemVectorType LocalSystemVectorType
Type for local system vectors within ImplicitBaseType.
Definition: residual_based_bossak_displacement_scheme.hpp:75
~ResidualBasedBossakDisplacementScheme() override
Definition: residual_based_bossak_displacement_scheme.hpp:158
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: residual_based_bossak_displacement_scheme.hpp:475
Parameters GetDefaultParameters() const override
This function returns the default Parameters to help avoiding conflicts between different constructor...
Definition: residual_based_bossak_displacement_scheme.hpp:443
typename ImplicitBaseType::TSystemVectorType TSystemVectorType
Type for the system vector within ImplicitBaseType.
Definition: residual_based_bossak_displacement_scheme.hpp:72
void AddDynamicsToLHS(LocalSystemMatrixType &LHS_Contribution, LocalSystemMatrixType &D, LocalSystemMatrixType &M, const ProcessInfo &rCurrentProcessInfo) override
Add dynamic left hand side contribution from Element s.
Definition: residual_based_bossak_displacement_scheme.hpp:582
ResidualBasedBossakDisplacementScheme(const double Alpha=0.0)
Constructor from a Bossak parameter.
Definition: residual_based_bossak_displacement_scheme.hpp:122
void AddDynamicsToRHS(Element &rElement, LocalSystemVectorType &RHS_Contribution, LocalSystemMatrixType &D, LocalSystemMatrixType &M, const ProcessInfo &rCurrentProcessInfo) override
Add dynamic right hand side contribution from an Element.
Definition: residual_based_bossak_displacement_scheme.hpp:606
ResidualBasedBossakDisplacementScheme(ResidualBasedBossakDisplacementScheme &rOther)
Definition: residual_based_bossak_displacement_scheme.hpp:144
ResidualBasedBossakDisplacementScheme(Parameters ThisParameters)
Construct from a Parameters object.
Definition: residual_based_bossak_displacement_scheme.hpp:105
BaseTypePointer Clone() override
Clone method.
Definition: residual_based_bossak_displacement_scheme.hpp:152
static std::string Name()
Return the name of the class as used in the settings (snake_case).
Definition: residual_based_bossak_displacement_scheme.hpp:459
typename Element::DofsVectorType DofsVectorType
Vector type for degrees of freedom within an Element.
Definition: residual_based_bossak_displacement_scheme.hpp:66
NewmarkMethod mNewmark
Newmark Beta parameters.
Definition: residual_based_bossak_displacement_scheme.hpp:535
GeneralVectors mVector
Aggregate struct for velocities and accelerations.
Definition: residual_based_bossak_displacement_scheme.hpp:538
void InitializeSolutionStep(ModelPart &rModelPart, TSystemMatrixType &A, TSystemVectorType &Dx, TSystemVectorType &b) override
Prepare state variables for a new solution step.
Definition: residual_based_bossak_displacement_scheme.hpp:321
double ComponentType
Component type as 'double'.
Definition: residual_based_bossak_displacement_scheme.hpp:96
void Predict(ModelPart &rModelPart, DofsArrayType &rDofSet, TSystemMatrixType &rA, TSystemVectorType &rDx, TSystemVectorType &rb) override
Apply the predictor.
Definition: residual_based_bossak_displacement_scheme.hpp:225
KRATOS_CLASS_POINTER_DEFINITION(ResidualBasedBossakDisplacementScheme)
ModelPart::NodeIterator NodeIterator
Iterator for nodes in a ModelPart.
Definition: residual_based_bossak_displacement_scheme.hpp:81
void AssignSettings(const Parameters ThisParameters) override
Assign member variables from Parameters.
Definition: residual_based_bossak_displacement_scheme.hpp:676
void Clear() override
Release dynamic memory allocated by this instance.
Definition: residual_based_bossak_displacement_scheme.hpp:437
void AddDynamicsToRHS(Condition &rCondition, LocalSystemVectorType &RHS_Contribution, LocalSystemMatrixType &D, LocalSystemMatrixType &M, const ProcessInfo &rCurrentProcessInfo) override
Add dynamic right hand side contribution of a Condition.
Definition: residual_based_bossak_displacement_scheme.hpp:644
typename ImplicitBaseType::TDataType TDataType
Data type used within the ImplicitBaseType.
Definition: residual_based_bossak_displacement_scheme.hpp:60
BossakAlphaMethod mBossak
Bossak Alpha parameters.
Definition: residual_based_bossak_displacement_scheme.hpp:532
typename ImplicitBaseType::DofsArrayType DofsArrayType
Array type for degrees of freedom within ImplicitBaseType.
Definition: residual_based_bossak_displacement_scheme.hpp:63
typename BaseType::Pointer BaseTypePointer
Pointer type for the BaseType.
Definition: residual_based_bossak_displacement_scheme.hpp:93
This is the base class for the implicit time schemes.
Definition: residual_based_implicit_time_scheme.h:55
BaseType::TDataType TDataType
Data type definition.
Definition: residual_based_implicit_time_scheme.h:71
BaseType::TSystemMatrixType TSystemMatrixType
Matrix type definition.
Definition: residual_based_implicit_time_scheme.h:73
BaseType::LocalSystemMatrixType LocalSystemMatrixType
Local system vector type definition.
Definition: residual_based_implicit_time_scheme.h:79
BaseType::LocalSystemVectorType LocalSystemVectorType
Local system matrix type definition.
Definition: residual_based_implicit_time_scheme.h:77
BaseType::DofsArrayType DofsArrayType
DoF array type definition.
Definition: residual_based_implicit_time_scheme.h:66
BaseType::TSystemVectorType TSystemVectorType
Vector type definition.
Definition: residual_based_implicit_time_scheme.h:75
This class provides the implementation of the basic tasks that are needed by the solution strategy.
Definition: scheme.h:56
virtual Parameters ValidateAndAssignParameters(Parameters ThisParameters, const Parameters DefaultParameters) const
This method validate and assign default parameters.
Definition: scheme.h:773
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
#define KRATOS_ERROR_IF_NOT(conditional)
Definition: exception.h:163
#define KRATOS_CHECK_DOF_IN_NODE(TheVariable, TheNode)
Definition: checks.h:176
#define KRATOS_ERROR_IF(conditional)
Definition: exception.h:162
#define KRATOS_CHECK_VARIABLE_IN_NODAL_DATA(TheVariable, TheNode)
Definition: checks.h:171
#define KRATOS_DETAIL(label)
Definition: logger.h:280
#define KRATOS_WARNING_IF(label, conditional)
Definition: logger.h:266
void InitializeSolutionStep(ConstructionUtility &rThisUtil, std::string ThermalSubModelPartName, std::string MechanicalSubModelPartName, std::string HeatFluxSubModelPartName, std::string HydraulicPressureSubModelPartName, bool thermal_conditions, bool mechanical_conditions, int phase)
Definition: add_custom_utilities_to_python.cpp:45
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
void block_for_each(TIterator itBegin, TIterator itEnd, TFunction &&rFunction)
Execute a functor on all items of a range in parallel.
Definition: parallel_utilities.h:299
AMatrix::MatrixProductExpression< TExpression1Type, TExpression2Type > prod(AMatrix::MatrixExpression< TExpression1Type, TCategory1 > const &First, AMatrix::MatrixExpression< TExpression2Type, TCategory2 > const &Second)
Definition: amatrix_interface.h:568
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
TABLE_NUMBER_ANGULAR_VELOCITY TABLE_NUMBER_MOMENT I33 BEAM_INERTIA_ROT_UNIT_LENGHT_Y KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BEAM_INERTIA_ROT_UNIT_LENGHT_Z) typedef std double
Definition: DEM_application_variables.h:182
delta_time
Definition: generate_frictional_mortar_condition.py:130
b
Definition: generate_total_lagrangian_mixed_volumetric_strain_element.py:31
int dimension
Definition: isotropic_damage_automatic_differentiation.py:123
def Alpha(n, j)
Definition: quadrature.py:93
def num_threads
Definition: script.py:75
A
Definition: sensitivityMatrix.py:70
e
Definition: run_cpp_mpi_tests.py:31
Bossak Alpha parameters.
Definition: residual_based_bossak_displacement_scheme.hpp:494
double c2
Definition: residual_based_bossak_displacement_scheme.hpp:505
double c4
Definition: residual_based_bossak_displacement_scheme.hpp:505
double c0
System constants.
Definition: residual_based_bossak_displacement_scheme.hpp:505
double alpha
Bossak Alpha.
Definition: residual_based_bossak_displacement_scheme.hpp:496
double beta
Bossak Beta.
Definition: residual_based_bossak_displacement_scheme.hpp:499
double c1
Definition: residual_based_bossak_displacement_scheme.hpp:505
double c3
Definition: residual_based_bossak_displacement_scheme.hpp:505
double c5
Definition: residual_based_bossak_displacement_scheme.hpp:505
double gamma
Bossak Gamma.
Definition: residual_based_bossak_displacement_scheme.hpp:502
Velocities and accelerations used for integration.
Definition: residual_based_bossak_displacement_scheme.hpp:520
std::vector< Vector > v
Velocity.
Definition: residual_based_bossak_displacement_scheme.hpp:522
std::vector< Vector > a
Acceleration.
Definition: residual_based_bossak_displacement_scheme.hpp:525
std::vector< Vector > ap
Previous acceleration.
Definition: residual_based_bossak_displacement_scheme.hpp:528
Newmark parameters used for integration.
Definition: residual_based_bossak_displacement_scheme.hpp:510
double gamma
Newmark Gamma.
Definition: residual_based_bossak_displacement_scheme.hpp:515
double beta
Newmark Beta.
Definition: residual_based_bossak_displacement_scheme.hpp:512