SPHinXsys  alpha version
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SPH::thin_structure_dynamics::ShellStressRelaxationFirstHalf Class Reference

computing stress relaxation process by verlet time stepping This is the first step More...

#include <thin_structure_dynamics.h>

Inherits SPH::thin_structure_dynamics::BaseShellRelaxation.

Public Member Functions

 ShellStressRelaxationFirstHalf (BaseBodyRelationInner &inner_relation, int number_of_gaussian_points=3, bool hourglass_control=false)
 
- Public Member Functions inherited from SPH::thin_structure_dynamics::BaseShellRelaxation
 BaseShellRelaxation (BaseBodyRelationInner &inner_relation)
 
- Public Member Functions inherited from SPH::ParticleDynamics1Level
 ParticleDynamics1Level (SPHBody &sph_body)
 
virtual void exec (Real dt=0.0) override
 
virtual void parallel_exec (Real dt=0.0) override
 
- Public Member Functions inherited from SPH::InteractionDynamicsWithUpdate
 InteractionDynamicsWithUpdate (SPHBody &sph_body)
 
- Public Member Functions inherited from SPH::InteractionDynamics
 InteractionDynamics (SPHBody &sph_body)
 
- Public Member Functions inherited from SPH::ParticleDynamics< void >
 ParticleDynamics (SPHBody &sph_body)
 
SPHBodygetSPHBody ()
 
- Public Member Functions inherited from SPH::DataDelegateInner< BodyType, ParticlesType, MaterialType, BaseDataDelegateType >
 DataDelegateInner (BaseBodyRelationInner &body_inner_relation)
 

Protected Member Functions

virtual void Initialization (size_t index_i, Real dt=0.0) override
 
virtual void Interaction (size_t index_i, Real dt=0.0) override
 
virtual void Update (size_t index_i, Real dt=0.0) override
 
- Protected Member Functions inherited from SPH::ParticleDynamics< void >
void setBodyUpdated ()
 
virtual void setupDynamics (Real dt=0.0)
 

Protected Attributes

Real rho0_
 
Real inv_rho0_
 
StdLargeVec< Matd > & global_stress_
 
StdLargeVec< Matd > & global_moment_
 
StdLargeVec< Vecd > & global_shear_stress_
 
StdLargeVec< Vecd > & n_
 
Real smoothing_length_
 
Real E0_
 
Real G0_
 
Real nu_
 
Real hourglass_control_factor_
 
bool hourglass_control_
 
const Real inv_W0_ = 1.0 / body_->sph_adaptation_->getKernel()->W0(Vecd(0))
 
const Real shear_correction_factor_ = 5.0 / 6.0
 
const StdVec< Real > three_gaussian_points_ = { 0.0, 0.7745966692414834, -0.7745966692414834 }
 
const StdVec< Real > three_gaussian_weights_ = { 0.8888888888888889, 0.5555555555555556, 0.5555555555555556 }
 
const StdVec< Real > five_gaussian_points_ = { 0.0, 0.5384693101056831, -0.5384693101056831, 0.9061798459386640, -0.9061798459386640 }
 
const StdVec< Real > five_gaussian_weights_ = { 0.5688888888888889, 0.4786286704993665, 0.4786286704993665, 0.2369268850561891, 0.2369268850561891 }
 
int number_of_gaussian_points_
 
StdVec< Real > gaussian_point_
 
StdVec< Real > gaussian_weight_
 
- Protected Attributes inherited from SPH::thin_structure_dynamics::BaseShellRelaxation
StdLargeVec< Real > & Vol_
 
StdLargeVec< Real > & rho_
 
StdLargeVec< Real > & mass_
 
StdLargeVec< Real > & thickness_
 
StdLargeVec< Vecd > & pos_
 
StdLargeVec< Vecd > & vel_
 
StdLargeVec< Vecd > & acc_
 
StdLargeVec< Vecd > & acc_prior_
 
StdLargeVec< Vecd > & n0_
 
StdLargeVec< Vecd > & pseudo_n_
 
StdLargeVec< Vecd > & dpseudo_n_dt_
 
StdLargeVec< Vecd > & dpseudo_n_d2t_
 
StdLargeVec< Vecd > & rotation_
 
StdLargeVec< Vecd > & angular_vel_
 
StdLargeVec< Vecd > dangular_vel_dt_
 
StdLargeVec< Matd > & B_
 
StdLargeVec< Matd > & F_
 
StdLargeVec< Matd > & dF_dt_
 
StdLargeVec< Matd > & F_bending_
 
StdLargeVec< Matd > & dF_bending_dt_
 
StdLargeVec< Matd > & transformation_matrix_
 
- Protected Attributes inherited from SPH::ParticleDynamics1Level
ParticleFunctor functor_initialization_
 
- Protected Attributes inherited from SPH::InteractionDynamicsWithUpdate
ParticleFunctor functor_update_
 
- Protected Attributes inherited from SPH::InteractionDynamics
ParticleFunctor functor_interaction_
 
- Protected Attributes inherited from SPH::ParticleDynamics< void >
SPHBodysph_body_
 
SPHAdaptationsph_adaptation_
 
BaseParticlesbase_particles_
 
- Protected Attributes inherited from SPH::DataDelegateInner< BodyType, ParticlesType, MaterialType, BaseDataDelegateType >
ParticleConfigurationinner_configuration_
 

Additional Inherited Members

- Public Attributes inherited from SPH::InteractionDynamics
StdVec< ParticleDynamics< void > * > pre_processes_
 
StdVec< ParticleDynamics< void > * > post_processes_
 
- Static Public Attributes inherited from SPH::GlobalStaticVariables
static Real physical_time_ = 0.0
 

Detailed Description

computing stress relaxation process by verlet time stepping This is the first step

Constructor & Destructor Documentation

◆ ShellStressRelaxationFirstHalf()

SPH::thin_structure_dynamics::ShellStressRelaxationFirstHalf::ShellStressRelaxationFirstHalf ( BaseBodyRelationInner inner_relation,
int  number_of_gaussian_points = 3,
bool  hourglass_control = false 
)
explicit

Note that, only three-point and five-point Gaussian quadrature rules are defined.
Define the factor of hourglass control algorithm according to the dimension.

Member Function Documentation

◆ Initialization()

void SPH::thin_structure_dynamics::ShellStressRelaxationFirstHalf::Initialization ( size_t  index_i,
Real  dt = 0.0 
)
overrideprotectedvirtual

Calculate the current normal direction of mid-surface.





Get transformation matrix from global coordinates to current local coordinates.




Initialize the local stress to 0.



correct Almansi strain tensor according to plane stress problem.


Impose modeling assumptions.

Only one (for 2D) or two (for 3D) angular momentum equations left.
stress and moment in global coordinates for pair interaction

Implements SPH::ParticleDynamics1Level.

◆ Interaction()

void SPH::thin_structure_dynamics::ShellStressRelaxationFirstHalf::Interaction ( size_t  index_i,
Real  dt = 0.0 
)
overrideprotectedvirtual

Whether or not to use hourglass control algorithm.

including external force (body force) and force from fluid
the relation between pseudo-normal and rotations

Implements SPH::InteractionDynamics.


The documentation for this class was generated from the following files: