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

A group of particles with elastic body particle data. More...

#include <solid_particles.h>

Inherits SPH::SolidParticles.

Inherited by SPH::ShellParticles.

Public Member Functions

 ElasticSolidParticles (SPHBody &sph_body, ElasticSolid *elastic_solid)
 
Matd getGreenLagrangeStrain (size_t particle_i)
 
Vecd getPrincipalStrains (size_t particle_i)
 
Real getVonMisesStrain (size_t particle_i)
 
Real getVonMisesStrainDynamic (size_t particle_i, Real poisson)
 
StdLargeVec< Real > getVonMisesStrainVector (std::string strain_measure="static")
 
Real getVonMisesStrainMax (std::string strain_measure="static")
 
Real getPrincipalStrainMax ()
 
Matd getStressCauchy (size_t particle_i)
 
Matd getStressPK2 (size_t particle_i)
 
Vecd getPrincipalStresses (size_t particle_i)
 
Real getVonMisesStress (size_t particle_i)
 
StdLargeVec< Real > getVonMisesStressVector ()
 
Real getVonMisesStressMax ()
 
Real getPrincipalStressMax ()
 
Vecd displacement (size_t particle_i)
 
StdLargeVec< Vecd > getDisplacement ()
 
Real getMaxDisplacement ()
 
Vecd normal (size_t particle_i)
 
StdLargeVec< Vecd > getNormal ()
 
virtual StdLargeVec< Vecd > * AverageVelocity ()
 
virtual StdLargeVec< Vecd > * AverageAcceleration ()
 
virtual void initializeOtherVariables () override
 
virtual ElasticSolidParticlesThisObjectPtr () override
 
- Public Member Functions inherited from SPH::SolidParticles
 SolidParticles (SPHBody &sph_body, Solid *solid)
 
virtual Vecd getKernelGradient (size_t index_i, size_t index_j, Real dW_ij, Vecd &e_ij) override
 
- Public Member Functions inherited from SPH::BaseParticles
 BaseParticles (SPHBody &sph_body, BaseMaterial *base_material)
 
template<typename VariableType >
void registerVariable (StdLargeVec< VariableType > &variable_addrs, const std::string &variable_name, VariableType initial_value=VariableType(0))
 
template<typename VariableType , class InitializationFunction >
void registerVariable (StdLargeVec< VariableType > &variable_addrs, const std::string &variable_name, const InitializationFunction &initialization)
 
template<typename VariableType >
StdLargeVec< VariableType > * getVariableByName (const std::string &variable_name)
 
template<typename VariableType >
void addVariableNameToList (ParticleVariableList &variable_name_list, const std::string &variable_name)
 
template<typename VariableType >
void addVariableToWrite (const std::string &variable_name)
 
template<class DerivedVariableMethod >
void addDerivedVariableToWrite ()
 
template<typename VariableType >
void addVariableToRestart (const std::string &variable_name)
 
template<typename VariableType >
void addVariableToReload (const std::string &variable_name)
 
template<typename VariableType >
void registerSortableVariable (const std::string &variable_name)
 
SPHBodygetSPHBody ()
 
void addBufferParticles (size_t buffer_size)
 
void copyFromAnotherParticle (size_t this_index, size_t another_index)
 
void updateFromAnotherParticle (size_t this_index, size_t another_index)
 
size_t insertAGhostParticle (size_t index_i)
 
void switchToBufferParticle (size_t index_i)
 
template<typename OutStreamType >
void writeParticlesToVtk (OutStreamType &output_stream)
 
void writeParticlesToPltFile (std::ofstream &output_file)
 
virtual void writeSurfaceParticlesToVtuFile (std::ostream &output_file, BodySurface &surface_particles)
 
void resizeXmlDocForParticles (XmlEngine &xml_engine)
 
void writeParticlesToXmlForRestart (std::string &filefullpath)
 
void readParticleFromXmlForRestart (std::string &filefullpath)
 
XmlEnginegetReloadXmlEngine ()
 
void writeToXmlForReloadParticle (std::string &filefullpath)
 
void readFromXmlForReloadParticle (std::string &filefullpath)
 
virtual Vecd ParticleTotalAcceleration (size_t index_i)
 
virtual Real ParticleVolume (size_t index_i)
 
virtual Real ParticleMass (size_t index_i)
 
template<typename StreamType >
void writeParticlesToVtk (StreamType &output_stream)
 

Public Attributes

StdLargeVec< Matd > F_
 
StdLargeVec< Matd > dF_dt_
 
StdLargeVec< Vecd > vel_ave_
 
StdLargeVec< Vecd > acc_ave_
 
std::string stress_measure_
 
- Public Attributes inherited from SPH::SolidParticles
StdLargeVec< Vecd > pos0_
 
StdLargeVec< Vecd > n_
 
StdLargeVec< Vecd > n0_
 
StdLargeVec< Matd > B_
 
- Public Attributes inherited from SPH::BaseParticles
StdLargeVec< Vecd > pos_
 
StdLargeVec< Vecd > vel_
 
StdLargeVec< Vecd > acc_
 
StdLargeVec< Vecd > acc_prior_
 
StdLargeVec< Real > Vol_
 
StdLargeVec< Real > rho_
 
StdLargeVec< Real > mass_
 
Real rho0_
 
Real sigma0_
 
Real speed_max_
 
Real signal_speed_max_
 
size_t total_real_particles_
 
size_t real_particles_bound_
 
size_t total_ghost_particles_
 
ParticleData all_particle_data_
 
ParticleDataMap all_variable_maps_
 
StdVec< ParticleDynamics< void > * > derived_variables_
 
ParticleVariableList variables_to_write_
 
StdLargeVec< size_tunsorted_id_
 
StdLargeVec< size_tsorted_id_
 
StdLargeVec< size_tsequence_
 
ParticleData sortable_data_
 
ParticleDataMap sortable_variable_maps_
 

Protected Attributes

ElasticSolidelastic_solid_
 
- Protected Attributes inherited from SPH::BaseParticles
SPHBodysph_body_
 
std::string body_name_
 
XmlEngine restart_xml_engine_
 
XmlEngine reload_xml_engine_
 
ParticleVariableList variables_to_restart_
 
ParticleVariableList variables_to_reload_
 
DataAssembleOperation< resizeParticleDataresize_particle_data_
 
DataAssembleOperation< addAParticleDataValueadd_a_particle_value_
 
DataAssembleOperation< copyAParticleDataValuecopy_a_particle_value_
 

Additional Inherited Members

- Protected Member Functions inherited from SPH::BaseParticles
void addAParticleEntry ()
 
virtual void writePltFileHeader (std::ofstream &output_file)
 
virtual void writePltFileParticleData (std::ofstream &output_file, size_t index_i)
 

Detailed Description

A group of particles with elastic body particle data.

Member Function Documentation

◆ AverageAcceleration()

virtual StdLargeVec<Vecd>* SPH::ElasticSolidParticles::AverageAcceleration ( )
inlinevirtual

Get wall average acceleration when interacting with fluid.

Reimplemented from SPH::SolidParticles.

◆ AverageVelocity()

virtual StdLargeVec<Vecd>* SPH::ElasticSolidParticles::AverageVelocity ( )
inlinevirtual

Get wall average velocity when interacting with fluid.

Reimplemented from SPH::SolidParticles.

◆ getGreenLagrangeStrain()

Matd SPH::ElasticSolidParticles::getGreenLagrangeStrain ( size_t  particle_i)

Computing principal strain - returns the principal strains in descending order (starting from the largest)

◆ getMaxDisplacement()

Real SPH::ElasticSolidParticles::getMaxDisplacement ( )

Computing normal vector.

◆ getPrincipalStrains()

Vecd SPH::ElasticSolidParticles::getPrincipalStrains ( size_t  particle_i)

Computing von Mises equivalent strain from a static (constant) formulation.

◆ getPrincipalStresses()

Vecd SPH::ElasticSolidParticles::getPrincipalStresses ( size_t  particle_i)

Computing von_Mises_stress - "Cauchy" or "PK2" decided based on the stress_measure_

◆ getPrincipalStressMax()

Real SPH::ElasticSolidParticles::getPrincipalStressMax ( )

Computing displacement.

◆ getStressPK2()

Matd SPH::ElasticSolidParticles::getStressPK2 ( size_t  particle_i)

Computing principal_stresses - returns the principal stresses in descending order (starting from the largest)

◆ getVonMisesStrain()

Real SPH::ElasticSolidParticles::getVonMisesStrain ( size_t  particle_i)

Computing von Mises equivalent strain from a "dynamic" formulation. This depends on the Poisson's ratio (from commercial FEM software Help).

◆ getVonMisesStrainDynamic()

Real SPH::ElasticSolidParticles::getVonMisesStrainDynamic ( size_t  particle_i,
Real  poisson 
)

Computing von Mises strain for all particles. - "static" or "dynamic"

◆ getVonMisesStrainVector()

StdLargeVec< Real > SPH::ElasticSolidParticles::getVonMisesStrainVector ( std::string  strain_measure = "static")

Computing maximum von Mises strain from all particles. - "static" or "dynamic"

◆ getVonMisesStress()

Real SPH::ElasticSolidParticles::getVonMisesStress ( size_t  particle_i)

Computing von Mises stress for all particles. - "Cauchy" or "PK2" decided based on the stress_measure_

◆ getVonMisesStressVector()

StdLargeVec< Real > SPH::ElasticSolidParticles::getVonMisesStressVector ( )

Computing maximum von Mises stress from all particles. - "Cauchy" or "PK2" decided based on the stress_measure_

◆ initializeOtherVariables()

void SPH::ElasticSolidParticles::initializeOtherVariables ( )
overridevirtual

initialize other variables based one geometric variables and material

Reimplemented from SPH::SolidParticles.

Reimplemented in SPH::ShellParticles.

Member Data Documentation

◆ acc_ave_

StdLargeVec<Vecd> SPH::ElasticSolidParticles::acc_ave_

fluid time-step averaged particle acceleration

◆ dF_dt_

StdLargeVec<Matd> SPH::ElasticSolidParticles::dF_dt_

deformation tensor change rate

◆ F_

StdLargeVec<Matd> SPH::ElasticSolidParticles::F_

deformation tensor

◆ stress_measure_

std::string SPH::ElasticSolidParticles::stress_measure_

relevant stress measure

◆ vel_ave_

StdLargeVec<Vecd> SPH::ElasticSolidParticles::vel_ave_

fluid time-step averaged particle velocity


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