MPM-Geomechanics
Material Point Method for simulating geo-materials under large deformation conditions
|
Represents a Lagrangian material point This class contain all Lagrangian variables that represents the domain an its properties
More...
#include <Particle.h>
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< Contribution > | contributionNodes |
id of nodes that the particle contributes | |
Shape * | shape |
shape functions values (see class Shape) | |
Material * | material |
particle material (see class Material) | |
Static Protected Attributes | |
static int | totalParticles |
total particle in the model | |
Represents a Lagrangian material point This class contain all Lagrangian variables that represents the domain an its properties
Particle::Particle | ( | const Vector3d & | position, |
Material * | material, | ||
const Vector3d & | size ) |
|
inlinevirtual |
Default destructor.
|
inline |
Adds a external force increment.
[in] | delta_external_force | External force increment |
|
inlinevirtual |
Adds a external fluid force increment.
[in] | delta_external_fluid_force | External fluid force increment |
Reimplemented in ParticleMixture.
|
inline |
Add a plastic strain increment.
[in] | deltaPlasticStrain | Plastic strain increment |
|
inline |
Returns the particle active status.
|
inline |
Returns the particle's body Id.
|
inline |
Returns the contribution list.
|
inlinevirtual |
|
inline |
Returns deformation gradient.
|
inline |
Returns the current solid density.
|
inlinevirtual |
|
inlinevirtual |
Returns the drag force of fluid in particle.
Reimplemented in ParticleMixture.
|
inline |
Returns the external force in particle.
|
inlinevirtual |
Returns the external force of fluid in particle.
Reimplemented in ParticleMixture.
|
inline |
Returns the particle identification.
|
inline |
Returns the initial particle position.
|
inline |
Returns initial particle volume.
|
inline |
Returns solid mass.
|
inlinevirtual |
|
inline |
Returns the particle's material.
|
inline |
Get effective plastic strain.
|
inlinevirtual |
|
inline |
Returns the current particle position.
|
inlinevirtual |
|
inlinevirtual |
|
inline |
Return particle size in each direction.
|
inline |
Returns the strain.
|
inline |
Returns the strain increment.
|
inlinevirtual |
Returns the strain increment of fluid.
Reimplemented in ParticleMixture.
|
inline |
Returns the current particle stress tensor.
|
inlinestatic |
Returns o number of particles created.
|
inline |
Returns particle velocity.
|
inlinevirtual |
|
inline |
Returns the vorticity increment.
|
inline |
Configures the particle active status.
[in] | particle_active | Particle active status |
|
inline |
Configures the set particle's body Id.
[in] | body_id | identification |
|
inline |
Configures deformation gradient.
[in] | deformation_gradient | Particle deformation gradient |
|
inline |
Configures particle density.
[in] | particle_density | Current particle density |
|
inline |
Configures the particle id.
[in] | particle_id | Particle identification |
|
inline |
Configures the initial particle position.
[in] | particle_initial_position | Particle initial position |
|
inline |
Configures particle mass.
[in] | particle_mass | Particle mass |
|
virtual |
Configures the material in the particle.
[in] | material | Material |
Reimplemented in ParticleMixture.
|
inline |
Configures the current particle position.
[in] | particle_position | Current particle position |
|
inlinevirtual |
Configure the pressure of fluid.
[in] | pressure | Pressure of the fluid |
Reimplemented in ParticleMixture.
|
inline |
Configures the shape function in the particle.
[in] | shape | Shape |
|
inline |
Configures particle size in each direction.
[in] | particle_size | Current particle size |
|
inline |
Configures the strain increment.
[in] | strain_increment | Particle strain increment |
|
inlinevirtual |
Configures the strain increment of fluid phase.
[in] | strain_increment | Particle strain increment of fluid phase |
Reimplemented in ParticleMixture.
|
inline |
Configures the current particle stress tensor.
[in] | particle_stress | Particle stress |
|
inline |
Configures particle velocity.
[in] | particle_velocity | Current particle velocity |
|
inlinevirtual |
Configures particle velocity of fluid phase.
[in] | particle_velocity_fluid | Current particle velocity of fluid phase |
Reimplemented in ParticleMixture.
|
inline |
Configures the vorticity increment.
[in] | vorticity_increment | Particle vorticity (spin) increment |
void Particle::updateContributionNodes | ( | Mesh * | mesh | ) |
void Particle::updateDensity | ( | ) |
Update the particle density.
|
inlinevirtual |
Update the particle porosity.
Reimplemented in ParticleMixture.
|
inlinevirtual |
Update the particle pressure.
Reimplemented in ParticleMixture.
|
inline |
Update the particle stress.
|
protected |
is particle active
|
protected |
body id
|
protected |
id of nodes that the particle contributes
|
protected |
particle deformation gradient: \( F_{ijp}=\partial x_i / \partial X_j \)
|
protected |
current particle density: \(\rho_p\)
|
protected |
particle external force: \(f_{ip}^ext\)
|
protected |
particle id
|
protected |
particle initial position: \(x_{ip}^{0}\)
|
protected |
particle mass: \(m_p\)
|
protected |
current effective plastic strain: \(\epsilon_p^{pleff}=\sqrt{2/3\epsilon_{pij}^{pl}\epsilon_{pij}^{pl}}\)
|
protected |
current particle position: \(x_{ip}\)
|
protected |
current size in each direction: \(\Omega_{ip}\)
|
protected |
current particle strain: \(\epsilon_{ijp}\)
|
protected |
current particle strain increment: \(\Delta \epsilon_{ijp}\)
|
protected |
current particle stress: \(\sigma_{ijp}\)
|
staticprotected |
total particle in the model
|
protected |
current particle velocity: \(v_{ip}\)
|
protected |
particle vorticity increment: \(\Delta \Omega _{ijp}\)