MPM-Geomechanics
Material Point Method for simulating geo-materials under large deformation conditions
Loading...
Searching...
No Matches
Particle Class Reference

Represents a Lagrangian material point This class contain all Lagrangian variables that represents the domain an its properties
More...

#include <Particle.h>

Inheritance diagram for Particle:
Collaboration diagram for Particle:

Public Member Functions

 Particle (const Vector3d &position, Material *material, const Vector3d &size)
 Create a particle.
 
virtual ~Particle ()
 Default destructor.
 
void updateContributionNodes (Mesh *mesh)
 Update the list of nodes that the particle contributes.
 
void updateStress ()
 Update the particle stress.
 
virtual void updatePressure (double dt)
 Update the particle pressure.
 
void updateDensity ()
 Update the particle density.
 
virtual void updatePorosity ()
 Update the particle porosity.
 
bool getActive () const
 Returns the particle active status.
 
int getId () const
 Returns the particle identification.
 
int getMaterialId () const
 Returns the particle's material.
 
int getBodyId () const
 Returns the particle's body Id.
 
double getMass () const
 Returns solid mass.
 
virtual double getMassFluid () const
 Returns fluid mass in mixture.
 
double getDensity () const
 Returns the current solid density.
 
virtual double getDensityFluid () const
 Returns the current density of fluid.
 
virtual double getCurrentVolume () const
 Returns current particle volume.
 
double getInitialVolume () const
 Returns initial particle volume.
 
const Vector3d & getPosition () const
 Returns the current particle position.
 
const Vector3d & getInitialPosition () const
 Returns the initial particle position.
 
const Vector3d & getExternalForce () const
 Returns the external force in particle.
 
virtual const Vector3d * getExternalForceFluid () const
 Returns the external force of fluid in particle.
 
const Vector3d & getVelocity () const
 Returns particle velocity.
 
virtual const Vector3d * getVelocityFluid () const
 Returns velocity of fluid.
 
const Matrix3d & getStress () const
 Returns the current particle stress tensor.
 
const Matrix3d & getStrainIncrement () const
 Returns the strain increment.
 
virtual const Matrix3d * getStrainIncrementFluid () const
 Returns the strain increment of fluid.
 
const Matrix3d & getStrain () const
 Returns the strain.
 
const Matrix3d & getVorticityIncrement () const
 Returns the vorticity increment.
 
vector< Contribution > * getContributionNodes ()
 Returns the contribution list.
 
void setActive (bool particle_active)
 Configures the particle active status.
 
void setId (int particle_id)
 Configures the particle id.
 
void setBodyId (int body_id)
 Configures the set particle's body Id.
 
void setMass (double particle_mass)
 Configures particle mass.
 
void setDensity (double particle_density)
 Configures particle density.
 
void setPosition (const Vector3d &particle_position)
 Configures the current particle position.
 
void setInitialPosition (const Vector3d &particle_initial_position)
 Configures the initial particle position.
 
void setSize (const Vector3d &particle_size)
 Configures particle size in each direction.
 
const Vector3d & getSize ()
 Return particle size in each direction.
 
void setVelocity (const Vector3d &particle_velocity)
 Configures particle velocity.
 
virtual void setVelocityFluid (const Vector3d &particle_velocity_fluid)
 Configures particle velocity of fluid phase.
 
void setStrainIncrement (const Matrix3d &strain_increment)
 Configures the strain increment.
 
virtual void setStrainIncrementFluid (const Matrix3d &strain_increment)
 Configures the strain increment of fluid phase.
 
void setVorticityIncrement (const Matrix3d &vorticity_increment)
 Configures the vorticity increment.
 
void setStress (const Matrix3d &particle_stress)
 Configures the current particle stress tensor.
 
virtual void setMaterial (Material *material)
 Configures the material in the particle.
 
void setShape (Shape *shape)
 Configures the shape function in the particle.
 
void addExternalForce (const Vector3d &delta_external_force)
 Adds a external force increment.
 
virtual void addExternalForceFluid (const Vector3d &delta_external_fluid_force)
 Adds a external fluid force increment.
 
void addPlasticStrain (double deltaPlasticStrain)
 Add a plastic strain increment.
 
double getPlasticStrain () const
 Get effective plastic strain.
 
virtual double getPressureFluid () const
 Returns pressure of fluid.
 
virtual void setPressureFluid (double pressure)
 Configure the pressure of fluid.
 
virtual double getPorosity () const
 Returns current porosity.
 
virtual double getSaturation () const
 Returns Saturation of fluid in void in mixture.
 
virtual Vector3d getDragForceFluid () const
 Returns the drag force of fluid in particle.
 
void setDeformationGradient (const Matrix3d &deformation_gradient)
 Configures deformation gradient.
 
const Matrix3d & getDeformationGradient () const
 Returns deformation gradient.
 

Static Public Member Functions

static int getTotalParticles ()
 Returns o number of particles created.
 

Protected Attributes

bool active
 is particle active
 
int id
 particle id
 
int bodyId
 body id
 
double mass
 particle mass: \(m_p\)
 
double density
 current particle density: \(\rho_p\)
 
double plasticStrain
 current effective plastic strain: \(\epsilon_p^{pleff}=\sqrt{2/3\epsilon_{pij}^{pl}\epsilon_{pij}^{pl}}\)
 
Vector3d position
 current particle position: \(x_{ip}\)
 
Vector3d initialPosition
 particle initial position: \(x_{ip}^{0}\)
 
Vector3d velocity
 current particle velocity: \(v_{ip}\)
 
Vector3d externalForce
 particle external force: \(f_{ip}^ext\)
 
Vector3d size
 current size in each direction: \(\Omega_{ip}\)
 
Matrix3d stress
 current particle stress: \(\sigma_{ijp}\)
 
Matrix3d strain
 current particle strain: \(\epsilon_{ijp}\)
 
Matrix3d strainIncrement
 current particle strain increment: \(\Delta \epsilon_{ijp}\)
 
Matrix3d vorticityIncrement
 particle vorticity increment: \(\Delta \Omega _{ijp}\)
 
Matrix3d deformationGradient
 particle deformation gradient: \( F_{ijp}=\partial x_i / \partial X_j \)
 
vector< ContributioncontributionNodes
 id of nodes that the particle contributes
 
Shapeshape
 shape functions values (see class Shape)
 
Materialmaterial
 particle material (see class Material)
 

Static Protected Attributes

static int totalParticles
 total particle in the model
 

Detailed Description

Represents a Lagrangian material point This class contain all Lagrangian variables that represents the domain an its properties

Constructor & Destructor Documentation

◆ Particle()

Particle::Particle ( const Vector3d & position,
Material * material,
const Vector3d & size )

Create a particle.

Parameters
[in]positionParticle position
[in]materialMaterial
[in]sizeParticle size in each direction

◆ ~Particle()

Particle::~Particle ( )
inlinevirtual

Default destructor.

Member Function Documentation

◆ addExternalForce()

void Particle::addExternalForce ( const Vector3d & delta_external_force)
inline

Adds a external force increment.

Parameters
[in]delta_external_forceExternal force increment

◆ addExternalForceFluid()

virtual void Particle::addExternalForceFluid ( const Vector3d & delta_external_fluid_force)
inlinevirtual

Adds a external fluid force increment.

Parameters
[in]delta_external_fluid_forceExternal fluid force increment

Reimplemented in ParticleMixture.

◆ addPlasticStrain()

void Particle::addPlasticStrain ( double deltaPlasticStrain)
inline

Add a plastic strain increment.

Parameters
[in]deltaPlasticStrainPlastic strain increment

◆ getActive()

bool Particle::getActive ( ) const
inline

Returns the particle active status.

Returns
Particle active status

◆ getBodyId()

int Particle::getBodyId ( ) const
inline

Returns the particle's body Id.

Returns
Body identification

◆ getContributionNodes()

vector< Contribution > * Particle::getContributionNodes ( )
inline

Returns the contribution list.

Returns
Contribution node structure

◆ getCurrentVolume()

virtual double Particle::getCurrentVolume ( ) const
inlinevirtual

Returns current particle volume.

Returns
Particle volume

Reimplemented in ParticleMixture.

◆ getDeformationGradient()

const Matrix3d & Particle::getDeformationGradient ( ) const
inline

Returns deformation gradient.

Returns
Particle deformation gradient

◆ getDensity()

double Particle::getDensity ( ) const
inline

Returns the current solid density.

Returns
Density of the solid

◆ getDensityFluid()

virtual double Particle::getDensityFluid ( ) const
inlinevirtual

Returns the current density of fluid.

Returns
Density of the fluid

Reimplemented in ParticleMixture.

◆ getDragForceFluid()

virtual Vector3d Particle::getDragForceFluid ( ) const
inlinevirtual

Returns the drag force of fluid in particle.

Returns
Particle drag force of fluid

Reimplemented in ParticleMixture.

◆ getExternalForce()

const Vector3d & Particle::getExternalForce ( ) const
inline

Returns the external force in particle.

Returns
Particle external force

◆ getExternalForceFluid()

virtual const Vector3d * Particle::getExternalForceFluid ( ) const
inlinevirtual

Returns the external force of fluid in particle.

Returns
Particle external force of fluid

Reimplemented in ParticleMixture.

◆ getId()

int Particle::getId ( ) const
inline

Returns the particle identification.

Returns
Particle identification

◆ getInitialPosition()

const Vector3d & Particle::getInitialPosition ( ) const
inline

Returns the initial particle position.

Returns
Particle initial position

◆ getInitialVolume()

double Particle::getInitialVolume ( ) const
inline

Returns initial particle volume.

Returns
Initial particle volume

◆ getMass()

double Particle::getMass ( ) const
inline

Returns solid mass.

Returns
Solid mass

◆ getMassFluid()

virtual double Particle::getMassFluid ( ) const
inlinevirtual

Returns fluid mass in mixture.

Returns
Fluid mass in mixture

Reimplemented in ParticleMixture.

◆ getMaterialId()

int Particle::getMaterialId ( ) const
inline

Returns the particle's material.

Returns
Material identification

◆ getPlasticStrain()

double Particle::getPlasticStrain ( ) const
inline

Get effective plastic strain.

Returns
plasticStrain Effective plastic strain

◆ getPorosity()

virtual double Particle::getPorosity ( ) const
inlinevirtual

Returns current porosity.

Returns
Current porosity of mixture

Reimplemented in ParticleMixture.

◆ getPosition()

const Vector3d & Particle::getPosition ( ) const
inline

Returns the current particle position.

Returns
Particle current position

◆ getPressureFluid()

virtual double Particle::getPressureFluid ( ) const
inlinevirtual

Returns pressure of fluid.

Returns
Current pore pressure of fluid

Reimplemented in ParticleMixture.

◆ getSaturation()

virtual double Particle::getSaturation ( ) const
inlinevirtual

Returns Saturation of fluid in void in mixture.

Returns
saturation

Reimplemented in ParticleMixture.

◆ getSize()

const Vector3d & Particle::getSize ( )
inline

Return particle size in each direction.

Returns
particle_size Current particle size

◆ getStrain()

const Matrix3d & Particle::getStrain ( ) const
inline

Returns the strain.

Returns
Total particle strain

◆ getStrainIncrement()

const Matrix3d & Particle::getStrainIncrement ( ) const
inline

Returns the strain increment.

Returns
Particle strain increment

◆ getStrainIncrementFluid()

virtual const Matrix3d * Particle::getStrainIncrementFluid ( ) const
inlinevirtual

Returns the strain increment of fluid.

Returns
Particle strain increment of fluid

Reimplemented in ParticleMixture.

◆ getStress()

const Matrix3d & Particle::getStress ( ) const
inline

Returns the current particle stress tensor.

Returns
Particle stress

◆ getTotalParticles()

int Particle::getTotalParticles ( )
inlinestatic

Returns o number of particles created.

Returns
Total created particles

◆ getVelocity()

const Vector3d & Particle::getVelocity ( ) const
inline

Returns particle velocity.

Returns
Current velocity

◆ getVelocityFluid()

virtual const Vector3d * Particle::getVelocityFluid ( ) const
inlinevirtual

Returns velocity of fluid.

Returns
Current velocity of fluid

Reimplemented in ParticleMixture.

◆ getVorticityIncrement()

const Matrix3d & Particle::getVorticityIncrement ( ) const
inline

Returns the vorticity increment.

Returns
Particle vorticity (spin) increment

◆ setActive()

void Particle::setActive ( bool particle_active)
inline

Configures the particle active status.

Parameters
[in]particle_activeParticle active status

◆ setBodyId()

void Particle::setBodyId ( int body_id)
inline

Configures the set particle's body Id.

Parameters
[in]body_ididentification

◆ setDeformationGradient()

void Particle::setDeformationGradient ( const Matrix3d & deformation_gradient)
inline

Configures deformation gradient.

Parameters
[in]deformation_gradientParticle deformation gradient

◆ setDensity()

void Particle::setDensity ( double particle_density)
inline

Configures particle density.

Parameters
[in]particle_densityCurrent particle density

◆ setId()

void Particle::setId ( int particle_id)
inline

Configures the particle id.

Parameters
[in]particle_idParticle identification

◆ setInitialPosition()

void Particle::setInitialPosition ( const Vector3d & particle_initial_position)
inline

Configures the initial particle position.

Parameters
[in]particle_initial_positionParticle initial position

◆ setMass()

void Particle::setMass ( double particle_mass)
inline

Configures particle mass.

Parameters
[in]particle_massParticle mass

◆ setMaterial()

virtual void Particle::setMaterial ( Material * material)
virtual

Configures the material in the particle.

Parameters
[in]materialMaterial

Reimplemented in ParticleMixture.

◆ setPosition()

void Particle::setPosition ( const Vector3d & particle_position)
inline

Configures the current particle position.

Parameters
[in]particle_positionCurrent particle position

◆ setPressureFluid()

virtual void Particle::setPressureFluid ( double pressure)
inlinevirtual

Configure the pressure of fluid.

Parameters
[in]pressurePressure of the fluid

Reimplemented in ParticleMixture.

◆ setShape()

void Particle::setShape ( Shape * shape)
inline

Configures the shape function in the particle.

Parameters
[in]shapeShape

◆ setSize()

void Particle::setSize ( const Vector3d & particle_size)
inline

Configures particle size in each direction.

Parameters
[in]particle_sizeCurrent particle size

◆ setStrainIncrement()

void Particle::setStrainIncrement ( const Matrix3d & strain_increment)
inline

Configures the strain increment.

Parameters
[in]strain_incrementParticle strain increment

◆ setStrainIncrementFluid()

virtual void Particle::setStrainIncrementFluid ( const Matrix3d & strain_increment)
inlinevirtual

Configures the strain increment of fluid phase.

Parameters
[in]strain_incrementParticle strain increment of fluid phase

Reimplemented in ParticleMixture.

◆ setStress()

void Particle::setStress ( const Matrix3d & particle_stress)
inline

Configures the current particle stress tensor.

Parameters
[in]particle_stressParticle stress

◆ setVelocity()

void Particle::setVelocity ( const Vector3d & particle_velocity)
inline

Configures particle velocity.

Parameters
[in]particle_velocityCurrent particle velocity

◆ setVelocityFluid()

virtual void Particle::setVelocityFluid ( const Vector3d & particle_velocity_fluid)
inlinevirtual

Configures particle velocity of fluid phase.

Parameters
[in]particle_velocity_fluidCurrent particle velocity of fluid phase

Reimplemented in ParticleMixture.

◆ setVorticityIncrement()

void Particle::setVorticityIncrement ( const Matrix3d & vorticity_increment)
inline

Configures the vorticity increment.

Parameters
[in]vorticity_incrementParticle vorticity (spin) increment

◆ updateContributionNodes()

void Particle::updateContributionNodes ( Mesh * mesh)

Update the list of nodes that the particle contributes.

Parameters
[in]meshMesh reference

◆ updateDensity()

void Particle::updateDensity ( )

Update the particle density.

◆ updatePorosity()

virtual void Particle::updatePorosity ( )
inlinevirtual

Update the particle porosity.

Reimplemented in ParticleMixture.

◆ updatePressure()

virtual void Particle::updatePressure ( double dt)
inlinevirtual

Update the particle pressure.

Reimplemented in ParticleMixture.

◆ updateStress()

void Particle::updateStress ( )
inline

Update the particle stress.

Member Data Documentation

◆ active

bool Particle::active
protected

is particle active

◆ bodyId

int Particle::bodyId
protected

body id

◆ contributionNodes

vector<Contribution> Particle::contributionNodes
protected

id of nodes that the particle contributes

◆ deformationGradient

Matrix3d Particle::deformationGradient
protected

particle deformation gradient: \( F_{ijp}=\partial x_i / \partial X_j \)

◆ density

double Particle::density
protected

current particle density: \(\rho_p\)

◆ externalForce

Vector3d Particle::externalForce
protected

particle external force: \(f_{ip}^ext\)

◆ id

int Particle::id
protected

particle id

◆ initialPosition

Vector3d Particle::initialPosition
protected

particle initial position: \(x_{ip}^{0}\)

◆ mass

double Particle::mass
protected

particle mass: \(m_p\)

◆ material

Material* Particle::material
protected

particle material (see class Material)

◆ plasticStrain

double Particle::plasticStrain
protected

current effective plastic strain: \(\epsilon_p^{pleff}=\sqrt{2/3\epsilon_{pij}^{pl}\epsilon_{pij}^{pl}}\)

◆ position

Vector3d Particle::position
protected

current particle position: \(x_{ip}\)

◆ shape

Shape* Particle::shape
protected

shape functions values (see class Shape)

◆ size

Vector3d Particle::size
protected

current size in each direction: \(\Omega_{ip}\)

◆ strain

Matrix3d Particle::strain
protected

current particle strain: \(\epsilon_{ijp}\)

◆ strainIncrement

Matrix3d Particle::strainIncrement
protected

current particle strain increment: \(\Delta \epsilon_{ijp}\)

◆ stress

Matrix3d Particle::stress
protected

current particle stress: \(\sigma_{ijp}\)

◆ totalParticles

int Particle::totalParticles
staticprotected

total particle in the model

◆ velocity

Vector3d Particle::velocity
protected

current particle velocity: \(v_{ip}\)

◆ vorticityIncrement

Matrix3d Particle::vorticityIncrement
protected

particle vorticity increment: \(\Delta \Omega _{ijp}\)


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