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

A material point for calculations using the mixture theory. More...

#include <ParticleMixture.h>

Inheritance diagram for ParticleMixture:
Collaboration diagram for ParticleMixture:

Public Member Functions

 ParticleMixture (const Vector3d &position, Material *material, const Vector3d &size)
 Create a mixture particle.
 
virtual ~ParticleMixture ()
 Default virtual destructor.
 
virtual void updatePorosity ()
 Update the porosity of the skeleton.
 
virtual double getMassFluid () const
 Returns the mass of the fluid.
 
virtual const Vector3d * getVelocityFluid () const
 Returns velocity of the fluid.
 
virtual const Vector3d * getExternalForceFluid () const
 Returns the external force of fluid.
 
virtual Vector3d getDragForceFluid () const
 Returns the drag force of fluid in skeleton.
 
virtual double getPressureFluid () const
 Returns pressure of fluid.
 
virtual double getPorosity () const
 Returns current porosity.
 
virtual double getInitialPorosity () const
 Returns initial porosity.
 
virtual double getDensityFluid () const
 Returns the current particle density of fluid.
 
virtual void addExternalForceFluid (const Vector3d &delta_external_fluid_force)
 Adds a external fluid force increment.
 
virtual void setVelocityFluid (const Vector3d &particle_velocity_fluid)
 Configures particle velocity of fluid phase.
 
virtual void setStrainIncrementFluid (const Matrix3d &strain_increment_fluid)
 Configures the strain increment of fluid phase.
 
virtual void setMaterial (Material *material)
 Configures the material in the particle.
 
virtual const Matrix3d * getStrainIncrementFluid () const
 Returns the strain increment of fluid.
 
virtual void updatePressure (double dt)
 Update the particle pressure.
 
virtual double getSaturation () const
 Returns Saturation of fluid in void in mixture.
 
virtual void setPressureFluid (double pressure)
 Configure the pressure of fluid.
 
virtual double getCurrentVolume () const
 Returns current particle volume.
 
- Public Member Functions inherited from Particle
 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.
 
void updateDensity ()
 Update the particle density.
 
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.
 
double getDensity () const
 Returns the current solid density.
 
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.
 
const Vector3d & getVelocity () const
 Returns particle velocity.
 
const Matrix3d & getStress () const
 Returns the current particle stress tensor.
 
const Matrix3d & getStrainIncrement () const
 Returns the strain increment.
 
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.
 
void setStrainIncrement (const Matrix3d &strain_increment)
 Configures the strain increment.
 
void setVorticityIncrement (const Matrix3d &vorticity_increment)
 Configures the vorticity increment.
 
void setStress (const Matrix3d &particle_stress)
 Configures the current particle stress tensor.
 
void setShape (Shape *shape)
 Configures the shape function in the particle.
 
void addExternalForce (const Vector3d &delta_external_force)
 Adds a external force increment.
 
void addPlasticStrain (double deltaPlasticStrain)
 Add a plastic strain increment.
 
double getPlasticStrain () const
 Get effective plastic strain.
 
void setDeformationGradient (const Matrix3d &deformation_gradient)
 Configures deformation gradient.
 
const Matrix3d & getDeformationGradient () const
 Returns deformation gradient.
 

Private Attributes

double massFluid
 fluid mass in mixture: \(m^{f}\)
 
double densityFluid
 current fluid density in mixture: \(\rho^{f}\)
 
double pressureFluid
 current fluid pressure in mixture: \(p^{f}\)
 
double porosityMixture
 current porosity of the mixture: \(n\)
 
double initialPorosityMixture
 initial porosity of the mixture: \(n^{0}\)
 
Vector3d velocityFluid
 current fluid velocity in mixture: \(v_i^{f}\)
 
Vector3d externalForceFluid
 current external force of fluid in mixture: \(f_i^{ext,f}\)
 
Vector3d internalForceFluid
 current internal force of fluid in mixture: \(f_i^{int,f}\)
 
Matrix3d strainIncrementFluid
 current fluid strain increment in mixture: \(\Delta \epsilon_{ij}^{f}\)
 

Additional Inherited Members

- Static Public Member Functions inherited from Particle
static int getTotalParticles ()
 Returns o number of particles created.
 
- Protected Attributes inherited from Particle
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 inherited from Particle
static int totalParticles
 total particle in the model
 

Detailed Description

A material point for calculations using the mixture theory.

Constructor & Destructor Documentation

◆ ParticleMixture()

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

Create a mixture particle.

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

◆ ~ParticleMixture()

virtual ParticleMixture::~ParticleMixture ( )
virtual

Default virtual destructor.

Member Function Documentation

◆ addExternalForceFluid()

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

Adds a external fluid force increment.

Parameters
[in]delta_external_fluid_forceExternal fluid force increment

Reimplemented from Particle.

◆ getCurrentVolume()

virtual double ParticleMixture::getCurrentVolume ( ) const
virtual

Returns current particle volume.

Returns
Particle volume

Reimplemented from Particle.

◆ getDensityFluid()

virtual double ParticleMixture::getDensityFluid ( ) const
inlinevirtual

Returns the current particle density of fluid.

Returns
Particle density of fluid

Reimplemented from Particle.

◆ getDragForceFluid()

virtual Vector3d ParticleMixture::getDragForceFluid ( ) const
virtual

Returns the drag force of fluid in skeleton.

Returns
Particle drag force of fluid

Reimplemented from Particle.

◆ getExternalForceFluid()

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

Returns the external force of fluid.

Returns
Particle external force of fluid

Reimplemented from Particle.

◆ getInitialPorosity()

virtual double ParticleMixture::getInitialPorosity ( ) const
inlinevirtual

Returns initial porosity.

Returns
initial porosity of mixture

◆ getMassFluid()

virtual double ParticleMixture::getMassFluid ( ) const
inlinevirtual

Returns the mass of the fluid.

Returns
Fluid mass

Reimplemented from Particle.

◆ getPorosity()

virtual double ParticleMixture::getPorosity ( ) const
inlinevirtual

Returns current porosity.

Returns
Current porosity of mixture

Reimplemented from Particle.

◆ getPressureFluid()

virtual double ParticleMixture::getPressureFluid ( ) const
inlinevirtual

Returns pressure of fluid.

Returns
Current pore pressure of fluid

Reimplemented from Particle.

◆ getSaturation()

virtual double ParticleMixture::getSaturation ( ) const
inlinevirtual

Returns Saturation of fluid in void in mixture.

Returns
saturation

Reimplemented from Particle.

◆ getStrainIncrementFluid()

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

Returns the strain increment of fluid.

Returns
Particle strain increment of fluid

Reimplemented from Particle.

◆ getVelocityFluid()

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

Returns velocity of the fluid.

Returns
Current fluid velocity

Reimplemented from Particle.

◆ setMaterial()

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

Configures the material in the particle.

Parameters
[in]materialMaterial

Reimplemented from Particle.

◆ setPressureFluid()

virtual void ParticleMixture::setPressureFluid ( double pressure)
inlinevirtual

Configure the pressure of fluid.

Parameters
[in]pressurePressure of the fluid

Reimplemented from Particle.

◆ setStrainIncrementFluid()

virtual void ParticleMixture::setStrainIncrementFluid ( const Matrix3d & strain_increment_fluid)
inlinevirtual

Configures the strain increment of fluid phase.

Parameters
[in]strain_increment_fluidParticle strain increment of fluid phase

Reimplemented from Particle.

◆ setVelocityFluid()

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

Configures particle velocity of fluid phase.

Parameters
[in]particle_velocity_fluidCurrent particle velocity of fluid phase

Reimplemented from Particle.

◆ updatePorosity()

virtual void ParticleMixture::updatePorosity ( )
virtual

Update the porosity of the skeleton.

Reimplemented from Particle.

◆ updatePressure()

virtual void ParticleMixture::updatePressure ( double dt)
virtual

Update the particle pressure.

Reimplemented from Particle.

Member Data Documentation

◆ densityFluid

double ParticleMixture::densityFluid
private

current fluid density in mixture: \(\rho^{f}\)

◆ externalForceFluid

Vector3d ParticleMixture::externalForceFluid
private

current external force of fluid in mixture: \(f_i^{ext,f}\)

◆ initialPorosityMixture

double ParticleMixture::initialPorosityMixture
private

initial porosity of the mixture: \(n^{0}\)

◆ internalForceFluid

Vector3d ParticleMixture::internalForceFluid
private

current internal force of fluid in mixture: \(f_i^{int,f}\)

◆ massFluid

double ParticleMixture::massFluid
private

fluid mass in mixture: \(m^{f}\)

◆ porosityMixture

double ParticleMixture::porosityMixture
private

current porosity of the mixture: \(n\)

◆ pressureFluid

double ParticleMixture::pressureFluid
private

current fluid pressure in mixture: \(p^{f}\)

◆ strainIncrementFluid

Matrix3d ParticleMixture::strainIncrementFluid
private

current fluid strain increment in mixture: \(\Delta \epsilon_{ij}^{f}\)

◆ velocityFluid

Vector3d ParticleMixture::velocityFluid
private

current fluid velocity in mixture: \(v_i^{f}\)


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