diff --git a/docs/Boussinesq-problem.png b/docs/Boussinesq-problem.png new file mode 100644 index 0000000..8c84b8b Binary files /dev/null and b/docs/Boussinesq-problem.png differ diff --git a/docs/Input_8h.html b/docs/Input_8h.html index 1b205d4..338a8ea 100644 --- a/docs/Input_8h.html +++ b/docs/Input_8h.html @@ -280,9 +280,9 @@ vector< Loads::LoadDistributedBoxInput::getLoadDistributedBox ()  Return loads distributed in particles inside a box.
  -vector< Loads::NodalPointLoadInput::readNodalPointLoads () - read nodal point loads This function reads a points from input file in the following format: "nodal_point_loads": [[p1x,p1y,p1z],[p1x,p1y,p1z]],...,[[pnx,pny,pnz],[pnx,pny,pnz]]
-  +Loads::NodalPointLoadData Input::readNodalPointLoads () + read nodal point loads This function reads a points from input file in the following format: "nodal_point_loads": [[p1x,p1y,p1z],[p1x,p1y,p1z]],...,[[pnx,pny,pnz],[pnx,pny,pnz]]
+  vector< Loads::PressureBoxInput::getPrescribedPressureBox ()  Return prescribed pressure in particles inside a box.
  diff --git a/docs/Input_8h.js b/docs/Input_8h.js index 745b966..2764b73 100644 --- a/docs/Input_8h.js +++ b/docs/Input_8h.js @@ -30,6 +30,6 @@ var Input_8h = [ "getSolver", "Input_8h.html#a0aaddb07cda3d6c988f2c5db52bb488e", null ], [ "getTimeStep", "Input_8h.html#a62b6f277358d9dd6b95f39001e12bae4", null ], [ "readInputFile", "Input_8h.html#abb1fa3d31849a7acf80a9796da0242b0", null ], - [ "readNodalPointLoads", "Input_8h.html#a03717b6bc9fdd8cfc5eccb3e4fcebe73", null ], + [ "readNodalPointLoads", "Input_8h.html#a4af9571f7842a96471572cd550d598a9", null ], [ "readSeismicData", "Input_8h.html#ab7aeff2285506645ef6c121dec4a0d44", null ] ]; \ No newline at end of file diff --git a/docs/Input_8h_source.html b/docs/Input_8h_source.html index 7a3fabe..26e182d 100644 --- a/docs/Input_8h_source.html +++ b/docs/Input_8h_source.html @@ -223,7 +223,7 @@
597
600 vector<Loads::LoadDistributedBox> getLoadDistributedBox();
601
-
606 vector<Loads::NodalPointLoad> readNodalPointLoads();
+
606 Loads::NodalPointLoadData readNodalPointLoads();
607
610 vector<Loads::PressureBox> getPrescribedPressureBox();
611
@@ -246,7 +246,6 @@
Solver
Represents the operations to solve the equations in time.
Definition Solver.h:19
Input
Operations to read the input file.
Input::getMaterialList
vector< Material * > getMaterialList()
Return the material list.
-
Input::readNodalPointLoads
vector< Loads::NodalPointLoad > readNodalPointLoads()
read nodal point loads This function reads a points from input file in the following format: "nodal_p...
Input::getNumberPhases
unsigned getNumberPhases()
Return the number of phases in the simulation.
Input::getSolver
Solver * getSolver()
Return the solver to be used in the model.
Input::getLoadState
bool getLoadState()
Return load state activated.
@@ -256,6 +255,7 @@
Input::getLoadDistributedBox
vector< Loads::LoadDistributedBox > getLoadDistributedBox()
Return loads distributed in particles inside a box.
Input::getJson
const json & getJson()
Return the data file structure.
Input::getGravity
Vector3d getGravity()
Return the gravity force.
+
Input::readNodalPointLoads
Loads::NodalPointLoadData readNodalPointLoads()
read nodal point loads This function reads a points from input file in the following format: "nodal_p...
Input::getMeshBoundaryConditions
vector< Boundary::BoundaryType > getMeshBoundaryConditions()
Return the mesh boundary conditions.
Input::getCellsNum
Vector3i getCellsNum()
Return the number of cells in each direction.
Input::getResultFields
vector< string > getResultFields()
Return the fields to be written.
@@ -278,7 +278,8 @@
Input::getSaveState
bool getSaveState()
Return save state activated.
ModelSetup::DampingType
DampingType
Defines the type of damping.
Definition Model.h:29
ModelSetup::InterpolationFunctionType
InterpolationFunctionType
Defines the type of interpolation function.
Definition Model.h:37
-
Loads::SeismicData
Seismic data structure to manage acceleration and velocity of an earthquake record.
Definition Loads.h:101
+
Loads::NodalPointLoadData
Definition Loads.h:36
+
Loads::SeismicData
Seismic data structure to manage acceleration and velocity of an earthquake record.
Definition Loads.h:97
diff --git a/docs/Loads_8h.html b/docs/Loads_8h.html index 11dd4cd..cc0e325 100644 --- a/docs/Loads_8h.html +++ b/docs/Loads_8h.html @@ -108,8 +108,7 @@
Classes | Namespaces | -Functions | -Variables
+Functions
Loads.h File Reference
@@ -185,8 +184,7 @@ struct  Loads::LoadDistributedBox  Structure to define a distributed load in particles inside the cuboid defined by point p1 and p2. More...
  -struct  Loads::NodalPointLoad - Define a structure to store point loads. More...
+struct  Loads::NodalPointLoadData   struct  Loads::PressureBox  Structure to represent a box with a pressure. Pressure in applied to particles inside the cuboid defined by point p1 and p2. More...
@@ -243,16 +241,11 @@  Set initial velocity in bodies.
  void Loads::configureNodalPointLoads (Mesh *) + configure nodeid-point-load data for nodal force application
  - - - - - - - - + + +

-Variables

vector< PrescribedPorePressureLoads::prescribedPorePressureParticlesList
 
SeismicData Loads::seismicRecord
 
std::vector Loads::nodalPointLoad
 
NodalPointLoadDataLoads::getNodalPointList ()
 Get (node-id load) vector for set nodal point load.
 
diff --git a/docs/Loads_8h.js b/docs/Loads_8h.js index 39e126c..8f478f9 100644 --- a/docs/Loads_8h.js +++ b/docs/Loads_8h.js @@ -1,13 +1,14 @@ var Loads_8h = [ [ "Loads::LoadDistributedBox", "structLoads_1_1LoadDistributedBox.html", "structLoads_1_1LoadDistributedBox" ], - [ "Loads::NodalPointLoad", "structLoads_1_1NodalPointLoad.html", "structLoads_1_1NodalPointLoad" ], + [ "Loads::NodalPointLoadData", "structLoads_1_1NodalPointLoadData.html", "structLoads_1_1NodalPointLoadData" ], [ "Loads::PressureBox", "structLoads_1_1PressureBox.html", "structLoads_1_1PressureBox" ], [ "Loads::PressureBoundaryForceBox", "structLoads_1_1PressureBoundaryForceBox.html", "structLoads_1_1PressureBoundaryForceBox" ], [ "Loads::PressureMaterial", "structLoads_1_1PressureMaterial.html", "structLoads_1_1PressureMaterial" ], [ "Loads::PrescribedPorePressure", "structLoads_1_1PrescribedPorePressure.html", "structLoads_1_1PrescribedPorePressure" ], [ "Loads::SeismicData", "structLoads_1_1SeismicData.html", "structLoads_1_1SeismicData" ], [ "configureNodalPointLoads", "Loads_8h.html#a70b671a26b22a970ebdb930b2c43a505", null ], + [ "getNodalPointList", "Loads_8h.html#a67971878871ece27ff54401ffcd9a5ff", null ], [ "getSeismicData", "Loads_8h.html#ac2794cc202d1527d21f610dd1bfc4310", null ], [ "setGravity", "Loads_8h.html#a1a2299651bd04336c8233e10785aca1b", null ], [ "setInitialPorePressureBox", "Loads_8h.html#ab69a7f18bdaf04c6fd6197f465ac9446", null ], @@ -17,8 +18,5 @@ var Loads_8h = [ "setPrescribedPorePressureBoundaryForceBox", "Loads_8h.html#aab3e0ec525ab42f967dc058e7d057dde", null ], [ "setPrescribedPorePressureBox", "Loads_8h.html#af688d48cc51e2b6005d0088502120c55", null ], [ "setSeismicData", "Loads_8h.html#ab8f15227c16f8394a08a4d3586f80e11", null ], - [ "updatePrescribedPorePressure", "Loads_8h.html#a6f957fba555640cd03240c65124a35c2", null ], - [ "nodalPointLoad", "Loads_8h.html#a7863042b1bc1dad916b60d4f7aec821e", null ], - [ "prescribedPorePressureParticlesList", "Loads_8h.html#ad8a3ae1d06dccc3acb90569960068461", null ], - [ "seismicRecord", "Loads_8h.html#afe9be730a82af1e03b57cc4906e4931d", null ] + [ "updatePrescribedPorePressure", "Loads_8h.html#a6f957fba555640cd03240c65124a35c2", null ] ]; \ No newline at end of file diff --git a/docs/Loads_8h_source.html b/docs/Loads_8h_source.html index e52be78..270ac30 100644 --- a/docs/Loads_8h_source.html +++ b/docs/Loads_8h_source.html @@ -128,150 +128,146 @@
18
21namespace Loads {
22
-
23 vector<PrescribedPorePressure> prescribedPorePressureParticlesList;
-
24 SeismicData seismicRecord;
-
25 std::vector nodalPointLoad;
-
26
-
-
30 struct LoadDistributedBox
-
31 {
-
32 Vector3d pointP1;
-
33 Vector3d pointP2;
-
34 Vector3d load;
-
35 };
+
+ +
27 {
+
28 Vector3d pointP1;
+
29 Vector3d pointP2;
+
30 Vector3d load;
+
31 };
-
36
-
- -
40 {
-
41 Vector3d point;
-
42 Vector3d load;
-
43 string nodal_id;
-
44 };
+
32
+
+ +
36 {
+
37 std::vector<Vector3d> points;
+
38 std::vector <Vector3d> loads;
+
39 std::vector<int> nodal_ids;
+
40 };
-
45
-
- -
50 {
-
51 Vector3d pointP1;
-
52 Vector3d pointP2;
-
53 double pressure;
-
54 };
+
41
+
+ +
46 {
+
47 Vector3d pointP1;
+
48 Vector3d pointP2;
+
49 double pressure;
+
50 };
-
55
-
- -
59 {
-
60 Vector3d pointP1;
-
61 Vector3d pointP2;
-
62 Vector3d pressureForce;
-
63 };
+
51
+
+ +
55 {
+
56 Vector3d pointP1;
+
57 Vector3d pointP2;
+
58 Vector3d pressureForce;
+
59 };
-
64
-
- -
69 {
- -
71 double pressure;
-
72 };
+
60
+
+ +
65 {
+ +
67 double pressure;
+
68 };
-
73
-
- +
69
+
+ +
74
+ + +
77 double pressure;
78
- - -
81 double pressure;
-
82
-
-
88 PrescribedPorePressure(int body_index, int particle_index, double pressure_value) {
-
89
-
90 bodyIndex=body_index;
-
91 particleIndex=particle_index;
-
92 pressure=pressure_value;
-
93 }
+
+
84 PrescribedPorePressure(int body_index, int particle_index, double pressure_value) {
+
85
+
86 bodyIndex=body_index;
+
87 particleIndex=particle_index;
+
88 pressure=pressure_value;
+
89 }
-
94 };
+
90 };
-
95
-
- -
101 {
-
102 std::vector<double> time;
-
103 std::vector<Eigen::Vector3d> acceleration;
-
104 std::vector<Eigen::Vector3d> velocity;
-
105 };
+
91
+
+ +
97 {
+
98 std::vector<double> time;
+
99 std::vector<Eigen::Vector3d> acceleration;
+
100 std::vector<Eigen::Vector3d> velocity;
+
101 };
-
106
- -
112
- -
119
-
122 void setGravity(vector<Body*>& bodies);
-
123
-
127 void setLoadDistributedBox(vector<Body*>& bodies, vector<Loads::LoadDistributedBox> loads);
-
128
-
132 void setPrescribedPorePressureBox(vector<Body*>& bodies, vector<Loads::PressureBox> pressures);
-
133
-
137 void setInitialPorePressureBox(vector<Body*>& bodies, vector<Loads::PressureBox> pressures);
-
138
-
142 void setInitialPorePressureMaterial(vector<Body*>& bodies, vector<Loads::PressureMaterial> pressures);
-
143
-
146 void updatePrescribedPorePressure(vector<Body*>* bodies);
-
147
-
153 void setPrescribedPorePressureBoundaryForceBox(vector<Body*>& bodies, vector<Loads::PressureBoundaryForceBox> loads);
+
102
+ +
108
+ +
115
+
118 void setGravity(vector<Body*>& bodies);
+
119
+
123 void setLoadDistributedBox(vector<Body*>& bodies, vector<Loads::LoadDistributedBox> loads);
+
124
+
128 void setPrescribedPorePressureBox(vector<Body*>& bodies, vector<Loads::PressureBox> pressures);
+
129
+
133 void setInitialPorePressureBox(vector<Body*>& bodies, vector<Loads::PressureBox> pressures);
+
134
+
138 void setInitialPorePressureMaterial(vector<Body*>& bodies, vector<Loads::PressureMaterial> pressures);
+
139
+
142 void updatePrescribedPorePressure(vector<Body*>* bodies);
+
143
+
149 void setPrescribedPorePressureBoundaryForceBox(vector<Body*>& bodies, vector<Loads::PressureBoundaryForceBox> loads);
+
150
+
153 void setInitialVelocity(vector<Body*>& bodies);
154
-
157 void setInitialVelocity(vector<Body*>& bodies);
+
158
- -
160};
-
161
-
162#endif /* LOADS_H_ */
+ +
162};
+
163
+
164#endif /* LOADS_H_ */
Class representing a rectangular grid mesh.
Definition Mesh.h:29
Operations to manage loads in the MPM model.
void setGravity(vector< Body * > &bodies)
Configures the gravity load in particles.
void setLoadDistributedBox(vector< Body * > &bodies, vector< Loads::LoadDistributedBox > loads)
Configure distributed load in particles inside of a box.
+
NodalPointLoadData & getNodalPointList()
Get (node-id load) vector for set nodal point load.
void updatePrescribedPorePressure(vector< Body * > *bodies)
Set prescribed pore pressure in particles.
-
void configureNodalPointLoads(Mesh *)
-
std::vector nodalPointLoad
Definition Loads.h:25
+
void configureNodalPointLoads(Mesh *)
configure nodeid-point-load data for nodal force application
void setInitialVelocity(vector< Body * > &bodies)
Set initial velocity in bodies.
void setPrescribedPorePressureBoundaryForceBox(vector< Body * > &bodies, vector< Loads::PressureBoundaryForceBox > loads)
Set external boundary force in fluid phase due the prescribed pore pressure in particles.
void setInitialPorePressureMaterial(vector< Body * > &bodies, vector< Loads::PressureMaterial > pressures)
Configure initial pore pressure in particles by material id.
void setInitialPorePressureBox(vector< Body * > &bodies, vector< Loads::PressureBox > pressures)
Configure initial pore pressure in particles inside of a box.
void setSeismicData()
Set the Seismic Data object.
SeismicData & getSeismicData()
Get the Seismic Data object.
-
vector< PrescribedPorePressure > prescribedPorePressureParticlesList
Definition Loads.h:23
void setPrescribedPorePressureBox(vector< Body * > &bodies, vector< Loads::PressureBox > pressures)
Configure prescribed pore pressure in particles inside of a box.
-
SeismicData seismicRecord
Definition Loads.h:24
-
Structure to define a distributed load in particles inside the cuboid defined by point p1 and p2.
Definition Loads.h:31
-
Vector3d load
load to be distributed in particles inside the box
Definition Loads.h:34
-
Vector3d pointP2
right upper point of the box
Definition Loads.h:33
-
Vector3d pointP1
left lower point of the box
Definition Loads.h:32
-
Define a structure to store point loads.
Definition Loads.h:40
-
Vector3d load
Load [lx, ly, lz].
Definition Loads.h:42
-
Vector3d point
Coordinates [px, py, pz].
Definition Loads.h:41
-
string nodal_id
nodal id
Definition Loads.h:43
-
Structure to represent a particle with a pressure. Pressure is applied to particles with the specifie...
Definition Loads.h:77
-
int bodyIndex
body index in body vector
Definition Loads.h:79
-
int particleIndex
particle index in particle vector
Definition Loads.h:80
-
double pressure
pressure to be applied to the particle
Definition Loads.h:81
-
PrescribedPorePressure(int body_index, int particle_index, double pressure_value)
Structure constructor.
Definition Loads.h:88
-
Structure to represent a boundary force in fluid due the action of the pressure.
Definition Loads.h:59
-
Vector3d pressureForce
force due the pressure applied at the boundary
Definition Loads.h:62
-
Vector3d pointP1
left lower point of the box
Definition Loads.h:60
-
Vector3d pointP2
right upper point of the box
Definition Loads.h:61
-
Structure to represent a box with a pressure. Pressure in applied to particles inside the cuboid defi...
Definition Loads.h:50
-
Vector3d pointP2
right upper point of the box
Definition Loads.h:52
-
double pressure
pressure in particles inside the box
Definition Loads.h:53
-
Vector3d pointP1
left lower point of the box
Definition Loads.h:51
-
Structure to represent a material with a pressure. Pressure is applied to particles with the specifie...
Definition Loads.h:69
-
int materialId
material id
Definition Loads.h:70
-
double pressure
pressure in particles inside the box
Definition Loads.h:71
-
Seismic data structure to manage acceleration and velocity of an earthquake record.
Definition Loads.h:101
-
std::vector< Eigen::Vector3d > acceleration
Definition Loads.h:103
-
std::vector< double > time
Definition Loads.h:102
-
std::vector< Eigen::Vector3d > velocity
Definition Loads.h:104
+
Structure to define a distributed load in particles inside the cuboid defined by point p1 and p2.
Definition Loads.h:27
+
Vector3d load
load to be distributed in particles inside the box
Definition Loads.h:30
+
Vector3d pointP2
right upper point of the box
Definition Loads.h:29
+
Vector3d pointP1
left lower point of the box
Definition Loads.h:28
+
Definition Loads.h:36
+
std::vector< int > nodal_ids
nodal id
Definition Loads.h:39
+
std::vector< Vector3d > loads
Load [lx, ly, lz].
Definition Loads.h:38
+
std::vector< Vector3d > points
Coordinates [px, py, pz].
Definition Loads.h:37
+
Structure to represent a particle with a pressure. Pressure is applied to particles with the specifie...
Definition Loads.h:73
+
int bodyIndex
body index in body vector
Definition Loads.h:75
+
int particleIndex
particle index in particle vector
Definition Loads.h:76
+
double pressure
pressure to be applied to the particle
Definition Loads.h:77
+
PrescribedPorePressure(int body_index, int particle_index, double pressure_value)
Structure constructor.
Definition Loads.h:84
+
Structure to represent a boundary force in fluid due the action of the pressure.
Definition Loads.h:55
+
Vector3d pressureForce
force due the pressure applied at the boundary
Definition Loads.h:58
+
Vector3d pointP1
left lower point of the box
Definition Loads.h:56
+
Vector3d pointP2
right upper point of the box
Definition Loads.h:57
+
Structure to represent a box with a pressure. Pressure in applied to particles inside the cuboid defi...
Definition Loads.h:46
+
Vector3d pointP2
right upper point of the box
Definition Loads.h:48
+
double pressure
pressure in particles inside the box
Definition Loads.h:49
+
Vector3d pointP1
left lower point of the box
Definition Loads.h:47
+
Structure to represent a material with a pressure. Pressure is applied to particles with the specifie...
Definition Loads.h:65
+
int materialId
material id
Definition Loads.h:66
+
double pressure
pressure in particles inside the box
Definition Loads.h:67
+
Seismic data structure to manage acceleration and velocity of an earthquake record.
Definition Loads.h:97
+
std::vector< Eigen::Vector3d > acceleration
Definition Loads.h:99
+
std::vector< double > time
Definition Loads.h:98
+
std::vector< Eigen::Vector3d > velocity
Definition Loads.h:100
diff --git a/docs/Theory.html b/docs/Theory.html new file mode 100644 index 0000000..6494be6 --- /dev/null +++ b/docs/Theory.html @@ -0,0 +1,367 @@ + + + + + + + +MPM-Geomechanics: manual + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
MPM-Geomechanics +
+
Material Point Method for simulating geo-materials under large deformation conditions
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
manual
+
+
+

+Material Point Method (MPM)

+

+Introduction to MPM

+

The Material Point Method, or MPM, is a hybrid Lagrangian-Eulerian method that allows for simulating continuum mechanics processes involving large deformations and displacements without issues related to computational mesh distortion. In MPM, the material domain to be simulated is discretized into a set of material points that can move freely within a computational mesh, where the equations of motion are solved. The material points store all variables of interest during the simulation, such as stress, pore pressure, temperature, etc., giving the method its Lagrangian characteristic.

+
+ +
+"MPM Discretization"
+

In an MPM computational cycle, all variables stored in the material points are computed at the computational mesh nodes using interpolation functions, and then the equation of motion is solved at the nodes. The nodal solution obtained is interpolated back to the particles, whose positions are updated, and all nodal variables are discarded.

+
+ +
+"MPM computational cycle"
+

+MPM Formulation

+

MPM enables the numerical solution of the equation of motion in continuum mechanics by using the nodes of an Eulerian mesh for integration and Lagrangian material points to transfer and store the properties of the medium.

+

The equation of motion in continuum mechanics

+

+\[ +\frac{\partial \sigma_{ij}}{\partial x_j} + \rho b_i = \rho a_i +\] +

+

where \( \sigma_{ij} \) is the Cauchy stress tensor, \( \rho \) is the density, \( b_i \) is the body force (regarding its mass), and \( a_i \) is the acceleration of any point of the continuum.

+

Note that all equations are in tensor notation. So \( a_i \) is the acceleration vector with tree dimension in the space \( x, y, z \).

+

The MPM formulation is obtained from the weak form of the motion equation and using a Petrov–Galerkin discretization scheme. The weak form of motion equation is obtained by multiplying the equation by arbitrary weighting functions, integrating this product over the domain, using integration by parts to reduce the order of the stress term and introducing the boundary conditions

+

+\[ + -\int_{\Omega} \sigma_{i j} \delta u_{i, j} dV + \int_{\Gamma} t_i \delta u_i dA + \int_{\Omega} \rho b_i \delta u_i dV = \int_{\Omega} \rho a_i \delta u_i dV +\] +

+

where \( \delta u_i \) are virtual displacements, whose value in the boundary is \( \delta u_i |_{\Gamma} = 0 \) and \( t_i \) is an external traction acting on the boundary \( \Gamma \).

+

In the MPM context any field or property \( f(x_i) \) can approximated using the value stored in the particle \( f_p \):

+

+\[ + f(x_i) = \sum f_p \chi_p (x_i) +\] +

+

where \( \chi_p \) is the particle characteristic function that defines the volume occupied by the material point:

+

+\[ + V_p = \int_{\Omega_p \cap \Omega} \chi_p(x_i) dV +\] +

+

consequently, in the MPM context, the density, the acceleration and the stress fields can be approximated by the values stored in particles:

+

+\[ +\rho(x_i) = \sum_p \frac{m_p}{V_{ip}} \chi_p(x_i) +\] +

+

+\[ +\rho(x_i) a_i(x_i) = \sum_p \frac{\dot{p_{ip}}}{V_p} \chi_p(x_i) +\] +

+

+\[ +\sigma_{i j}(x_i) = \sum_p \sigma_{i j p} \chi_p(x_i) +\] +

+

where \( \dot{p_{i p}} = m_p \dot{v_{ip}} = m_p a_{ip} \).

+

Replacing these fields in the weak form of the motion equation we have:

+

+\[ +-\sum_p \int_{\Omega_p \cap \Omega} \sigma_{i j p} \chi_p \delta u_{i, j} dV + \int_{\Gamma} t_i \delta u_i dA + \sum_p \int_{\Omega_p \cap \Omega} \frac{m_p}{V_p} b_{i p} \chi_p \delta u_i dV = \sum_p \int_{\Omega_p \cap \Omega} \frac{\dot{p}_p}{V_p} \chi_p a_i dV +\] +

+

In the generalized interpolation material point method (GIMP), the resolution of this equation is carried out using a Petrov–Galerkin scheme where the characteristic functions \( \chi_p(x_i) \) are the trial functions and the nodal interpolation functions \( N_I(x_i) \) are the test functions.

+

To arrive at this scheme, the virtual displacements are expressed using the nodal interpolation functions:

+

+\[ \delta u_i=\sum_I N_{I p} \delta u_{i I} \] +

+

Note that the trial and test functions are such that:

+

+\[ \sum_I N_{I}(x_i) = 1 \] +

+

+\[ \sum_p \chi_p(x_i) = 1 \] +

+

Therefore, the resulting discrete form of the motion equation is:

+

+\[ +f_{iI}^{int} + f_{iI}^{ext} = \dot{p}_{iI} +\] +

+

where

+

\( p_{iI} = \sum_p S_{Ip} p_{Ip} \) is the nodal momentum,

+

\( f_{iI}^{int} = -\sum_p \sigma_{ijp} S_{Ip,j} V_p \) is the nodal internal force, and

+

\( f_{iI}^{ext} = \sum_p m_p S_{Ip} b_{ip} + \int_{\Gamma} t_i N_I(x_i) dA \) is the external force at node \( I \).

+

Note that the function \( S_{Ip} \) and its gradient \( S_{Ip,j} \) are the weighting functions of node \( I \) evaluated at the position of particle \( p \).

+

The GIMP shape functions are defined by

+

+\[ +S_{Ip} = \frac{1}{V_p} \int_{\Omega_p \cap \Omega} \chi_p(x_i) N_I(x_i) dV +\] +

+

and

+

+\[ +S_{Ip,j} = \frac{1}{V_p} \int_{\Omega_p \cap \Omega} \chi_p(x_i) N_{I,j}(x_i) dV +\] +

+

Note that these functions is also a partition of the unity:

+

\( \sum_I S_{Ip} = 1 \)

+

The the weighting function need to be integrated over the particle domain by choosing different characteristic functions and interpolation functions in a Petrov–Galerkin scheme.

+

In the contiguous particle GIMP (cpGIMP) the characteristic function in defined as step function and the interpolation function is defined as linear function:

+

+\[ + \chi_p(x)=\left\{\begin{array}{cc}1 & x \in \Omega_p \\ 0 & x \notin \Omega_p\end{array}\right. +\] +

+

+\[ + N_I(x)=\left\{\begin{array}{c}0 \quad\left|x-x_I\right| \geq L \\ 1+\left(x-x_I\right) / L \quad-L<x-x_I \leq 0 \\ 1-\left(x-x_I\right) / L \quad 0<x-x_I<L\end{array}\right.$ +\] +

+

Where the integration is performed analytically within the particle domain.

+

+\[ +S_{I p}=\left\{\begin{array}{ll}0 & |\xi| \geq L+l_p \\ +\left(L+l_p+\xi\right)^2 / 4 L l_p & -L-l_p<\xi \leq-L+l_p \\ +1+\xi / L & -L+l_p<\xi \leq-l_p \\ +1-\left(\xi^2+l_p^2\right) / 2 L l_p & \quad-l_p<\xi \leq l_p \\ +1-\xi / L & l_p<\xi \leq L-l_p \\ +\left(L+l_p-\xi\right)^2 / 4 L l_p & L-l_p<\xi \leq L+l_p\end{array}\right. +\] +

+

and

+

+\[ +\nabla S_{I p}= \begin{cases}0 & \left|x_p-x_I\right| \geq L+l_p, \\ +\frac{L+l_p+\left(x_p-x_I\right)}{2 L l_p} & -L-l_p<x_p-x_I \leq-L+l_p, \\ +\frac{1}{L} & -L+l_p<x_p-x_I \leq-l_p, \\ +-\frac{x_p-x_I}{L l_p} & -l_p<x_p-x_I \leq l_p, \\ +-\frac{1}{L} & l_p<x_p-x_I \leq L-l_p, \\ +-\frac{L+l_p-\left(x_p-x_I\right)}{2 L l_p} & L-l_p<x_p-x_I \leq L+l_p . +\end{cases} +\] +

+

In which \( 2lp \) is the particle domain, \( L \) is the mesh size in 1D, and is the relative particle position to node.

+

Weighting functions in 3D are obtained by the product of three one-dimensional weighting functions:

+

\( +S_{I p}(x_{i p}) = S_{I p}(\xi) S_{I p} (\eta) S_{I p} (\zeta) +\)

+

where \( \xi=x_p-x_I, \eta=y_p-y_I \) and \( \zeta=z_p-z \).

+

+Explicit MPM integration

+

The discrete form of the motion equation \( +f_{iI}^{int} + f_{iI}^{ext} = \dot{p}_{iI} \), is a second order ordinary differential equation in terms of displacement with respect to time, and can be solved by integration, using an explicit or implicit integration scheme.

+

+Central difference Method

+

The displacement, the velocity and the acceleration at time \( t = 0, t^1, t^2, ... , t^n \) are knows, and the values at time \( t^{n+1} \) are required, namely the solution of the problem.

+

In central difference method, the velocity at \( t^{n+1/2} \) can be approximated as:

+

+\[ + \dot{u}^{n+1/2} = ( u^{n+1} - u^{n} ) \Delta t\ +\] +

+

and, the acceleration in \( t^{n} \) can be approximated as:

+

+\[ + \ddot{u}^{n} = (\dot{u}^{n+1/2} - \dot u ^ {n-1/2})/\Delta t +\] +

+

and therefore, the required displacement at \( t^{n+1} \) can be calculated as:

+

+\[ + +u^{n+1} = u^{n} + \dot u ^ {n+1/2} \, \Delta t + +\] +

+

, where

+

+\[ +\dot u ^ {n+1/2} = \dot u ^ {n-1/2} + \ddot u ^ {n} \Delta t +\] +

+

The motion equation in \( t^{n} \) is:

+

+\[ +m \, \ddot u ^{n} = f ^{n} +\] +

+

So,

+

+\[ +\ddot u ^{n} = f ^{n} / m +\] +

+

and

+\[ +\dot u ^ {n+1/2} = \dot u ^ {n-1/2} + f ^{n} / m \, \Delta t +\] +

+

+Numerical implementation

+
    +
  1. Calculate force \( f_n \)
  2. +
  3. Calculate acceleration \( \ddot u ^{n} = f ^{n} / m \)
  4. +
  5. Impose essential boundary conditions in terms of \( \ddot u ^{n} \)
  6. +
  7. Update velocity \( \dot u ^ {n+1/2} = \dot u ^ {n-1/2} + \ddot u ^{n} \, \Delta t \)
  8. +
  9. Update position \( u^{n+1} = u^{n} + \dot u ^ {n+1/2} \, \Delta t \)
  10. +
  11. Let \( n = n + 1 \)
  12. +
+

+Stability Requirement

+

The central difference method is conditionally stable, so the time step must be less that a certain value. For linear systems this critical time step value depends on the natural period of the system, in particular for undamped linear systems the critical time step is:

+

+\[ \Delta t_{cr} = T_n \] +

+

\( T_n \) is the smallest natural period of the system. For finite element method the critical time step of the central difference method can be expressed as:

+

+\[ \Delta t_{cr} = min_e [ l^e / c ] \] +

+

, where \( l^e \) is the characteristic length of the element and \( c \) is the sound speed. This time step restriction implies that time step has to be limited such that a disturbance can travel across the smallest characteristic element length withing a single time step. This condition is known as CFL condition, or Courant-Friedrichs-Lewy condition. For linear elastic material the sound speed is:

+

+\[ c = \sqrt{ \frac {E (1-\nu)} {(1+\nu)(1-2\nu)\rho}} \] +

+

In the MPM context the particles can has velocities in the begin ing of any time step, so the critical time speed can be written as:

+

+\[ \Delta t_{cr} = l^e / max_p ( c_p + |v_p| ) \] +

+

In a structured regular mesh, \( l^e \) is the grid cell dimension.

+

+Explicit MPM Scheme

+

In the MPM the particles stores all the material information and the mesh is used to integrate the motion equation \( \dot{p} = m \frac{dv}{dt} = f \). Therefore, the nodal values of mass, velocity, force, stress, ..., etc., needs no tb interpolated from particles using interpolation functions. After solving the motion equation, the acceleration and velocity are interpolated back to the particles to update their velocities and their positions.

+

The total force in the motion equation includes internal force and it depends on the stress state store in particles. The stresses can be updated by using a constitutive model, relating stresses with deformations. The deformation tensor can be obtained from the velocity field. The nodal velocities are used to calculate the strain and the vorticity tensor to update the stress. So, in the numerical integration the stresses could be updated with the velocities at the beginning or at the end of each time step. Regarding the velocity field used we have the Update Stress First - USF scheme or the Update Stress Last - USL scheme.

+

USF Scheme In the USF scheme the velocities in \( n-1/2 \) are used to update the stress state:

+

+\[ v_{iI}^{k-1/2} = p^{k-1/2}_{iI} / m_p = \sum_p S_{Ip} m_p v_{ip}^{i-1/2} / m_I^k \] +

+

USL Scheme In the USL scheme the updated velocities in nodes \( n+1/2 \) are used to update the stress state:

+

+\[ v_{iI}^{k+1/2} = p^{k+1/2}_{iI} / m_I^k \] +

+

MUSL Scheme In the Modified USL scheme, the updated particle velocities are used to update the stress state:

+

+\[ v_{iI}^{k+1/2} = \sum_p S_{Ip} m_p v_{ip}^{i+1/2} / m_I^k \] +

+

+References

+
    +
  • Zhang, X., Chen, Z., & Liu, Y. (2017). The material point method : a continuum-based particle method for extreme loading cases (First edition). Elsevier. http://site.ebrary.com/id/11285709
  • +
  • Bathe, K.-J., & Bathe, K.-J. (1996). Finite element procedures. Prentice Hall.
  • +
+
+
+
+ + + + diff --git a/docs/annotated.html b/docs/annotated.html index 5968619..e97a30e 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -112,7 +112,7 @@
[detail level 12]
- + @@ -135,17 +135,18 @@ - - - + + + - - - - - - - + + + + + + +
 NLoadsOperations to manage loads in the MPM model
 CLoadDistributedBoxStructure to define a distributed load in particles inside the cuboid defined by point p1 and p2
 CNodalPointLoadDefine a structure to store point loads
 CNodalPointLoadData
 CPrescribedPorePressureStructure to represent a particle with a pressure. Pressure is applied to particles with the specified index
 CPressureBoundaryForceBoxStructure to represent a boundary force in fluid due the action of the pressure
 CPressureBoxStructure to represent a box with a pressure. Pressure in applied to particles inside the cuboid defined by point p1 and p2
 CSoftening
 CMPMComponents and algorithms of the MPM This class contain the basic objects of a MPM model, and the operations between them
 CNodeRepresents a mesh node
 CNodeMixtureRepresents a mesh node for calculations using the mixture theory
 CParticleRepresents a Lagrangian material point This class contain all Lagrangian variables that represents the domain an its properties
+
 CNodalPointLoadDefine a structure to store point loads
 CNodeRepresents a mesh node
 CNodeMixtureRepresents a mesh node for calculations using the mixture theory
 CParticleRepresents a Lagrangian material point This class contain all Lagrangian variables that represents the domain an its properties
 CParticleMixtureA material point for calculations using the mixture theory
 CShapeRepresents the shape functions used in the interpolation process
 CShapeGimpRepresents the GIMP shape functions used in the interpolation process
 CShapeLinearRepresents the Linear shape functions used in the interpolation process
 CSolverRepresents the operations to solve the equations in time
 CSolverExplicitTwoPhaseUSLSolves explicitly the two phase motion equation in time using the scheme Update Stress Last
 CSolverExplicitUSLRepresents the operations to solve explicitly the equations in time using the scheme Update Stress Last
 CParticleMixtureA material point for calculations using the mixture theory
 CShapeRepresents the shape functions used in the interpolation process
 CShapeGimpRepresents the GIMP shape functions used in the interpolation process
 CShapeLinearRepresents the Linear shape functions used in the interpolation process
 CSolverRepresents the operations to solve the equations in time
 CSolverExplicitTwoPhaseUSLSolves explicitly the two phase motion equation in time using the scheme Update Stress Last
 CSolverExplicitUSLRepresents the operations to solve explicitly the equations in time using the scheme Update Stress Last
diff --git a/docs/annotated_dup.js b/docs/annotated_dup.js index b31c798..eb7ef92 100644 --- a/docs/annotated_dup.js +++ b/docs/annotated_dup.js @@ -2,7 +2,7 @@ var annotated_dup = [ [ "Loads", "namespaceLoads.html", [ [ "LoadDistributedBox", "structLoads_1_1LoadDistributedBox.html", "structLoads_1_1LoadDistributedBox" ], - [ "NodalPointLoad", "structLoads_1_1NodalPointLoad.html", "structLoads_1_1NodalPointLoad" ], + [ "NodalPointLoadData", "structLoads_1_1NodalPointLoadData.html", "structLoads_1_1NodalPointLoadData" ], [ "PrescribedPorePressure", "structLoads_1_1PrescribedPorePressure.html", "structLoads_1_1PrescribedPorePressure" ], [ "PressureBoundaryForceBox", "structLoads_1_1PressureBoundaryForceBox.html", "structLoads_1_1PressureBoundaryForceBox" ], [ "PressureBox", "structLoads_1_1PressureBox.html", "structLoads_1_1PressureBox" ], @@ -23,6 +23,7 @@ var annotated_dup = [ "Mesh", "classMesh.html", "classMesh" ], [ "MohrCoulomb", "classMohrCoulomb.html", "classMohrCoulomb" ], [ "MPM", "classMPM.html", "classMPM" ], + [ "NodalPointLoad", "structNodalPointLoad.html", null ], [ "Node", "classNode.html", "classNode" ], [ "NodeMixture", "classNodeMixture.html", "classNodeMixture" ], [ "Particle", "classParticle.html", "classParticle" ], diff --git a/docs/boussinesq-problem-verification.png b/docs/boussinesq-problem-verification.png new file mode 100644 index 0000000..1128ab3 Binary files /dev/null and b/docs/boussinesq-problem-verification.png differ diff --git a/docs/classes.html b/docs/classes.html index 485f5dd..254e224 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -127,7 +127,7 @@
Material
Mesh
MohrCoulomb
MPM
N
-
NodalPointLoad (Loads)
Node
NodeMixture
+
NodalPointLoad
NodalPointLoadData (Loads)
Node
NodeMixture
P
Particle
ParticleMixture
Boundary::planeBoundary
PrescribedPorePressure (Loads)
PressureBoundaryForceBox (Loads)
PressureBox (Loads)
PressureMaterial (Loads)
diff --git a/docs/doxygen_crawl.html b/docs/doxygen_crawl.html index 0f80b43..b71feb3 100644 --- a/docs/doxygen_crawl.html +++ b/docs/doxygen_crawl.html @@ -78,10 +78,10 @@ - - - - + + + + @@ -114,6 +114,7 @@ + @@ -142,8 +143,8 @@ - - + + @@ -214,9 +215,6 @@ - - - @@ -325,7 +323,6 @@ - @@ -335,6 +332,7 @@ + @@ -376,18 +374,16 @@ + - - - @@ -1059,7 +1055,6 @@ - @@ -1069,6 +1064,7 @@ + @@ -1109,18 +1105,16 @@ + - - - @@ -1234,21 +1228,7 @@ - - - - - - - - - - - - - - @@ -1258,10 +1238,10 @@ - - - - + + + + @@ -1282,5 +1262,25 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/docs/functions_l.html b/docs/functions_l.html index c0cefee..0411e8b 100644 --- a/docs/functions_l.html +++ b/docs/functions_l.html @@ -108,7 +108,8 @@
Here is a list of all class members with links to the classes they belong to:

- l -

diff --git a/docs/functions_n.html b/docs/functions_n.html index 09abf58..dc4e843 100644 --- a/docs/functions_n.html +++ b/docs/functions_n.html @@ -110,7 +110,7 @@

- n -

diff --git a/docs/hierarchy.js b/docs/hierarchy.js index 375e10c..5e0adba 100644 --- a/docs/hierarchy.js +++ b/docs/hierarchy.js @@ -19,7 +19,8 @@ var hierarchy = ] ], [ "Mesh", "classMesh.html", null ], [ "MPM", "classMPM.html", null ], - [ "Loads::NodalPointLoad", "structLoads_1_1NodalPointLoad.html", null ], + [ "NodalPointLoad", "structNodalPointLoad.html", null ], + [ "Loads::NodalPointLoadData", "structLoads_1_1NodalPointLoadData.html", null ], [ "Node", "classNode.html", [ [ "NodeMixture", "classNodeMixture.html", null ] ] ], diff --git a/docs/index.html b/docs/index.html index d8933c3..3c0315e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -119,7 +119,7 @@

where \( p_{i I}=\sum_p S_{I p} p_{i p}\) is the momentum, \( f_{i I}^{int}=-\sum_p \sigma_{i j p} S_{I p, j} V_p\) is the internal force, and \( f_{i I}^{e x t}=\sum_p m_p S_{I p} b_{i p}+\int_{\Gamma} \mathrm{t}_i N_I\left(x_i\right) d A\) is the external force at node \( I \).

The function \( S_{I p} \) and its gradient \( S_{I p, j} \) are the weighting functions of node \( I \) evaluated at the position of particle \( p \), defined by \( S_{I p}=\frac{1}{V_p} \int_{\Omega_p \cap \Omega} \chi_p\left(x_{ip}\right) N_I\left(x_{ip}\right) dV \) and \( S_{I p, j}=\frac{1}{V_p} \int_{\Omega_p \cap \Omega} \chi_p\left(x_{ip}\right) N_{I, j}\left(x_{ip}\right) dV \).

The integration of the weight functions is performed analytically over the particle domain using linear functions for \( N_I\left(x_{ip}\right) \) and unit step functions for \( \chi_p\left(x_{ip}\right) \).

-

For more details on the formulation and integration process, refer to: Theory manual

+

For more details on the formulation and integration process, refer to: program_theory_manual

Program Features

The main features of the program are:

diff --git a/docs/inherit_graph_16.map b/docs/inherit_graph_16.map index bfb7eea..0fb2006 100644 --- a/docs/inherit_graph_16.map +++ b/docs/inherit_graph_16.map @@ -1,5 +1,3 @@ - - - + diff --git a/docs/inherit_graph_16.md5 b/docs/inherit_graph_16.md5 index 2f65bcf..072683f 100644 --- a/docs/inherit_graph_16.md5 +++ b/docs/inherit_graph_16.md5 @@ -1 +1 @@ -501210644e6631fbc953ae459c8e889e \ No newline at end of file +6235274358da7ca5f1ffda81d19b40fc \ No newline at end of file diff --git a/docs/inherit_graph_16.png b/docs/inherit_graph_16.png index 909783d..baa5cff 100644 Binary files a/docs/inherit_graph_16.png and b/docs/inherit_graph_16.png differ diff --git a/docs/inherit_graph_17.map b/docs/inherit_graph_17.map index 27387e8..bfb7eea 100644 --- a/docs/inherit_graph_17.map +++ b/docs/inherit_graph_17.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/docs/inherit_graph_17.md5 b/docs/inherit_graph_17.md5 index 4ecfe32..2f65bcf 100644 --- a/docs/inherit_graph_17.md5 +++ b/docs/inherit_graph_17.md5 @@ -1 +1 @@ -254c676b5921e91c922efa615840193b \ No newline at end of file +501210644e6631fbc953ae459c8e889e \ No newline at end of file diff --git a/docs/inherit_graph_17.png b/docs/inherit_graph_17.png index 8eee2bc..909783d 100644 Binary files a/docs/inherit_graph_17.png and b/docs/inherit_graph_17.png differ diff --git a/docs/inherit_graph_18.map b/docs/inherit_graph_18.map index 770d4e9..27387e8 100644 --- a/docs/inherit_graph_18.map +++ b/docs/inherit_graph_18.map @@ -1,7 +1,5 @@ - - - - - + + + diff --git a/docs/inherit_graph_18.md5 b/docs/inherit_graph_18.md5 index 0572b9e..4ecfe32 100644 --- a/docs/inherit_graph_18.md5 +++ b/docs/inherit_graph_18.md5 @@ -1 +1 @@ -e29a66bafed5092ec253d0fa6403d98d \ No newline at end of file +254c676b5921e91c922efa615840193b \ No newline at end of file diff --git a/docs/inherit_graph_18.png b/docs/inherit_graph_18.png index df863dd..8eee2bc 100644 Binary files a/docs/inherit_graph_18.png and b/docs/inherit_graph_18.png differ diff --git a/docs/inherit_graph_19.map b/docs/inherit_graph_19.map index 615a3b3..770d4e9 100644 --- a/docs/inherit_graph_19.map +++ b/docs/inherit_graph_19.map @@ -1,7 +1,7 @@ - - - - - + + + + + diff --git a/docs/inherit_graph_19.md5 b/docs/inherit_graph_19.md5 index 05401af..0572b9e 100644 --- a/docs/inherit_graph_19.md5 +++ b/docs/inherit_graph_19.md5 @@ -1 +1 @@ -d0a1e3ce61421a14d1ab6ec568a958bc \ No newline at end of file +e29a66bafed5092ec253d0fa6403d98d \ No newline at end of file diff --git a/docs/inherit_graph_19.png b/docs/inherit_graph_19.png index f279716..df863dd 100644 Binary files a/docs/inherit_graph_19.png and b/docs/inherit_graph_19.png differ diff --git a/docs/inherit_graph_20.map b/docs/inherit_graph_20.map new file mode 100644 index 0000000..615a3b3 --- /dev/null +++ b/docs/inherit_graph_20.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/inherit_graph_20.md5 b/docs/inherit_graph_20.md5 new file mode 100644 index 0000000..05401af --- /dev/null +++ b/docs/inherit_graph_20.md5 @@ -0,0 +1 @@ +d0a1e3ce61421a14d1ab6ec568a958bc \ No newline at end of file diff --git a/docs/inherit_graph_20.png b/docs/inherit_graph_20.png new file mode 100644 index 0000000..f279716 Binary files /dev/null and b/docs/inherit_graph_20.png differ diff --git a/docs/inherit_graph_6.map b/docs/inherit_graph_6.map index 3c76d6b..3c11e28 100644 --- a/docs/inherit_graph_6.map +++ b/docs/inherit_graph_6.map @@ -1,3 +1,3 @@ - + diff --git a/docs/inherit_graph_6.md5 b/docs/inherit_graph_6.md5 index 701f98c..09d0dfe 100644 --- a/docs/inherit_graph_6.md5 +++ b/docs/inherit_graph_6.md5 @@ -1 +1 @@ -33589139098562fdb45b8d98bda51af4 \ No newline at end of file +7ccad65b1f4d77d11b01004b8e65db6e \ No newline at end of file diff --git a/docs/inherit_graph_6.png b/docs/inherit_graph_6.png index e4a8093..f416aba 100644 Binary files a/docs/inherit_graph_6.png and b/docs/inherit_graph_6.png differ diff --git a/docs/inherits.html b/docs/inherits.html index aea6c9e..2660ed8 100644 --- a/docs/inherits.html +++ b/docs/inherits.html @@ -149,9 +149,9 @@ - - - + + + @@ -205,21 +205,26 @@ - + + + + + + - + - + @@ -228,7 +233,7 @@ - + diff --git a/docs/menudata.js b/docs/menudata.js index 57c98c5..51d5b05 100644 --- a/docs/menudata.js +++ b/docs/menudata.js @@ -61,7 +61,6 @@ var menudata={children:[ {text:"s",url:"namespacemembers_func.html#index_s"}, {text:"u",url:"namespacemembers_func.html#index_u"}, {text:"w",url:"namespacemembers_func.html#index_w"}]}, -{text:"Variables",url:"namespacemembers_vars.html"}, {text:"Enumerations",url:"namespacemembers_enum.html"}, {text:"Enumerator",url:"namespacemembers_eval.html"}]}]}, {text:"Classes",url:"annotated.html",children:[ diff --git a/docs/namespaceInput.html b/docs/namespaceInput.html index 5a77bc2..413afde 100644 --- a/docs/namespaceInput.html +++ b/docs/namespaceInput.html @@ -191,9 +191,9 @@ vector< Loads::LoadDistributedBoxgetLoadDistributedBox ()  Return loads distributed in particles inside a box.
  -vector< Loads::NodalPointLoadreadNodalPointLoads () - read nodal point loads This function reads a points from input file in the following format: "nodal_point_loads": [[p1x,p1y,p1z],[p1x,p1y,p1z]],...,[[pnx,pny,pnz],[pnx,pny,pnz]]
-  +Loads::NodalPointLoadData readNodalPointLoads () + read nodal point loads This function reads a points from input file in the following format: "nodal_point_loads": [[p1x,p1y,p1z],[p1x,p1y,p1z]],...,[[pnx,pny,pnz],[pnx,pny,pnz]]
+  vector< Loads::PressureBoxgetPrescribedPressureBox ()  Return prescribed pressure in particles inside a box.
  @@ -1292,14 +1292,14 @@

-

◆ readNodalPointLoads()

+ +

◆ readNodalPointLoads()

- + diff --git a/docs/namespaceLoads.html b/docs/namespaceLoads.html index 6248d24..8418ab6 100644 --- a/docs/namespaceLoads.html +++ b/docs/namespaceLoads.html @@ -107,8 +107,7 @@
Loads Namespace Reference
@@ -121,8 +120,7 @@
- - + @@ -173,16 +171,11 @@ + -
vector< Loads::NodalPointLoad > Input::readNodalPointLoads Loads::NodalPointLoadData Input::readNodalPointLoads ( )
struct  LoadDistributedBox
 Structure to define a distributed load in particles inside the cuboid defined by point p1 and p2. More...
 
struct  NodalPointLoad
 Define a structure to store point loads. More...
struct  NodalPointLoadData
 
struct  PrescribedPorePressure
 Structure to represent a particle with a pressure. Pressure is applied to particles with the specified index. More...
 Set initial velocity in bodies.
 
void configureNodalPointLoads (Mesh *)
 configure nodeid-point-load data for nodal force application
 
- - - - - - - + + +

-Variables

vector< PrescribedPorePressureprescribedPorePressureParticlesList
 
SeismicData seismicRecord
 
std::vector nodalPointLoad
 
NodalPointLoadDatagetNodalPointList ()
 Get (node-id load) vector for set nodal point load.
 

Detailed Description

+
+ +

◆ getNodalPointList()

+ +
+
+ + + + + + + +
NodalPointLoadData & Loads::getNodalPointList ()
+
+ +

Get (node-id load) vector for set nodal point load.

+
Parameters
+ + +
[out]NodalPointLoadvector
+
+
+
+
@@ -468,49 +495,6 @@

Variable Documentation

- -

◆ nodalPointLoad

- -
-
- - - - -
std::vector Loads::nodalPointLoad
-
- -
-
- -

◆ prescribedPorePressureParticlesList

- -
-
- - - - -
vector<PrescribedPorePressure> Loads::prescribedPorePressureParticlesList
-
- -
-
- -

◆ seismicRecord

- -
-
- - - - -
SeismicData Loads::seismicRecord
-
-
diff --git a/docs/namespaceLoads.js b/docs/namespaceLoads.js index eba431a..6ec3feb 100644 --- a/docs/namespaceLoads.js +++ b/docs/namespaceLoads.js @@ -1,13 +1,14 @@ var namespaceLoads = [ [ "LoadDistributedBox", "structLoads_1_1LoadDistributedBox.html", "structLoads_1_1LoadDistributedBox" ], - [ "NodalPointLoad", "structLoads_1_1NodalPointLoad.html", "structLoads_1_1NodalPointLoad" ], + [ "NodalPointLoadData", "structLoads_1_1NodalPointLoadData.html", "structLoads_1_1NodalPointLoadData" ], [ "PrescribedPorePressure", "structLoads_1_1PrescribedPorePressure.html", "structLoads_1_1PrescribedPorePressure" ], [ "PressureBoundaryForceBox", "structLoads_1_1PressureBoundaryForceBox.html", "structLoads_1_1PressureBoundaryForceBox" ], [ "PressureBox", "structLoads_1_1PressureBox.html", "structLoads_1_1PressureBox" ], [ "PressureMaterial", "structLoads_1_1PressureMaterial.html", "structLoads_1_1PressureMaterial" ], [ "SeismicData", "structLoads_1_1SeismicData.html", "structLoads_1_1SeismicData" ], [ "configureNodalPointLoads", "namespaceLoads.html#a70b671a26b22a970ebdb930b2c43a505", null ], + [ "getNodalPointList", "namespaceLoads.html#a67971878871ece27ff54401ffcd9a5ff", null ], [ "getSeismicData", "namespaceLoads.html#ac2794cc202d1527d21f610dd1bfc4310", null ], [ "setGravity", "namespaceLoads.html#a1a2299651bd04336c8233e10785aca1b", null ], [ "setInitialPorePressureBox", "namespaceLoads.html#ab69a7f18bdaf04c6fd6197f465ac9446", null ], @@ -17,8 +18,5 @@ var namespaceLoads = [ "setPrescribedPorePressureBoundaryForceBox", "namespaceLoads.html#aab3e0ec525ab42f967dc058e7d057dde", null ], [ "setPrescribedPorePressureBox", "namespaceLoads.html#af688d48cc51e2b6005d0088502120c55", null ], [ "setSeismicData", "namespaceLoads.html#ab8f15227c16f8394a08a4d3586f80e11", null ], - [ "updatePrescribedPorePressure", "namespaceLoads.html#a6f957fba555640cd03240c65124a35c2", null ], - [ "nodalPointLoad", "namespaceLoads.html#a7863042b1bc1dad916b60d4f7aec821e", null ], - [ "prescribedPorePressureParticlesList", "namespaceLoads.html#ad8a3ae1d06dccc3acb90569960068461", null ], - [ "seismicRecord", "namespaceLoads.html#afe9be730a82af1e03b57cc4906e4931d", null ] + [ "updatePrescribedPorePressure", "namespaceLoads.html#a6f957fba555640cd03240c65124a35c2", null ] ]; \ No newline at end of file diff --git a/docs/namespacemembers.html b/docs/namespacemembers.html index fc52917..3955db9 100644 --- a/docs/namespacemembers.html +++ b/docs/namespacemembers.html @@ -168,6 +168,7 @@

- g -

  • getMaterialList() : Input
  • getMeshBoundaryConditions() : Input
  • getMeshBoundaryConditionsFluid() : Input
  • +
  • getNodalPointList() : Loads
  • getNumberPhases() : Input
  • getNumThreads() : Input
  • getOrigin() : Input
  • @@ -228,7 +229,6 @@

    - n -

    @@ -252,7 +252,6 @@

    - p -

    @@ -260,7 +259,7 @@

    - p -

      - r -

      • readInputFile() : Input
      • -
      • readNodalPointLoads() : Input
      • +
      • readNodalPointLoads() : Input
      • readSeismicData() : Input
      • resetNodalValues() : Update
      @@ -268,7 +267,6 @@

      - r -

        - s -

        • saveParticleStress() : States
        • -
        • seismicRecord : Loads
        • setAxisymetricActive() : ModelSetup
        • setContactActive() : ModelSetup
        • setCriticalTimeStepMultiplier() : ModelSetup
        • diff --git a/docs/namespacemembers_func.html b/docs/namespacemembers_func.html index 20c1793..0f89dbc 100644 --- a/docs/namespacemembers_func.html +++ b/docs/namespacemembers_func.html @@ -160,6 +160,7 @@

          - g -

          • getMaterialList() : Input
          • getMeshBoundaryConditions() : Input
          • getMeshBoundaryConditionsFluid() : Input
          • +
          • getNodalPointList() : Loads
          • getNumberPhases() : Input
          • getNumThreads() : Input
          • getOrigin() : Input
          • @@ -229,7 +230,7 @@

            - p -

              - r -

              • readInputFile() : Input
              • -
              • readNodalPointLoads() : Input
              • +
              • readNodalPointLoads() : Input
              • readSeismicData() : Input
              • resetNodalValues() : Update
              diff --git a/docs/namespaces_dup.js b/docs/namespaces_dup.js index 9082b5b..51eee76 100644 --- a/docs/namespaces_dup.js +++ b/docs/namespaces_dup.js @@ -39,7 +39,7 @@ var namespaces_dup = [ "getSolver", "namespaceInput.html#a0aaddb07cda3d6c988f2c5db52bb488e", null ], [ "getTimeStep", "namespaceInput.html#a62b6f277358d9dd6b95f39001e12bae4", null ], [ "readInputFile", "namespaceInput.html#abb1fa3d31849a7acf80a9796da0242b0", null ], - [ "readNodalPointLoads", "namespaceInput.html#a03717b6bc9fdd8cfc5eccb3e4fcebe73", null ], + [ "readNodalPointLoads", "namespaceInput.html#a4af9571f7842a96471572cd550d598a9", null ], [ "readSeismicData", "namespaceInput.html#ab7aeff2285506645ef6c121dec4a0d44", null ] ] ], [ "Integration", "namespaceIntegration.html", [ diff --git a/docs/navtreedata.js b/docs/navtreedata.js index 3f3a950..6131be1 100644 --- a/docs/navtreedata.js +++ b/docs/navtreedata.js @@ -34,16 +34,34 @@ var NAVTREE = ] ], [ "Documentation", "index.html#program_documentation", null ], [ "Execution", "index.html#program_execution", null ], - [ "Theory manual", "program_theory_manual.html", [ - [ "References", "program_theory_manual.html#autotoc_md58", null ] + [ "Theory and Numerical Formulation", "theory_and_numerical_formulation_.html", [ + [ "Introduction to the Material Point Method (MPM)", "theory_and_numerical_formulation_.html#autotoc_md50", null ], + [ "MPM Formulation", "theory_and_numerical_formulation_.html#autotoc_md51", null ], + [ "Explicit MPM integration", "theory_and_numerical_formulation_.html#autotoc_md52", null ], + [ "Central difference Method", "theory_and_numerical_formulation_.html#autotoc_md53", null ], + [ "Numerical implementation", "theory_and_numerical_formulation_.html#autotoc_md54", null ], + [ "Stability Requirement", "theory_and_numerical_formulation_.html#autotoc_md55", null ], + [ "Explicit MPM Scheme", "theory_and_numerical_formulation_.html#autotoc_md56", null ], + [ "Update Stress First - USF - Scheme", "theory_and_numerical_formulation_.html#autotoc_md57", null ], + [ "Update Stress Last - USL - Scheme", "theory_and_numerical_formulation_.html#autotoc_md58", null ], + [ "Modified Update Stress Last - MUSL - Scheme", "theory_and_numerical_formulation_.html#autotoc_md59", null ], + [ "References", "theory_and_numerical_formulation_.html#autotoc_md60", null ] + ] ], + [ "Verification problems", "verification_problems.html", [ + [ "Bousssinesq's problem", "verification_problems.html#autotoc_md61", [ + [ "Introduction", "verification_problems.html#autotoc_md62", null ], + [ "Analytical solution", "verification_problems.html#autotoc_md63", null ], + [ "MPM model and result comparison", "verification_problems.html#autotoc_md64", null ] + ] ], + [ "Base acceleration example", "verification_problems.html#autotoc_md65", [ + [ "MPM-Model", "verification_problems.html#autotoc_md66", null ] + ] ] ] ], - [ "Tutorial manual", "program_tutorial_manual.html", null ], [ "Namespaces", "namespaces.html", [ [ "Namespace List", "namespaces.html", "namespaces_dup" ], [ "Namespace Members", "namespacemembers.html", [ [ "All", "namespacemembers.html", null ], [ "Functions", "namespacemembers_func.html", null ], - [ "Variables", "namespacemembers_vars.html", null ], [ "Enumerations", "namespacemembers_enum.html", null ], [ "Enumerator", "namespacemembers_eval.html", null ] ] ] @@ -73,10 +91,10 @@ var NAVTREE = var NAVTREEINDEX = [ "BodyCuboid_8h.html", -"classBody.html#aa71e9b9b576b1ae73e2baebd86bf71ca", -"classNode.html#a1b1d61e14d6c1a21f1b1f1bca435a861", -"functions_func_~.html", -"structLoads_1_1PrescribedPorePressure.html#af85a3a72657c866a5482271be93f4d76" +"classBody.html#abbc57798cc4a6292f9dfb4a9b7310a35", +"classNode.html#a1c9442fd5fde01803a0a13aa965785b1", +"functions_h.html", +"structLoads_1_1PressureBoundaryForceBox.html#af1d35221a761797bbf9cc542e73d4cb0" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/docs/navtreeindex0.js b/docs/navtreeindex0.js index 7dffaa7..8c3b054 100644 --- a/docs/navtreeindex0.js +++ b/docs/navtreeindex0.js @@ -31,7 +31,6 @@ var NAVTREEINDEX0 = "Geometry_8h_source.html":[10,0,0,10], "Input_8h.html":[10,0,0,11], "Input_8h.html#a00c5fbc06a1e394dd1621ac86d97a5c2":[10,0,0,11,15], -"Input_8h.html#a03717b6bc9fdd8cfc5eccb3e4fcebe73":[10,0,0,11,30], "Input_8h.html#a07964090a615a8b6ded303e5142dcad0":[10,0,0,11,18], "Input_8h.html#a0aaddb07cda3d6c988f2c5db52bb488e":[10,0,0,11,27], "Input_8h.html#a0da20030f4b1bd89c34a217fc7734296":[10,0,0,11,14], @@ -41,6 +40,7 @@ var NAVTREEINDEX0 = "Input_8h.html#a38dd844d4e499c46c0e7530a83939fb4":[10,0,0,11,13], "Input_8h.html#a439b092b2d3d47fab42c5de5fa494a67":[10,0,0,11,12], "Input_8h.html#a4855a7486e30198da32c4b2c5cc31379":[10,0,0,11,8], +"Input_8h.html#a4af9571f7842a96471572cd550d598a9":[10,0,0,11,30], "Input_8h.html#a4eeba9dd74dc17cee6267ba774ca8a78":[10,0,0,11,16], "Input_8h.html#a5bf735c8349c8f8e8498d4759b537346":[10,0,0,11,3], "Input_8h.html#a5de246ace76db47015f0af32c9e7eea6":[10,0,0,11,23], @@ -83,20 +83,18 @@ var NAVTREEINDEX0 = "Interpolation_8h.html#ada191e99fa8bd78e8274a4316b8e24a4":[10,0,0,13,7], "Interpolation_8h_source.html":[10,0,0,13], "Loads_8h.html":[10,0,0,14], -"Loads_8h.html#a1a2299651bd04336c8233e10785aca1b":[10,0,0,14,9], -"Loads_8h.html#a2f4cbf0274418e75675e0f07616538d4":[10,0,0,14,13], -"Loads_8h.html#a6f957fba555640cd03240c65124a35c2":[10,0,0,14,17], +"Loads_8h.html#a1a2299651bd04336c8233e10785aca1b":[10,0,0,14,10], +"Loads_8h.html#a2f4cbf0274418e75675e0f07616538d4":[10,0,0,14,14], +"Loads_8h.html#a67971878871ece27ff54401ffcd9a5ff":[10,0,0,14,8], +"Loads_8h.html#a6f957fba555640cd03240c65124a35c2":[10,0,0,14,18], "Loads_8h.html#a70b671a26b22a970ebdb930b2c43a505":[10,0,0,14,7], -"Loads_8h.html#a7863042b1bc1dad916b60d4f7aec821e":[10,0,0,14,18], -"Loads_8h.html#a9d91d188d9343c0d4b35705604b6b3d1":[10,0,0,14,12], -"Loads_8h.html#aab3e0ec525ab42f967dc058e7d057dde":[10,0,0,14,14], -"Loads_8h.html#ab43ba822ff0a2657155f8819db1a36b8":[10,0,0,14,11], -"Loads_8h.html#ab69a7f18bdaf04c6fd6197f465ac9446":[10,0,0,14,10], -"Loads_8h.html#ab8f15227c16f8394a08a4d3586f80e11":[10,0,0,14,16], -"Loads_8h.html#ac2794cc202d1527d21f610dd1bfc4310":[10,0,0,14,8], -"Loads_8h.html#ad8a3ae1d06dccc3acb90569960068461":[10,0,0,14,19], -"Loads_8h.html#af688d48cc51e2b6005d0088502120c55":[10,0,0,14,15], -"Loads_8h.html#afe9be730a82af1e03b57cc4906e4931d":[10,0,0,14,20], +"Loads_8h.html#a9d91d188d9343c0d4b35705604b6b3d1":[10,0,0,14,13], +"Loads_8h.html#aab3e0ec525ab42f967dc058e7d057dde":[10,0,0,14,15], +"Loads_8h.html#ab43ba822ff0a2657155f8819db1a36b8":[10,0,0,14,12], +"Loads_8h.html#ab69a7f18bdaf04c6fd6197f465ac9446":[10,0,0,14,11], +"Loads_8h.html#ab8f15227c16f8394a08a4d3586f80e11":[10,0,0,14,17], +"Loads_8h.html#ac2794cc202d1527d21f610dd1bfc4310":[10,0,0,14,9], +"Loads_8h.html#af688d48cc51e2b6005d0088502120c55":[10,0,0,14,16], "Loads_8h_source.html":[10,0,0,14], "MPM_8h.html":[10,0,0,16], "MPM_8h_source.html":[10,0,0,16], @@ -249,5 +247,7 @@ var NAVTREEINDEX0 = "classBody.html#a6de1624a7d45c11479318ae05d1eb998":[9,0,1,13], "classBody.html#a7727b0d8c998bbc2942e4c802e31e2eb":[9,0,1,0], "classBody.html#a8dea09ffc5c222b5d7bd623963dc6b26":[9,0,1,12], -"classBody.html#aa063e3828f4cfad904a361bce338e6fd":[9,0,1,9] +"classBody.html#aa063e3828f4cfad904a361bce338e6fd":[9,0,1,9], +"classBody.html#aa71e9b9b576b1ae73e2baebd86bf71ca":[9,0,1,11], +"classBody.html#aae40538ae00bb501c58729ee35c762b1":[9,0,1,7] }; diff --git a/docs/navtreeindex1.js b/docs/navtreeindex1.js index 8abc5f6..b1a93cf 100644 --- a/docs/navtreeindex1.js +++ b/docs/navtreeindex1.js @@ -1,7 +1,5 @@ var NAVTREEINDEX1 = { -"classBody.html#aa71e9b9b576b1ae73e2baebd86bf71ca":[9,0,1,11], -"classBody.html#aae40538ae00bb501c58729ee35c762b1":[9,0,1,7], "classBody.html#abbc57798cc4a6292f9dfb4a9b7310a35":[9,0,1,3], "classBody.html#abe1c4da65568cf7978b6247affc461e3":[9,0,1,1], "classBody.html#adeebf050ecfea622372a780b21b56b99":[9,0,1,10], @@ -248,6 +246,8 @@ var NAVTREEINDEX1 = "classMohrCoulomb_1_1Softening.html#ab0a9e1e505a3458ccccc6c0979f0eb50a73d78f925d0bdd33349cfe7ec42b7067":[9,0,13,0,0,0], "classMohrCoulomb_1_1Softening.html#ad4ee561e3ff9a65f09bb58881443b752":[9,0,13,0,10], "classMohrCoulomb_1_1Softening.html#ad911e563f41d0eda74e999666e2dab79":[9,0,13,0,8], -"classNode.html":[9,0,15], -"classNode.html#a04d6761bf0ead66eb628a6ef5abc34e1":[9,0,15,13] +"classNode.html":[9,0,16], +"classNode.html#a04d6761bf0ead66eb628a6ef5abc34e1":[9,0,16,13], +"classNode.html#a1b1d61e14d6c1a21f1b1f1bca435a861":[9,0,16,43], +"classNode.html#a1beeb10273f0b88112508a2e31a72f77":[9,0,16,38] }; diff --git a/docs/navtreeindex2.js b/docs/navtreeindex2.js index c428f76..bb8e734 100644 --- a/docs/navtreeindex2.js +++ b/docs/navtreeindex2.js @@ -1,222 +1,220 @@ var NAVTREEINDEX2 = { -"classNode.html#a1b1d61e14d6c1a21f1b1f1bca435a861":[9,0,15,43], -"classNode.html#a1beeb10273f0b88112508a2e31a72f77":[9,0,15,38], -"classNode.html#a1c9442fd5fde01803a0a13aa965785b1":[9,0,15,9], -"classNode.html#a1e2717f38550e744950192866c31a8c7":[9,0,15,45], -"classNode.html#a21ce3d4ae3b97df7b304cc993a2f28a5":[9,0,15,18], -"classNode.html#a2c5e1e80ace265d6da48dad9aaf0e540":[9,0,15,35], -"classNode.html#a2c6c49ca63e7eab7c9fed4c6c3fa2d10":[9,0,15,15], -"classNode.html#a302b87a90c5372faaabc07077bb2ab74":[9,0,15,34], -"classNode.html#a350397d630da4bfeb1fe902cb313e032":[9,0,15,6], -"classNode.html#a3a6732612ff5d0792b366bc460c96332":[9,0,15,4], -"classNode.html#a53ec4cc9f72890708bb0c0f7383723a7":[9,0,15,23], -"classNode.html#a55ae8f3711013106e6a3c3b296b18064":[9,0,15,10], -"classNode.html#a59a543130a10c95f1e8642cf8c5645e8":[9,0,15,40], -"classNode.html#a5b1560f9d7c52bfd84307901f6c35cac":[9,0,15,24], -"classNode.html#a60b404929eedeb80a5dc08acbc6581bc":[9,0,15,12], -"classNode.html#a63e510fc9158eb15e751861bc14eae38":[9,0,15,42], -"classNode.html#a6aad417d1f5ec1d2fde9bb1f4fcac0d8":[9,0,15,33], -"classNode.html#a6c3295811049aff64ebd601631c51547":[9,0,15,30], -"classNode.html#a70b7d017e7bd873fe609ea8b52a076b1":[9,0,15,31], -"classNode.html#a8666ff4a58d2b5dabb5888e9d1f13e61":[9,0,15,29], -"classNode.html#a8e7151c308023adb0b02ec7a92fcf96e":[9,0,15,21], -"classNode.html#a90401f485130847a8ffbd65f523c5d0d":[9,0,15,5], -"classNode.html#a91d7308aad82438b38a6873f510b5414":[9,0,15,7], -"classNode.html#a924e2f81d6f9788fd5a3e35dfe8c6ae6":[9,0,15,37], -"classNode.html#a9f86329e8fb9d0bb3541929ba067088a":[9,0,15,36], -"classNode.html#aa023865c342f1997b21b93e6ba96c4f9":[9,0,15,27], -"classNode.html#aa0840c3cb5c7159be6d992adecd2097c":[9,0,15,0], -"classNode.html#aa65615a901b5398866f1a79d510a4e23":[9,0,15,32], -"classNode.html#aa70186a4875893fd6f3556d54fd1f9eb":[9,0,15,16], -"classNode.html#aa85c7563e9ab15e7623e8d691141436e":[9,0,15,39], -"classNode.html#aae0de7d437f4fc0cb2f2be77bbe38485":[9,0,15,26], -"classNode.html#ab06a209d998e817f6f93590436aece9d":[9,0,15,44], -"classNode.html#ab0b570cbda3976aaa915d195889f5c20":[9,0,15,3], -"classNode.html#ab1f099daeae52f3d36a9fe0f873ae760":[9,0,15,41], -"classNode.html#ab36ad977b482adfba910741ddc7a60e9":[9,0,15,25], -"classNode.html#ac320e081db503169fdd0692652f1068b":[9,0,15,19], -"classNode.html#ad00bf8da3f5e09a12611372f62abef94":[9,0,15,11], -"classNode.html#ad3c0efe56d0b846ecc227ade440c9b8b":[9,0,15,22], -"classNode.html#ad7a34779cad45d997bfd6d3d8043c75f":[9,0,15,1], -"classNode.html#ad9191309b6f3de3656ddf2406994655c":[9,0,15,2], -"classNode.html#adc6af862a33e6666cfd07cff4cf8af07":[9,0,15,17], -"classNode.html#ae5713ceca5084a47541fa33f66388df4":[9,0,15,14], -"classNode.html#ae77b0da9a154817cefbc5abeb916b2b9":[9,0,15,8], -"classNode.html#af0f070af29863267e0fee976a257ccfe":[9,0,15,28], -"classNode.html#af74452116f78270ffaecf54506d8c89d":[9,0,15,20], -"classNodeMixture.html":[9,0,16], -"classNodeMixture.html#a1007b744f9386c1d22d8d223eb22b3ba":[9,0,16,2], -"classNodeMixture.html#a152b0a3f69e5e7a65546100923f3e0c5":[9,0,16,18], -"classNodeMixture.html#a1d2b3be56436515c107a2cb2d7229a6b":[9,0,16,4], -"classNodeMixture.html#a23b1edb4bedd9aad69ae7e7a43cf66a9":[9,0,16,0], -"classNodeMixture.html#a2c2d410e8c9dc0366c801a8522bb2a36":[9,0,16,8], -"classNodeMixture.html#a2e7085f835158ceda0369818f452ba9c":[9,0,16,12], -"classNodeMixture.html#a2ef1c8b7238b49192e4f8a92f70a7358":[9,0,16,17], -"classNodeMixture.html#a46f48cb831d4020599972278eb8477da":[9,0,16,3], -"classNodeMixture.html#a4de17d48bf0c97df29343d847d60fba0":[9,0,16,10], -"classNodeMixture.html#a52bc800e0625674313bda9d740f9a8a8":[9,0,16,19], -"classNodeMixture.html#a5da23c1a3c0b73ce305c9d4e046776fb":[9,0,16,21], -"classNodeMixture.html#a695d28aac00c06ef2f45784a928ba44b":[9,0,16,11], -"classNodeMixture.html#a81ce62f4ebbd0cbe14280449b858c03f":[9,0,16,5], -"classNodeMixture.html#a9eab2f238d2c67c31771c55944ed4f13":[9,0,16,13], -"classNodeMixture.html#a9f03d78b443a26e66940622961c14ce8":[9,0,16,9], -"classNodeMixture.html#aa0b5ab9c750a79799002755a8059dbe6":[9,0,16,7], -"classNodeMixture.html#aa6560e3f773520ce6fca08c02b5006b7":[9,0,16,23], -"classNodeMixture.html#aa92a7e632617866fe6ceb0145d179ed5":[9,0,16,16], -"classNodeMixture.html#aad23b55c873ceefba5e3496f5ff6c8e2":[9,0,16,15], -"classNodeMixture.html#abc6558b0f778ec0c697cf950dd87aef7":[9,0,16,20], -"classNodeMixture.html#abf4787784c49c518287a0fea4d7b0242":[9,0,16,1], -"classNodeMixture.html#acf9ffdf17df8f2596f16e91be73c548b":[9,0,16,14], -"classNodeMixture.html#af885eeffcec845405e08123b9f1a020f":[9,0,16,6], -"classNodeMixture.html#afa2378b4573980b6e24cb205bf6c428a":[9,0,16,22], -"classParticle.html":[9,0,17], -"classParticle.html#a00d3031048e8e864eee4cdbbaa24a7dd":[9,0,17,30], -"classParticle.html#a01012a506a0bdaed27556853867f3b21":[9,0,17,57], -"classParticle.html#a03b4af101a14e8c5a6bf67619c986fc8":[9,0,17,73], -"classParticle.html#a04d1aea466feff57336a438cfae71231":[9,0,17,74], -"classParticle.html#a0501e3f8bb3cf37f332ee49d427bb220":[9,0,17,68], -"classParticle.html#a075c8d6a9a88ce318405cd6bd9e0bd43":[9,0,17,52], -"classParticle.html#a1055a8ebdce94daa1b153ec8c8c667bf":[9,0,17,63], -"classParticle.html#a14502eb877466209c0f515d7c1d463e4":[9,0,17,61], -"classParticle.html#a1666afe1f967eb0370cf5d0776f40c05":[9,0,17,27], -"classParticle.html#a18041c14383be1ba758b5b2a90fe7ce3":[9,0,17,6], -"classParticle.html#a19181317c922b138ed97256a5303db70":[9,0,17,44], -"classParticle.html#a1d1a0586e297c08bc3ca323684457e93":[9,0,17,35], -"classParticle.html#a27c7ef47d8781d568ac6316217292025":[9,0,17,41], -"classParticle.html#a2d2c909473d35b93e501969d474ade82":[9,0,17,67], -"classParticle.html#a35a700b673646077c6e6ce6929cddd16":[9,0,17,10], -"classParticle.html#a3766df64f15f5af3bbdc9cb13ff7b087":[9,0,17,36], -"classParticle.html#a3b836223594cf1e4dae5adbbe7337841":[9,0,17,20], -"classParticle.html#a3bfe32709cdbfe1ed5f762d6f007c922":[9,0,17,22], -"classParticle.html#a3dc609324003b98b25c38c2c5d28ec04":[9,0,17,12], -"classParticle.html#a419a5c9f21e3f11ec0a74d79102c56eb":[9,0,17,50], -"classParticle.html#a456025fac64d35e22d4d95fc389802dd":[9,0,17,28], -"classParticle.html#a4954712615601a01f84567b0768b4c0c":[9,0,17,15], -"classParticle.html#a49b197c3a37ad792289581d13f99bf1c":[9,0,17,4], -"classParticle.html#a4b48b561d53f13cb0fae00532231602a":[9,0,17,48], -"classParticle.html#a4f3e0f42d604d20fb03c14b2a7c4d9f2":[9,0,17,47], -"classParticle.html#a544b202775517f8ba05efcb9e0a21bee":[9,0,17,64], -"classParticle.html#a54622f0a31564803a507984fab6e6d89":[9,0,17,49], -"classParticle.html#a56a74940f51dff41d5f75cabe6bf5944":[9,0,17,32], -"classParticle.html#a58bb6267f20ebb153a1f0f0770ff6919":[9,0,17,69], -"classParticle.html#a590d07a2aec6c12674c4f5a0ebdf8ce2":[9,0,17,40], -"classParticle.html#a5fe20072f27ce8afac1656c9ae47a6fa":[9,0,17,38], -"classParticle.html#a600bee49f2f75657db31825292bde0e5":[9,0,17,8], -"classParticle.html#a61695ae77c9e8e9743fba4bcf490b492":[9,0,17,55], -"classParticle.html#a63fae0128b805bfd15c44292c40dcac2":[9,0,17,54], -"classParticle.html#a6766a701558c1679342e20e97f7f9f9e":[9,0,17,77], -"classParticle.html#a73a4154dfbae2e2787ef72c1bee83413":[9,0,17,58], -"classParticle.html#a76617b09e91ae3aadef09e0f092d0efb":[9,0,17,59], -"classParticle.html#a7743b85e38213e91946ecb1a66abbe67":[9,0,17,25], -"classParticle.html#a7ecb9afbcf4ff08695852a9c1beb4edc":[9,0,17,14], -"classParticle.html#a801ec7c7a54dbf073dabc71f6cc5d7e8":[9,0,17,9], -"classParticle.html#a815c15877edeff99e6cc8fc2435c73b0":[9,0,17,19], -"classParticle.html#a9201a4d681f8d78736c4bd4d69576189":[9,0,17,62], -"classParticle.html#a940bb260057927113c3c754c3db8e33a":[9,0,17,65], -"classParticle.html#a94c4c791c7fb18948032776f4738db1f":[9,0,17,17], -"classParticle.html#a96f2113c3c415106dac25a83a8d77d2f":[9,0,17,70], -"classParticle.html#a9fd18507abe7466d48bd16834250090f":[9,0,17,5], -"classParticle.html#aa721746149646b6bd0d58a9a11a3cfae":[9,0,17,45], -"classParticle.html#aab98fcabb948efaeaffb28fd780fae47":[9,0,17,39], -"classParticle.html#ab21cccee8497c94ff2b368cd773c6921":[9,0,17,51], -"classParticle.html#ab28c6d72256756c86db86c1115532364":[9,0,17,34], -"classParticle.html#ab31cc3425ed0782e5962a8f75f7b0264":[9,0,17,60], -"classParticle.html#ab7ac91774de19cbdc0e63ffc4ab94f41":[9,0,17,3], -"classParticle.html#abbe1236f82de2d4bf0a2f566fb844303":[9,0,17,56], -"classParticle.html#ac25ec8c3c91cc45dfa9cc2618f8d845b":[9,0,17,33], -"classParticle.html#ac31838bdfc87d31f053856798c873ce8":[9,0,17,24], -"classParticle.html#ac3e5204bd87ea498f93bc09ca77c87a1":[9,0,17,26], -"classParticle.html#ac53dcece68a15f54cead8e42b31282c4":[9,0,17,29], -"classParticle.html#ac859ff7588937a807597db15412e2fba":[9,0,17,53], -"classParticle.html#ac86c3b07d386fdb7ea01077990e33f35":[9,0,17,37], -"classParticle.html#ac91045f938c0a55a031415b01f02ae5d":[9,0,17,71], -"classParticle.html#ace7b7a8ac6a5c7870fe8772d1bc5c1bf":[9,0,17,0], -"classParticle.html#ad030d0fe7b88cf81744b127c99244ff4":[9,0,17,1], -"classParticle.html#ad08e7b1d0cc7cb17bd0602caa4a22bc6":[9,0,17,18], -"classParticle.html#ad6613d478bf8576a76d3715b517f2b71":[9,0,17,76], -"classParticle.html#adaace23c5ca9a9c91bcfe1e0fa137ade":[9,0,17,13], -"classParticle.html#ae36bfef1c3f20a42a0dc307120b516a9":[9,0,17,42], -"classParticle.html#ae3c7d0067952d3434374e96e532f6329":[9,0,17,16], -"classParticle.html#ae3fb1517d3063132d77db2e2003a379b":[9,0,17,2], -"classParticle.html#ae650204d58d8f07be1fe26a4f199aeff":[9,0,17,7], -"classParticle.html#ae6d46dc24a6666d526f211151fecca5f":[9,0,17,66], -"classParticle.html#ae6fa15dff7c834648389b1c050327952":[9,0,17,46], -"classParticle.html#aef6cca2f088e07823c8b093b684f62a3":[9,0,17,43], -"classParticle.html#aef9b85bf1fe98da9d0d195f8545604ab":[9,0,17,23], -"classParticle.html#af14ff528876e9d128baf6bc16eb92947":[9,0,17,72], -"classParticle.html#af890c2e192b2a0978e46b878b3d11c20":[9,0,17,21], -"classParticle.html#afa22020e9c44e9e846baa6c75b39073e":[9,0,17,31], -"classParticle.html#afb7d35157679a6b5f50daebe4ac396da":[9,0,17,75], -"classParticle.html#afdc8a82367efdc31687ba36341866947":[9,0,17,11], -"classParticleMixture.html":[9,0,18], -"classParticleMixture.html#a0825b472125de1206c35499f5c0b4cd0":[9,0,18,16], -"classParticleMixture.html#a097ed7e9bae80879977b1fc81ff6fd04":[9,0,18,6], -"classParticleMixture.html#a0aca84b37c315255a1a68a2ae8a7e789":[9,0,18,15], -"classParticleMixture.html#a13050211cbbcf2e0e22396a0f6de0242":[9,0,18,1], -"classParticleMixture.html#a2acf72214181ddc76d75c79c5f57b204":[9,0,18,5], -"classParticleMixture.html#a340869f830ea205ef01c6dcebc1a5a8b":[9,0,18,27], -"classParticleMixture.html#a34d47cad48c4ae77ab065a049d926b35":[9,0,18,3], -"classParticleMixture.html#a35c1feba3014d4ec9dc4c09989b49385":[9,0,18,13], -"classParticleMixture.html#a5cfe0ee39b37c378bc5576b71507bd74":[9,0,18,8], -"classParticleMixture.html#a68b403be60f9522c7660724ec356244c":[9,0,18,7], -"classParticleMixture.html#a74a05cf95f6be86befba9736659cf145":[9,0,18,4], -"classParticleMixture.html#a74ccc525e1b7d70492fe754902b5830b":[9,0,18,24], -"classParticleMixture.html#a850940942bdf74e62cc57187afd0c0f4":[9,0,18,10], -"classParticleMixture.html#a89bf8a2a0aa041754e93f3c8a023c5d3":[9,0,18,21], -"classParticleMixture.html#a8f722adda4db0481f5a6f1890d75bbd6":[9,0,18,25], -"classParticleMixture.html#a9528f79374f7190ac8df198ebbacb2ad":[9,0,18,14], -"classParticleMixture.html#aa3a4562ad105e9e87fac52b901087d3c":[9,0,18,9], -"classParticleMixture.html#aa8d07cea4574806c878b28c2f77bdaff":[9,0,18,2], -"classParticleMixture.html#aab86e5a98f13579a7406f34ab690afb0":[9,0,18,26], -"classParticleMixture.html#ac8423fea0174c71ac288e90e5e06b218":[9,0,18,23], -"classParticleMixture.html#ac8ff0b6d45ac55d1229ebaa4f709ba34":[9,0,18,22], -"classParticleMixture.html#ad17fbdee80bd68ba0e40be84cc7e16c6":[9,0,18,19], -"classParticleMixture.html#ad618b6c911f06f733ea0eb525da58185":[9,0,18,12], -"classParticleMixture.html#ae1f39f5cbd84c2fa418b36dc596e3f44":[9,0,18,0], -"classParticleMixture.html#ae78ffa45e8742c36cc91730792fd708c":[9,0,18,20], -"classParticleMixture.html#ae8dabce1a47bbdaa742b2ef606e65722":[9,0,18,17], -"classParticleMixture.html#aeddecf86a6b91ff4927548a07d8297b5":[9,0,18,18], -"classParticleMixture.html#af480837a21f9ad597c5b69933d328b2c":[9,0,18,28], -"classParticleMixture.html#af82045f902557d5e0587eab3f0a3337e":[9,0,18,11], -"classShape.html":[9,0,19], -"classShape.html#a10b65baa1ed15db3745d51e0335413e7":[9,0,19,4], -"classShape.html#a26e6bcdd3b784ea4290eb2be499f8365":[9,0,19,5], -"classShape.html#a4138141844ab195b717308dc41c0dbde":[9,0,19,7], -"classShape.html#a7cba38625675fd8164bc53319386dd51":[9,0,19,9], -"classShape.html#a821108891fd1b3d8a51895d04259b9f1":[9,0,19,3], -"classShape.html#a935afc9e576015f967d90de56977167d":[9,0,19,1], -"classShape.html#aaa8d87171e65e0d8ba3c5459978992a7":[9,0,19,0], -"classShape.html#ac44c4dc52e9288f5dffe0b046c581a5a":[9,0,19,8], -"classShape.html#ace2d591e1020c4d4a0cee59c65340b2c":[9,0,19,2], -"classShape.html#adb4b6723c26b955fc5e64b2a66b23a09":[9,0,19,6], -"classShape.html#ae9eb272ab1a2afec7d26bbe905c18f70":[9,0,19,10], -"classShapeGimp.html":[9,0,20], -"classShapeGimp.html#a4b85d16c96fff5c3b75b01ec842abd6d":[9,0,20,1], -"classShapeGimp.html#a6b9bf93afe40d0b02249cfffeb35b1f2":[9,0,20,3], -"classShapeGimp.html#ad04d2a67e6e5c04eb47595fa9f7b2cc3":[9,0,20,4], -"classShapeGimp.html#adb78ffeecad3599a8ba58d550bf8b45b":[9,0,20,0], -"classShapeGimp.html#aec66a5261e3b4dcc6895eebfa0457912":[9,0,20,2], -"classShapeLinear.html":[9,0,21], -"classShapeLinear.html#a1137ab91000c6a9da0d52bdb76733f7c":[9,0,21,1], -"classShapeLinear.html#a5aa2c2710b253785549a49b0ab9df6fb":[9,0,21,2], -"classShapeLinear.html#a612ba26abe97a3c028f956c7e1c961c2":[9,0,21,4], -"classShapeLinear.html#a8e6a7e7e501e2fdaab1825480cb561d2":[9,0,21,3], -"classShapeLinear.html#ac8ab5c3e766f6fb707243d0f10e2cc2a":[9,0,21,0], -"classSolver.html":[9,0,22], -"classSolver.html#a119ea70a054a7ad5cb7b2130fd6917a4":[9,0,22,2], -"classSolver.html#a4f378b422f47c030d17131db0b373324":[9,0,22,4], -"classSolver.html#a5ea32c377f50d8f7b3f8725ebb4bf71a":[9,0,22,3], -"classSolver.html#a9b516765134fb4193329639761924cf7":[9,0,22,6], -"classSolver.html#a9dfe7ae9ce617e8a6398be34284c907a":[9,0,22,0], -"classSolver.html#aba52d3c92fafceb6fe39f937f2d73db3":[9,0,22,1], -"classSolver.html#ae69d529fe554b2ca852ce3dfeb79315b":[9,0,22,5], -"classSolverExplicitTwoPhaseUSL.html":[9,0,23], -"classSolverExplicitTwoPhaseUSL.html#a29f4ca83127d070c62cd875f96b03ffa":[9,0,23,1], -"classSolverExplicitTwoPhaseUSL.html#a381a5831c43caad21fbabc2180bed948":[9,0,23,0], -"classSolverExplicitUSL.html":[9,0,24], -"classSolverExplicitUSL.html#a2be717fa0b2c45c89acbf3eccefb3678":[9,0,24,1], -"classSolverExplicitUSL.html#aca4dd211a150a412333ca491ca9fce3d":[9,0,24,0], +"classNode.html#a1c9442fd5fde01803a0a13aa965785b1":[9,0,16,9], +"classNode.html#a1e2717f38550e744950192866c31a8c7":[9,0,16,45], +"classNode.html#a21ce3d4ae3b97df7b304cc993a2f28a5":[9,0,16,18], +"classNode.html#a2c5e1e80ace265d6da48dad9aaf0e540":[9,0,16,35], +"classNode.html#a2c6c49ca63e7eab7c9fed4c6c3fa2d10":[9,0,16,15], +"classNode.html#a302b87a90c5372faaabc07077bb2ab74":[9,0,16,34], +"classNode.html#a350397d630da4bfeb1fe902cb313e032":[9,0,16,6], +"classNode.html#a3a6732612ff5d0792b366bc460c96332":[9,0,16,4], +"classNode.html#a53ec4cc9f72890708bb0c0f7383723a7":[9,0,16,23], +"classNode.html#a55ae8f3711013106e6a3c3b296b18064":[9,0,16,10], +"classNode.html#a59a543130a10c95f1e8642cf8c5645e8":[9,0,16,40], +"classNode.html#a5b1560f9d7c52bfd84307901f6c35cac":[9,0,16,24], +"classNode.html#a60b404929eedeb80a5dc08acbc6581bc":[9,0,16,12], +"classNode.html#a63e510fc9158eb15e751861bc14eae38":[9,0,16,42], +"classNode.html#a6aad417d1f5ec1d2fde9bb1f4fcac0d8":[9,0,16,33], +"classNode.html#a6c3295811049aff64ebd601631c51547":[9,0,16,30], +"classNode.html#a70b7d017e7bd873fe609ea8b52a076b1":[9,0,16,31], +"classNode.html#a8666ff4a58d2b5dabb5888e9d1f13e61":[9,0,16,29], +"classNode.html#a8e7151c308023adb0b02ec7a92fcf96e":[9,0,16,21], +"classNode.html#a90401f485130847a8ffbd65f523c5d0d":[9,0,16,5], +"classNode.html#a91d7308aad82438b38a6873f510b5414":[9,0,16,7], +"classNode.html#a924e2f81d6f9788fd5a3e35dfe8c6ae6":[9,0,16,37], +"classNode.html#a9f86329e8fb9d0bb3541929ba067088a":[9,0,16,36], +"classNode.html#aa023865c342f1997b21b93e6ba96c4f9":[9,0,16,27], +"classNode.html#aa0840c3cb5c7159be6d992adecd2097c":[9,0,16,0], +"classNode.html#aa65615a901b5398866f1a79d510a4e23":[9,0,16,32], +"classNode.html#aa70186a4875893fd6f3556d54fd1f9eb":[9,0,16,16], +"classNode.html#aa85c7563e9ab15e7623e8d691141436e":[9,0,16,39], +"classNode.html#aae0de7d437f4fc0cb2f2be77bbe38485":[9,0,16,26], +"classNode.html#ab06a209d998e817f6f93590436aece9d":[9,0,16,44], +"classNode.html#ab0b570cbda3976aaa915d195889f5c20":[9,0,16,3], +"classNode.html#ab1f099daeae52f3d36a9fe0f873ae760":[9,0,16,41], +"classNode.html#ab36ad977b482adfba910741ddc7a60e9":[9,0,16,25], +"classNode.html#ac320e081db503169fdd0692652f1068b":[9,0,16,19], +"classNode.html#ad00bf8da3f5e09a12611372f62abef94":[9,0,16,11], +"classNode.html#ad3c0efe56d0b846ecc227ade440c9b8b":[9,0,16,22], +"classNode.html#ad7a34779cad45d997bfd6d3d8043c75f":[9,0,16,1], +"classNode.html#ad9191309b6f3de3656ddf2406994655c":[9,0,16,2], +"classNode.html#adc6af862a33e6666cfd07cff4cf8af07":[9,0,16,17], +"classNode.html#ae5713ceca5084a47541fa33f66388df4":[9,0,16,14], +"classNode.html#ae77b0da9a154817cefbc5abeb916b2b9":[9,0,16,8], +"classNode.html#af0f070af29863267e0fee976a257ccfe":[9,0,16,28], +"classNode.html#af74452116f78270ffaecf54506d8c89d":[9,0,16,20], +"classNodeMixture.html":[9,0,17], +"classNodeMixture.html#a1007b744f9386c1d22d8d223eb22b3ba":[9,0,17,2], +"classNodeMixture.html#a152b0a3f69e5e7a65546100923f3e0c5":[9,0,17,18], +"classNodeMixture.html#a1d2b3be56436515c107a2cb2d7229a6b":[9,0,17,4], +"classNodeMixture.html#a23b1edb4bedd9aad69ae7e7a43cf66a9":[9,0,17,0], +"classNodeMixture.html#a2c2d410e8c9dc0366c801a8522bb2a36":[9,0,17,8], +"classNodeMixture.html#a2e7085f835158ceda0369818f452ba9c":[9,0,17,12], +"classNodeMixture.html#a2ef1c8b7238b49192e4f8a92f70a7358":[9,0,17,17], +"classNodeMixture.html#a46f48cb831d4020599972278eb8477da":[9,0,17,3], +"classNodeMixture.html#a4de17d48bf0c97df29343d847d60fba0":[9,0,17,10], +"classNodeMixture.html#a52bc800e0625674313bda9d740f9a8a8":[9,0,17,19], +"classNodeMixture.html#a5da23c1a3c0b73ce305c9d4e046776fb":[9,0,17,21], +"classNodeMixture.html#a695d28aac00c06ef2f45784a928ba44b":[9,0,17,11], +"classNodeMixture.html#a81ce62f4ebbd0cbe14280449b858c03f":[9,0,17,5], +"classNodeMixture.html#a9eab2f238d2c67c31771c55944ed4f13":[9,0,17,13], +"classNodeMixture.html#a9f03d78b443a26e66940622961c14ce8":[9,0,17,9], +"classNodeMixture.html#aa0b5ab9c750a79799002755a8059dbe6":[9,0,17,7], +"classNodeMixture.html#aa6560e3f773520ce6fca08c02b5006b7":[9,0,17,23], +"classNodeMixture.html#aa92a7e632617866fe6ceb0145d179ed5":[9,0,17,16], +"classNodeMixture.html#aad23b55c873ceefba5e3496f5ff6c8e2":[9,0,17,15], +"classNodeMixture.html#abc6558b0f778ec0c697cf950dd87aef7":[9,0,17,20], +"classNodeMixture.html#abf4787784c49c518287a0fea4d7b0242":[9,0,17,1], +"classNodeMixture.html#acf9ffdf17df8f2596f16e91be73c548b":[9,0,17,14], +"classNodeMixture.html#af885eeffcec845405e08123b9f1a020f":[9,0,17,6], +"classNodeMixture.html#afa2378b4573980b6e24cb205bf6c428a":[9,0,17,22], +"classParticle.html":[9,0,18], +"classParticle.html#a00d3031048e8e864eee4cdbbaa24a7dd":[9,0,18,30], +"classParticle.html#a01012a506a0bdaed27556853867f3b21":[9,0,18,57], +"classParticle.html#a03b4af101a14e8c5a6bf67619c986fc8":[9,0,18,73], +"classParticle.html#a04d1aea466feff57336a438cfae71231":[9,0,18,74], +"classParticle.html#a0501e3f8bb3cf37f332ee49d427bb220":[9,0,18,68], +"classParticle.html#a075c8d6a9a88ce318405cd6bd9e0bd43":[9,0,18,52], +"classParticle.html#a1055a8ebdce94daa1b153ec8c8c667bf":[9,0,18,63], +"classParticle.html#a14502eb877466209c0f515d7c1d463e4":[9,0,18,61], +"classParticle.html#a1666afe1f967eb0370cf5d0776f40c05":[9,0,18,27], +"classParticle.html#a18041c14383be1ba758b5b2a90fe7ce3":[9,0,18,6], +"classParticle.html#a19181317c922b138ed97256a5303db70":[9,0,18,44], +"classParticle.html#a1d1a0586e297c08bc3ca323684457e93":[9,0,18,35], +"classParticle.html#a27c7ef47d8781d568ac6316217292025":[9,0,18,41], +"classParticle.html#a2d2c909473d35b93e501969d474ade82":[9,0,18,67], +"classParticle.html#a35a700b673646077c6e6ce6929cddd16":[9,0,18,10], +"classParticle.html#a3766df64f15f5af3bbdc9cb13ff7b087":[9,0,18,36], +"classParticle.html#a3b836223594cf1e4dae5adbbe7337841":[9,0,18,20], +"classParticle.html#a3bfe32709cdbfe1ed5f762d6f007c922":[9,0,18,22], +"classParticle.html#a3dc609324003b98b25c38c2c5d28ec04":[9,0,18,12], +"classParticle.html#a419a5c9f21e3f11ec0a74d79102c56eb":[9,0,18,50], +"classParticle.html#a456025fac64d35e22d4d95fc389802dd":[9,0,18,28], +"classParticle.html#a4954712615601a01f84567b0768b4c0c":[9,0,18,15], +"classParticle.html#a49b197c3a37ad792289581d13f99bf1c":[9,0,18,4], +"classParticle.html#a4b48b561d53f13cb0fae00532231602a":[9,0,18,48], +"classParticle.html#a4f3e0f42d604d20fb03c14b2a7c4d9f2":[9,0,18,47], +"classParticle.html#a544b202775517f8ba05efcb9e0a21bee":[9,0,18,64], +"classParticle.html#a54622f0a31564803a507984fab6e6d89":[9,0,18,49], +"classParticle.html#a56a74940f51dff41d5f75cabe6bf5944":[9,0,18,32], +"classParticle.html#a58bb6267f20ebb153a1f0f0770ff6919":[9,0,18,69], +"classParticle.html#a590d07a2aec6c12674c4f5a0ebdf8ce2":[9,0,18,40], +"classParticle.html#a5fe20072f27ce8afac1656c9ae47a6fa":[9,0,18,38], +"classParticle.html#a600bee49f2f75657db31825292bde0e5":[9,0,18,8], +"classParticle.html#a61695ae77c9e8e9743fba4bcf490b492":[9,0,18,55], +"classParticle.html#a63fae0128b805bfd15c44292c40dcac2":[9,0,18,54], +"classParticle.html#a6766a701558c1679342e20e97f7f9f9e":[9,0,18,77], +"classParticle.html#a73a4154dfbae2e2787ef72c1bee83413":[9,0,18,58], +"classParticle.html#a76617b09e91ae3aadef09e0f092d0efb":[9,0,18,59], +"classParticle.html#a7743b85e38213e91946ecb1a66abbe67":[9,0,18,25], +"classParticle.html#a7ecb9afbcf4ff08695852a9c1beb4edc":[9,0,18,14], +"classParticle.html#a801ec7c7a54dbf073dabc71f6cc5d7e8":[9,0,18,9], +"classParticle.html#a815c15877edeff99e6cc8fc2435c73b0":[9,0,18,19], +"classParticle.html#a9201a4d681f8d78736c4bd4d69576189":[9,0,18,62], +"classParticle.html#a940bb260057927113c3c754c3db8e33a":[9,0,18,65], +"classParticle.html#a94c4c791c7fb18948032776f4738db1f":[9,0,18,17], +"classParticle.html#a96f2113c3c415106dac25a83a8d77d2f":[9,0,18,70], +"classParticle.html#a9fd18507abe7466d48bd16834250090f":[9,0,18,5], +"classParticle.html#aa721746149646b6bd0d58a9a11a3cfae":[9,0,18,45], +"classParticle.html#aab98fcabb948efaeaffb28fd780fae47":[9,0,18,39], +"classParticle.html#ab21cccee8497c94ff2b368cd773c6921":[9,0,18,51], +"classParticle.html#ab28c6d72256756c86db86c1115532364":[9,0,18,34], +"classParticle.html#ab31cc3425ed0782e5962a8f75f7b0264":[9,0,18,60], +"classParticle.html#ab7ac91774de19cbdc0e63ffc4ab94f41":[9,0,18,3], +"classParticle.html#abbe1236f82de2d4bf0a2f566fb844303":[9,0,18,56], +"classParticle.html#ac25ec8c3c91cc45dfa9cc2618f8d845b":[9,0,18,33], +"classParticle.html#ac31838bdfc87d31f053856798c873ce8":[9,0,18,24], +"classParticle.html#ac3e5204bd87ea498f93bc09ca77c87a1":[9,0,18,26], +"classParticle.html#ac53dcece68a15f54cead8e42b31282c4":[9,0,18,29], +"classParticle.html#ac859ff7588937a807597db15412e2fba":[9,0,18,53], +"classParticle.html#ac86c3b07d386fdb7ea01077990e33f35":[9,0,18,37], +"classParticle.html#ac91045f938c0a55a031415b01f02ae5d":[9,0,18,71], +"classParticle.html#ace7b7a8ac6a5c7870fe8772d1bc5c1bf":[9,0,18,0], +"classParticle.html#ad030d0fe7b88cf81744b127c99244ff4":[9,0,18,1], +"classParticle.html#ad08e7b1d0cc7cb17bd0602caa4a22bc6":[9,0,18,18], +"classParticle.html#ad6613d478bf8576a76d3715b517f2b71":[9,0,18,76], +"classParticle.html#adaace23c5ca9a9c91bcfe1e0fa137ade":[9,0,18,13], +"classParticle.html#ae36bfef1c3f20a42a0dc307120b516a9":[9,0,18,42], +"classParticle.html#ae3c7d0067952d3434374e96e532f6329":[9,0,18,16], +"classParticle.html#ae3fb1517d3063132d77db2e2003a379b":[9,0,18,2], +"classParticle.html#ae650204d58d8f07be1fe26a4f199aeff":[9,0,18,7], +"classParticle.html#ae6d46dc24a6666d526f211151fecca5f":[9,0,18,66], +"classParticle.html#ae6fa15dff7c834648389b1c050327952":[9,0,18,46], +"classParticle.html#aef6cca2f088e07823c8b093b684f62a3":[9,0,18,43], +"classParticle.html#aef9b85bf1fe98da9d0d195f8545604ab":[9,0,18,23], +"classParticle.html#af14ff528876e9d128baf6bc16eb92947":[9,0,18,72], +"classParticle.html#af890c2e192b2a0978e46b878b3d11c20":[9,0,18,21], +"classParticle.html#afa22020e9c44e9e846baa6c75b39073e":[9,0,18,31], +"classParticle.html#afb7d35157679a6b5f50daebe4ac396da":[9,0,18,75], +"classParticle.html#afdc8a82367efdc31687ba36341866947":[9,0,18,11], +"classParticleMixture.html":[9,0,19], +"classParticleMixture.html#a0825b472125de1206c35499f5c0b4cd0":[9,0,19,16], +"classParticleMixture.html#a097ed7e9bae80879977b1fc81ff6fd04":[9,0,19,6], +"classParticleMixture.html#a0aca84b37c315255a1a68a2ae8a7e789":[9,0,19,15], +"classParticleMixture.html#a13050211cbbcf2e0e22396a0f6de0242":[9,0,19,1], +"classParticleMixture.html#a2acf72214181ddc76d75c79c5f57b204":[9,0,19,5], +"classParticleMixture.html#a340869f830ea205ef01c6dcebc1a5a8b":[9,0,19,27], +"classParticleMixture.html#a34d47cad48c4ae77ab065a049d926b35":[9,0,19,3], +"classParticleMixture.html#a35c1feba3014d4ec9dc4c09989b49385":[9,0,19,13], +"classParticleMixture.html#a5cfe0ee39b37c378bc5576b71507bd74":[9,0,19,8], +"classParticleMixture.html#a68b403be60f9522c7660724ec356244c":[9,0,19,7], +"classParticleMixture.html#a74a05cf95f6be86befba9736659cf145":[9,0,19,4], +"classParticleMixture.html#a74ccc525e1b7d70492fe754902b5830b":[9,0,19,24], +"classParticleMixture.html#a850940942bdf74e62cc57187afd0c0f4":[9,0,19,10], +"classParticleMixture.html#a89bf8a2a0aa041754e93f3c8a023c5d3":[9,0,19,21], +"classParticleMixture.html#a8f722adda4db0481f5a6f1890d75bbd6":[9,0,19,25], +"classParticleMixture.html#a9528f79374f7190ac8df198ebbacb2ad":[9,0,19,14], +"classParticleMixture.html#aa3a4562ad105e9e87fac52b901087d3c":[9,0,19,9], +"classParticleMixture.html#aa8d07cea4574806c878b28c2f77bdaff":[9,0,19,2], +"classParticleMixture.html#aab86e5a98f13579a7406f34ab690afb0":[9,0,19,26], +"classParticleMixture.html#ac8423fea0174c71ac288e90e5e06b218":[9,0,19,23], +"classParticleMixture.html#ac8ff0b6d45ac55d1229ebaa4f709ba34":[9,0,19,22], +"classParticleMixture.html#ad17fbdee80bd68ba0e40be84cc7e16c6":[9,0,19,19], +"classParticleMixture.html#ad618b6c911f06f733ea0eb525da58185":[9,0,19,12], +"classParticleMixture.html#ae1f39f5cbd84c2fa418b36dc596e3f44":[9,0,19,0], +"classParticleMixture.html#ae78ffa45e8742c36cc91730792fd708c":[9,0,19,20], +"classParticleMixture.html#ae8dabce1a47bbdaa742b2ef606e65722":[9,0,19,17], +"classParticleMixture.html#aeddecf86a6b91ff4927548a07d8297b5":[9,0,19,18], +"classParticleMixture.html#af480837a21f9ad597c5b69933d328b2c":[9,0,19,28], +"classParticleMixture.html#af82045f902557d5e0587eab3f0a3337e":[9,0,19,11], +"classShape.html":[9,0,20], +"classShape.html#a10b65baa1ed15db3745d51e0335413e7":[9,0,20,4], +"classShape.html#a26e6bcdd3b784ea4290eb2be499f8365":[9,0,20,5], +"classShape.html#a4138141844ab195b717308dc41c0dbde":[9,0,20,7], +"classShape.html#a7cba38625675fd8164bc53319386dd51":[9,0,20,9], +"classShape.html#a821108891fd1b3d8a51895d04259b9f1":[9,0,20,3], +"classShape.html#a935afc9e576015f967d90de56977167d":[9,0,20,1], +"classShape.html#aaa8d87171e65e0d8ba3c5459978992a7":[9,0,20,0], +"classShape.html#ac44c4dc52e9288f5dffe0b046c581a5a":[9,0,20,8], +"classShape.html#ace2d591e1020c4d4a0cee59c65340b2c":[9,0,20,2], +"classShape.html#adb4b6723c26b955fc5e64b2a66b23a09":[9,0,20,6], +"classShape.html#ae9eb272ab1a2afec7d26bbe905c18f70":[9,0,20,10], +"classShapeGimp.html":[9,0,21], +"classShapeGimp.html#a4b85d16c96fff5c3b75b01ec842abd6d":[9,0,21,1], +"classShapeGimp.html#a6b9bf93afe40d0b02249cfffeb35b1f2":[9,0,21,3], +"classShapeGimp.html#ad04d2a67e6e5c04eb47595fa9f7b2cc3":[9,0,21,4], +"classShapeGimp.html#adb78ffeecad3599a8ba58d550bf8b45b":[9,0,21,0], +"classShapeGimp.html#aec66a5261e3b4dcc6895eebfa0457912":[9,0,21,2], +"classShapeLinear.html":[9,0,22], +"classShapeLinear.html#a1137ab91000c6a9da0d52bdb76733f7c":[9,0,22,1], +"classShapeLinear.html#a5aa2c2710b253785549a49b0ab9df6fb":[9,0,22,2], +"classShapeLinear.html#a612ba26abe97a3c028f956c7e1c961c2":[9,0,22,4], +"classShapeLinear.html#a8e6a7e7e501e2fdaab1825480cb561d2":[9,0,22,3], +"classShapeLinear.html#ac8ab5c3e766f6fb707243d0f10e2cc2a":[9,0,22,0], +"classSolver.html":[9,0,23], +"classSolver.html#a119ea70a054a7ad5cb7b2130fd6917a4":[9,0,23,2], +"classSolver.html#a4f378b422f47c030d17131db0b373324":[9,0,23,4], +"classSolver.html#a5ea32c377f50d8f7b3f8725ebb4bf71a":[9,0,23,3], +"classSolver.html#a9b516765134fb4193329639761924cf7":[9,0,23,6], +"classSolver.html#a9dfe7ae9ce617e8a6398be34284c907a":[9,0,23,0], +"classSolver.html#aba52d3c92fafceb6fe39f937f2d73db3":[9,0,23,1], +"classSolver.html#ae69d529fe554b2ca852ce3dfeb79315b":[9,0,23,5], +"classSolverExplicitTwoPhaseUSL.html":[9,0,24], +"classSolverExplicitTwoPhaseUSL.html#a29f4ca83127d070c62cd875f96b03ffa":[9,0,24,1], +"classSolverExplicitTwoPhaseUSL.html#a381a5831c43caad21fbabc2180bed948":[9,0,24,0], +"classSolverExplicitUSL.html":[9,0,25], +"classSolverExplicitUSL.html#a2be717fa0b2c45c89acbf3eccefb3678":[9,0,25,1], +"classSolverExplicitUSL.html#aca4dd211a150a412333ca491ca9fce3d":[9,0,25,0], "classes.html":[9,1], "dir_326cfef2590dc603900f438a2dc715be.html":[10,0,1], "dir_508cbffc9888f29a0b75cd03909f2b66.html":[10,0,0,1], @@ -249,5 +247,7 @@ var NAVTREEINDEX2 = "functions_func_p.html":[9,3,1,9], "functions_func_r.html":[9,3,1,10], "functions_func_s.html":[9,3,1,11], -"functions_func_u.html":[9,3,1,12] +"functions_func_u.html":[9,3,1,12], +"functions_func_~.html":[9,3,1,13], +"functions_g.html":[9,3,0,6] }; diff --git a/docs/navtreeindex3.js b/docs/navtreeindex3.js index 51caaac..4bb0e9e 100644 --- a/docs/navtreeindex3.js +++ b/docs/navtreeindex3.js @@ -1,7 +1,5 @@ var NAVTREEINDEX3 = { -"functions_func_~.html":[9,3,1,13], -"functions_g.html":[9,3,0,6], "functions_h.html":[9,3,0,7], "functions_i.html":[9,3,0,8], "functions_l.html":[9,3,0,9], @@ -40,7 +38,6 @@ var NAVTREEINDEX3 = "namespaceGeometry.html#aee3f21b56e681e26dc13ff298064dafc":[8,0,1,2], "namespaceInput.html":[8,0,2], "namespaceInput.html#a00c5fbc06a1e394dd1621ac86d97a5c2":[8,0,2,14], -"namespaceInput.html#a03717b6bc9fdd8cfc5eccb3e4fcebe73":[8,0,2,29], "namespaceInput.html#a07964090a615a8b6ded303e5142dcad0":[8,0,2,17], "namespaceInput.html#a0aaddb07cda3d6c988f2c5db52bb488e":[8,0,2,26], "namespaceInput.html#a0da20030f4b1bd89c34a217fc7734296":[8,0,2,13], @@ -50,6 +47,7 @@ var NAVTREEINDEX3 = "namespaceInput.html#a38dd844d4e499c46c0e7530a83939fb4":[8,0,2,12], "namespaceInput.html#a439b092b2d3d47fab42c5de5fa494a67":[8,0,2,11], "namespaceInput.html#a4855a7486e30198da32c4b2c5cc31379":[8,0,2,7], +"namespaceInput.html#a4af9571f7842a96471572cd550d598a9":[8,0,2,29], "namespaceInput.html#a4eeba9dd74dc17cee6267ba774ca8a78":[8,0,2,15], "namespaceInput.html#a5bf735c8349c8f8e8498d4759b537346":[8,0,2,2], "namespaceInput.html#a5de246ace76db47015f0af32c9e7eea6":[8,0,2,22], @@ -88,20 +86,18 @@ var NAVTREEINDEX3 = "namespaceInterpolation.html#ad6b0c362a03102b2ffceb06039f46935":[8,0,4,8], "namespaceInterpolation.html#ada191e99fa8bd78e8274a4316b8e24a4":[8,0,4,7], "namespaceLoads.html":[8,0,5], -"namespaceLoads.html#a1a2299651bd04336c8233e10785aca1b":[8,0,5,9], -"namespaceLoads.html#a2f4cbf0274418e75675e0f07616538d4":[8,0,5,13], -"namespaceLoads.html#a6f957fba555640cd03240c65124a35c2":[8,0,5,17], +"namespaceLoads.html#a1a2299651bd04336c8233e10785aca1b":[8,0,5,10], +"namespaceLoads.html#a2f4cbf0274418e75675e0f07616538d4":[8,0,5,14], +"namespaceLoads.html#a67971878871ece27ff54401ffcd9a5ff":[8,0,5,8], +"namespaceLoads.html#a6f957fba555640cd03240c65124a35c2":[8,0,5,18], "namespaceLoads.html#a70b671a26b22a970ebdb930b2c43a505":[8,0,5,7], -"namespaceLoads.html#a7863042b1bc1dad916b60d4f7aec821e":[8,0,5,18], -"namespaceLoads.html#a9d91d188d9343c0d4b35705604b6b3d1":[8,0,5,12], -"namespaceLoads.html#aab3e0ec525ab42f967dc058e7d057dde":[8,0,5,14], -"namespaceLoads.html#ab43ba822ff0a2657155f8819db1a36b8":[8,0,5,11], -"namespaceLoads.html#ab69a7f18bdaf04c6fd6197f465ac9446":[8,0,5,10], -"namespaceLoads.html#ab8f15227c16f8394a08a4d3586f80e11":[8,0,5,16], -"namespaceLoads.html#ac2794cc202d1527d21f610dd1bfc4310":[8,0,5,8], -"namespaceLoads.html#ad8a3ae1d06dccc3acb90569960068461":[8,0,5,19], -"namespaceLoads.html#af688d48cc51e2b6005d0088502120c55":[8,0,5,15], -"namespaceLoads.html#afe9be730a82af1e03b57cc4906e4931d":[8,0,5,20], +"namespaceLoads.html#a9d91d188d9343c0d4b35705604b6b3d1":[8,0,5,13], +"namespaceLoads.html#aab3e0ec525ab42f967dc058e7d057dde":[8,0,5,15], +"namespaceLoads.html#ab43ba822ff0a2657155f8819db1a36b8":[8,0,5,12], +"namespaceLoads.html#ab69a7f18bdaf04c6fd6197f465ac9446":[8,0,5,11], +"namespaceLoads.html#ab8f15227c16f8394a08a4d3586f80e11":[8,0,5,17], +"namespaceLoads.html#ac2794cc202d1527d21f610dd1bfc4310":[8,0,5,9], +"namespaceLoads.html#af688d48cc51e2b6005d0088502120c55":[8,0,5,16], "namespaceModelSetup.html":[8,0,6], "namespaceModelSetup.html#a00e7195f09f9bd709ef76fce4eb77698":[8,0,6,0], "namespaceModelSetup.html#a00e7195f09f9bd709ef76fce4eb77698a26d01b79aba72ed5718e0346f5a2dfb8":[8,0,6,0,0], @@ -212,15 +208,11 @@ var NAVTREEINDEX3 = "namespaceWarning.html":[8,0,10], "namespaceWarning.html#a0dc7513a4b03d9790a79774ae3f900df":[8,0,10,0], "namespacemembers.html":[8,1,0], -"namespacemembers_enum.html":[8,1,3], -"namespacemembers_eval.html":[8,1,4], +"namespacemembers_enum.html":[8,1,2], +"namespacemembers_eval.html":[8,1,3], "namespacemembers_func.html":[8,1,1], -"namespacemembers_vars.html":[8,1,2], "namespaces.html":[8,0], "pages.html":[], -"program_theory_manual.html":[6], -"program_theory_manual.html#autotoc_md58":[6,0], -"program_tutorial_manual.html":[7], "structBoundary_1_1planeBoundary.html":[9,0,6,0], "structBoundary_1_1planeBoundary.html#a7927ae162c36d4744792b84fcce0a4b6":[9,0,6,0,1], "structBoundary_1_1planeBoundary.html#aab9db62139ab3f99259967e892aea84e":[9,0,6,0,0], @@ -234,14 +226,14 @@ var NAVTREEINDEX3 = "structLoads_1_1LoadDistributedBox.html#ad6e851b83ecd45a6a86c649530fa5378":[9,0,0,0,2], "structLoads_1_1LoadDistributedBox.html#af2bd873fd6cc0183b3d0724e9fd53a65":[8,0,5,0,1], "structLoads_1_1LoadDistributedBox.html#af2bd873fd6cc0183b3d0724e9fd53a65":[9,0,0,0,1], -"structLoads_1_1NodalPointLoad.html":[8,0,5,1], -"structLoads_1_1NodalPointLoad.html":[9,0,0,1], -"structLoads_1_1NodalPointLoad.html#a42952a45bee43182ca85b6a1486f7565":[8,0,5,1,0], -"structLoads_1_1NodalPointLoad.html#a42952a45bee43182ca85b6a1486f7565":[9,0,0,1,0], -"structLoads_1_1NodalPointLoad.html#a583d05b5202d730eb0b82b5037a8b5bb":[8,0,5,1,2], -"structLoads_1_1NodalPointLoad.html#a583d05b5202d730eb0b82b5037a8b5bb":[9,0,0,1,2], -"structLoads_1_1NodalPointLoad.html#ada67ac2a3723a1de108c5211e383b274":[8,0,5,1,1], -"structLoads_1_1NodalPointLoad.html#ada67ac2a3723a1de108c5211e383b274":[9,0,0,1,1], +"structLoads_1_1NodalPointLoadData.html":[8,0,5,1], +"structLoads_1_1NodalPointLoadData.html":[9,0,0,1], +"structLoads_1_1NodalPointLoadData.html#a14fd981401531322fd2572c17b3416f7":[8,0,5,1,1], +"structLoads_1_1NodalPointLoadData.html#a14fd981401531322fd2572c17b3416f7":[9,0,0,1,1], +"structLoads_1_1NodalPointLoadData.html#a1647ba0a8c8b3c98ce0de7a6f5ce77cb":[8,0,5,1,0], +"structLoads_1_1NodalPointLoadData.html#a1647ba0a8c8b3c98ce0de7a6f5ce77cb":[9,0,0,1,0], +"structLoads_1_1NodalPointLoadData.html#a3bcdea5f19060a2e3a9e516686f2606e":[8,0,5,1,2], +"structLoads_1_1NodalPointLoadData.html#a3bcdea5f19060a2e3a9e516686f2606e":[9,0,0,1,2], "structLoads_1_1PrescribedPorePressure.html":[8,0,5,2], "structLoads_1_1PrescribedPorePressure.html":[9,0,0,2], "structLoads_1_1PrescribedPorePressure.html#a306996afb77c490a0d9e3652b5bf2bc9":[8,0,5,2,1], @@ -249,5 +241,13 @@ var NAVTREEINDEX3 = "structLoads_1_1PrescribedPorePressure.html#a44996aedc022be846930199f8f39b94d":[8,0,5,2,2], "structLoads_1_1PrescribedPorePressure.html#a44996aedc022be846930199f8f39b94d":[9,0,0,2,2], "structLoads_1_1PrescribedPorePressure.html#a84f1720829d891bc3f82b494b6d02961":[8,0,5,2,3], -"structLoads_1_1PrescribedPorePressure.html#a84f1720829d891bc3f82b494b6d02961":[9,0,0,2,3] +"structLoads_1_1PrescribedPorePressure.html#a84f1720829d891bc3f82b494b6d02961":[9,0,0,2,3], +"structLoads_1_1PrescribedPorePressure.html#af85a3a72657c866a5482271be93f4d76":[8,0,5,2,0], +"structLoads_1_1PrescribedPorePressure.html#af85a3a72657c866a5482271be93f4d76":[9,0,0,2,0], +"structLoads_1_1PressureBoundaryForceBox.html":[8,0,5,3], +"structLoads_1_1PressureBoundaryForceBox.html":[9,0,0,3], +"structLoads_1_1PressureBoundaryForceBox.html#a39b27d9a96b7a71b2876a0d60d10b1ae":[8,0,5,3,2], +"structLoads_1_1PressureBoundaryForceBox.html#a39b27d9a96b7a71b2876a0d60d10b1ae":[9,0,0,3,2], +"structLoads_1_1PressureBoundaryForceBox.html#a51afd209b038225d90d2fbc9d9152bc5":[8,0,5,3,0], +"structLoads_1_1PressureBoundaryForceBox.html#a51afd209b038225d90d2fbc9d9152bc5":[9,0,0,3,0] }; diff --git a/docs/navtreeindex4.js b/docs/navtreeindex4.js index 49fe8fe..5b2bfee 100644 --- a/docs/navtreeindex4.js +++ b/docs/navtreeindex4.js @@ -1,13 +1,5 @@ var NAVTREEINDEX4 = { -"structLoads_1_1PrescribedPorePressure.html#af85a3a72657c866a5482271be93f4d76":[8,0,5,2,0], -"structLoads_1_1PrescribedPorePressure.html#af85a3a72657c866a5482271be93f4d76":[9,0,0,2,0], -"structLoads_1_1PressureBoundaryForceBox.html":[8,0,5,3], -"structLoads_1_1PressureBoundaryForceBox.html":[9,0,0,3], -"structLoads_1_1PressureBoundaryForceBox.html#a39b27d9a96b7a71b2876a0d60d10b1ae":[8,0,5,3,2], -"structLoads_1_1PressureBoundaryForceBox.html#a39b27d9a96b7a71b2876a0d60d10b1ae":[9,0,0,3,2], -"structLoads_1_1PressureBoundaryForceBox.html#a51afd209b038225d90d2fbc9d9152bc5":[8,0,5,3,0], -"structLoads_1_1PressureBoundaryForceBox.html#a51afd209b038225d90d2fbc9d9152bc5":[9,0,0,3,0], "structLoads_1_1PressureBoundaryForceBox.html#af1d35221a761797bbf9cc542e73d4cb0":[8,0,5,3,1], "structLoads_1_1PressureBoundaryForceBox.html#af1d35221a761797bbf9cc542e73d4cb0":[9,0,0,3,1], "structLoads_1_1PressureBox.html":[8,0,5,4], @@ -31,5 +23,25 @@ var NAVTREEINDEX4 = "structLoads_1_1SeismicData.html#a7bad550aec9970c15894c961572cd708":[8,0,5,6,1], "structLoads_1_1SeismicData.html#a7bad550aec9970c15894c961572cd708":[9,0,0,6,1], "structLoads_1_1SeismicData.html#a981c24f497a31813d49fec110c798f06":[8,0,5,6,2], -"structLoads_1_1SeismicData.html#a981c24f497a31813d49fec110c798f06":[9,0,0,6,2] +"structLoads_1_1SeismicData.html#a981c24f497a31813d49fec110c798f06":[9,0,0,6,2], +"structNodalPointLoad.html":[9,0,15], +"theory_and_numerical_formulation_.html":[6], +"theory_and_numerical_formulation_.html#autotoc_md50":[6,0], +"theory_and_numerical_formulation_.html#autotoc_md51":[6,1], +"theory_and_numerical_formulation_.html#autotoc_md52":[6,2], +"theory_and_numerical_formulation_.html#autotoc_md53":[6,3], +"theory_and_numerical_formulation_.html#autotoc_md54":[6,4], +"theory_and_numerical_formulation_.html#autotoc_md55":[6,5], +"theory_and_numerical_formulation_.html#autotoc_md56":[6,6], +"theory_and_numerical_formulation_.html#autotoc_md57":[6,7], +"theory_and_numerical_formulation_.html#autotoc_md58":[6,8], +"theory_and_numerical_formulation_.html#autotoc_md59":[6,9], +"theory_and_numerical_formulation_.html#autotoc_md60":[6,10], +"verification_problems.html":[7], +"verification_problems.html#autotoc_md61":[7,0], +"verification_problems.html#autotoc_md62":[7,0,0], +"verification_problems.html#autotoc_md63":[7,0,1], +"verification_problems.html#autotoc_md64":[7,0,2], +"verification_problems.html#autotoc_md65":[7,1], +"verification_problems.html#autotoc_md66":[7,1,0] }; diff --git a/docs/pages.html b/docs/pages.html index 1d59685..9089fcf 100644 --- a/docs/pages.html +++ b/docs/pages.html @@ -110,8 +110,8 @@
              Here is a list of all related documentation pages:
              diff --git a/docs/program_theory_manual.html b/docs/program_theory_manual.html index 645b39c..f522dcc 100644 --- a/docs/program_theory_manual.html +++ b/docs/program_theory_manual.html @@ -113,12 +113,16 @@

              Introduction to MPM

              The Material Point Method, or MPM, is a hybrid Lagrangian-Eulerian method that allows for simulating continuum mechanics processes involving large deformations and displacements without issues related to computational mesh distortion. In MPM, the material domain to be simulated is discretized into a set of material points that can move freely within a computational mesh, where the equations of motion are solved. The material points store all variables of interest during the simulation, such as stress, pore pressure, temperature, etc., giving the method its Lagrangian characteristic.

              -

              -

              Figure 1: MPM Discretization [2]

              -

              In an MPM computational cycle, all variables stored in the material points are computed at the computational mesh nodes using interpolation functions, and then the equation of motion is solved at the nodes. The nodal solution obtained is interpolated back to the particles, whose positions are updated, and all nodal variables are discarded.

              -

              -

              Figure 2: MPM Cycle [3]

              -

              +
              + +
              +"MPM Discretization"
              +

              In an MPM computational cycle, all variables stored in the material points are computed at the computational mesh nodes using interpolation functions, and then the equation of motion is solved at the nodes. The nodal solution obtained is interpolated back to the particles, whose positions are updated, and all nodal variables are discarded.

              +
              + +
              +"MPM computational cycle"
              +

              MPM Formulation

              MPM enables the numerical solution of the equation of motion in continuum mechanics by using the nodes of an Eulerian mesh for integration and Lagrangian material points to transfer and store the properties of the medium.

              The equation of motion in continuum mechanics

              diff --git a/docs/program_tutorial_manual.html b/docs/program_tutorial_manual.html index c172017..3a805e1 100644 --- a/docs/program_tutorial_manual.html +++ b/docs/program_tutorial_manual.html @@ -108,15 +108,98 @@
              Tutorial manual
              -

              -Base acceleration example

              +

              +Bousssinesq's problem

              +

              +Introduction

              +

              In Geomechanics, the Boussinesq's problem refers to the point load acting on a surface of an elastic half-space problem. The boundary conditions for this problem are:

              +
                +
              • The load P is applied only in one point, in the origin.
              • +
              • The load is zero in any other point.
              • +
              • For any point infinitely distant from the origin, the displacements must all vanish.
              • +
              +
              + +
              +"Boussinesq' problem"
              +

              +Analytical solution

              +

              The analytical solution of this problem is

              +\[ + u_z = \frac{P}{4 \pi G d} (2 (1-\nu) + z^2 / d^2) +\] +

              +

              where \( G = \frac{E}{2(1+\nu)} \) is the Shear modulus of the elastic material, \( \nu \) is the Poisson ratio and \( d = \sqrt{ x^2 + y^2 + z^2 } \) is the total distance from load to the point.

              +

              +MPM model and result comparison

              +

              For model the displacement field generated due the point load we will create an elastic body with dimensions \( l_x = l_y = l_z = 1 m \), for this we can use the keyword "cuboid", with point 1 in (0,0,0) and Point 2 in (1,1,1). For the elastic parameters of the material, we will use Young's modulus equal to \( E = 200e6 \) Pa, a density equal to \( \rho = 1500 kg/m^3\). This body is placed in a computational mesh with cell dimension \( dx = dy = dz = 0.1\) m. The boundary condition of this problem is a nodal load at the middle point on the body surface acting in vertical direction with magnitude of 1. For set this condition we will use the "nodal_point_load" keyword. The displacement boundary condition of the mesh is set using the "boundary_conditions" keyword. In this problem the plane Zn (upper plane) is set as free no move, and all the others planes are set as sliding, allowing movements only in parallel direction of the plane. The current MPM formulation solves the motion equation so, we need to add some damping to avoid the transient solution using "damping" keyword, with "kinetic" option for the damping's type. The "kinetic" keyword is used to active dynamic relaxations techniques on the velocity field for obtaining the static solution of the problem.

              +

              The input file for this problem is:

              {
              +    "body":
              +    {
              +        "elastic-cuboid-body":
              +        {
              +            "type":"cuboid",
              +            "id":1,
              +            "point_p1":[0.0,0.0,0],
              +            "point_p2":[1,1,1],
              +            "material_id":1
              +        }
              +    },
              +
              +    "materials":
              +    {
              +        "material-1":
              +        {
              +            "type":"elastic",
              +            "id":1,
              +            "young":200e6,
              +            "density":1500,
              +            "poisson":0.25
              +        }
              +    },
              +
              +    "mesh":
              +    { 
              +        "cells_dimension":[0.1,0.1,0.1],
              +        "cells_number":[10,10,10],
              +        "origin":[0.0,0.0,0.0],
              +        "boundary_conditions":
              +        {
              +            "plane_X0":"sliding",
              +            "plane_Y0":"sliding",
              +            "plane_Z0":"sliding",
              +            "plane_Xn":"sliding",
              +            "plane_Yn":"sliding",
              +            "plane_Zn":"free"
              +        }
              +    },
              +    "time":0.025,
              +    "time_step_multiplier":0.3,
              +    "results":
              +    {
              +        "print":50,
              +        "fields":["all"]
              +    },
              +    "nodal_point_load": [ [[0.5, 0.5, 1.0], [0.0, 0.0, -1.0]]],
              +    "damping":
              +    {
              +        "type":"kinetic"
              +    }
              +}
              +

              The numerical results obtained with MPM were compared

              +
              + +
              +"Results comparison"
              +

              +Base acceleration example

              In this example we will show how to model the movement of an elastic body subjected to a dynamic boundary condition. The geometry of the body will be a regular cuboid with edge dimension \( l_x = 0.3\) m, \( l_y = 0.3 \) m, and \( l_z = 0.8 \) m in the \( xyz \) coordinate system. The lower coordinate point is located at \( p_{min} = (0.4, 0.4, 0.0) \) m. The dynamic boundary condition considered is a base acceleration defined as a function of time as \( \ddot{u} = A 2 \pi f cos ( 2 \pi f t + \alpha ) \). The total time of the simulation is 2 seconds, and the time step is \( \Delta t = 1e-4\) seconds. The material density considered is \( \rho = 2500 \) kg/m \(^3\), and the elastic behavior is defined by Young's modulus \( E = 100e6 \) MPa and Poisson ratio equal to \( \nu = 0.25 \). The figure below shows the body in the space.

              - +
              "Geometry of the body"
              -

              -MPM-Model

              +

              +MPM-Model

              With these data we will to create an MPM model consisting in uniformly distributed particles inside the geometry of the body. For do so, we used the "body" and "cuboid" keywords. When body type is "cuboid" we can create a body with the lower and highest coordinate point P1 (lower) and P2 (hight) of the geometry. The material established using the "material_id" keyword. This material must to be correctly defined using the keyword "materials". When we create a body using uniformly distributed particles, eight in the case of a regular element mesh, the number of total particles in the body depends of the mesh grid cell dimension. In this case we will consider a uniform mesh consisting in elements of dimension \( \Delta x = \Delta y = \Delta z = 0.1 \) m. In a MPM model the mesh must to cover the whole domain, covering the complete amplitude of the body movement. For this example we will consider the same number of element in each direction \( n_x=12, n_y=12, n_z=15 \) to account from the origin of coordinate \( (0,0,0) \).

              The complete JSON file with the keywords we write:

              {
                   "body":
              @@ -175,12 +258,12 @@ 

              Once we have the JSON input file, we can execute the simulator with the input file as parameter. When the simulation ends we can find the particle results in the "/particle" directory, and the grid mesh in the "/grid" directory. The particles results are written in uniformly separated times determined by the number of results defined in the "print" keyword. The number of total results must be 40. In this example, the particles results must be "particle_1.vtu", "particle_2.vtu", ..., "particle_41.vtu". Together with the "particle_i.vtu" results, a particle serie file "particleTimeSerie.pvd" is created. This time series file can be used to load all the results in the Paraview scientific visualization program.

              In other to visualize the results, the "particleTimeSerie.pvd" can be open in the Paraview by "> File > Open > particleTimeSerie.pvd". And the mesh can be loaded by open the "> File > Open > eulerianGrid.vtu".

              - +
              "Particles and mesh of analyzed case"

              In order to validate the implementation of the dynamic boundary condition the velocity calculated from the input function used to created the base acceleration, \( \dot{u} = A sin ( 2 \pi f t + \alpha ) \) is compared with the velocity of a particle located at the base of the MPM model. The next figure shows this comparison. The velocities obtained with MPM at the base of the models coincides with the velocities obtained from the input record.

              - +
              "Verification of velocities obtained with MPM simulation"

              diff --git a/docs/search/all_0.js b/docs/search/all_0.js index 88ad3fc..5c4d33a 100644 --- a/docs/search/all_0.js +++ b/docs/search/all_0.js @@ -2,7 +2,7 @@ var searchData= [ ['a_20box_20example_0',['a box example',['../namespaceInput.html#autotoc_md16',1,'Initial pore pressure in particles inside a box example'],['../namespaceInput.html#autotoc_md15',1,'Prescribed pore pressure in particles inside a box example']]], ['acceleration_1',['acceleration',['../structLoads_1_1SeismicData.html#a3403206d9cec69fc98e9b0e65cb38898',1,'Loads::SeismicData']]], - ['acceleration_20example_2',['Base acceleration example',['../program_tutorial_manual.html#autotoc_md59',1,'']]], + ['acceleration_20example_2',['Base acceleration example',['../verification_problems.html#autotoc_md65',1,'']]], ['activatenode_3',['activateNode',['../classMesh.html#a7d787bca40818c5248ca13df066c92e7',1,'Mesh']]], ['activatenodes_4',['activateNodes',['../classMesh.html#aeaceb1cd2d0d628fa740188c209038bb',1,'Mesh']]], ['active_5',['active',['../classParticle.html#a73a4154dfbae2e2787ef72c1bee83413',1,'Particle::active'],['../classNode.html#a9f86329e8fb9d0bb3541929ba067088a',1,'Node::active']]], @@ -15,5 +15,8 @@ var searchData= ['addmomentum_12',['addMomentum',['../classNode.html#ae77b0da9a154817cefbc5abeb916b2b9',1,'Node']]], ['addmomentumfluid_13',['addMomentumFluid',['../classNode.html#a1c9442fd5fde01803a0a13aa965785b1',1,'Node::addMomentumFluid()'],['../classNodeMixture.html#a81ce62f4ebbd0cbe14280449b858c03f',1,'NodeMixture::addMomentumFluid()']]], ['addplasticstrain_14',['addPlasticStrain',['../classParticle.html#a49b197c3a37ad792289581d13f99bf1c',1,'Particle']]], - ['are_20placed_20in_20the_20body_15',['How the material points are placed in the body',['../classBodyPolygon.html#autotoc_md48',1,'']]] + ['analytical_20solution_15',['Analytical solution',['../verification_problems.html#autotoc_md63',1,'']]], + ['and_20numerical_20formulation_16',['Theory and Numerical Formulation',['../theory_and_numerical_formulation_.html',1,'']]], + ['and_20result_20comparison_17',['MPM model and result comparison',['../verification_problems.html#autotoc_md64',1,'']]], + ['are_20placed_20in_20the_20body_18',['How the material points are placed in the body',['../classBodyPolygon.html#autotoc_md48',1,'']]] ]; diff --git a/docs/search/all_1.js b/docs/search/all_1.js index 0cf582f..3027ee6 100644 --- a/docs/search/all_1.js +++ b/docs/search/all_1.js @@ -1,6 +1,6 @@ var searchData= [ - ['base_20acceleration_20example_0',['Base acceleration example',['../program_tutorial_manual.html#autotoc_md59',1,'']]], + ['base_20acceleration_20example_0',['Base acceleration example',['../verification_problems.html#autotoc_md65',1,'']]], ['binaries_1',['Program compiled binaries',['../index.html#program_binaries',1,'']]], ['bodies_2',['Bodies',['../namespaceInput.html#autotoc_md2',1,'']]], ['bodies_3',['bodies',['../classMPM.html#aa6a0e2948d663892851627f0cc52f2dd',1,'MPM::bodies'],['../classSolver.html#ae69d529fe554b2ca852ce3dfeb79315b',1,'Solver::bodies']]], @@ -28,7 +28,8 @@ var searchData= ['boundaryconditionsmomentumfluid_25',['boundaryConditionsMomentumFluid',['../namespaceUpdate.html#ad2f347f7a664156c4c3ef8f51c1e0827',1,'Update']]], ['boundaryplane_26',['BoundaryPlane',['../classBoundary.html#af26eedc4e6bdfcc2b12815b0afd0ca70',1,'Boundary']]], ['boundarytype_27',['BoundaryType',['../classBoundary.html#aba71309d646c3f90a59be7e8d8cefef5',1,'Boundary']]], - ['box_20example_28',['box example',['../namespaceInput.html#autotoc_md12',1,'Distributed load in box example'],['../namespaceInput.html#autotoc_md16',1,'Initial pore pressure in particles inside a box example'],['../namespaceInput.html#autotoc_md15',1,'Prescribed pore pressure in particles inside a box example']]], - ['bulkmodulusfluid_29',['bulkModulusFluid',['../classMaterial.html#af273c3103e5a1ff733b77edd3da8a5ff',1,'Material']]], - ['by_20particles_30',['Example of Body defined by particles',['../namespaceInput.html#autotoc_md4',1,'']]] + ['bousssinesq_20s_20problem_28',['Bousssinesq's problem',['../verification_problems.html#autotoc_md61',1,'']]], + ['box_20example_29',['box example',['../namespaceInput.html#autotoc_md12',1,'Distributed load in box example'],['../namespaceInput.html#autotoc_md16',1,'Initial pore pressure in particles inside a box example'],['../namespaceInput.html#autotoc_md15',1,'Prescribed pore pressure in particles inside a box example']]], + ['bulkmodulusfluid_30',['bulkModulusFluid',['../classMaterial.html#af273c3103e5a1ff733b77edd3da8a5ff',1,'Material']]], + ['by_20particles_31',['Example of Body defined by particles',['../namespaceInput.html#autotoc_md4',1,'']]] ]; diff --git a/docs/search/all_10.js b/docs/search/all_10.js index 2cc4cd2..4118cb9 100644 --- a/docs/search/all_10.js +++ b/docs/search/all_10.js @@ -1,16 +1,17 @@ var searchData= [ ['readinputfile_0',['readInputFile',['../classMPM.html#a0cf36c8797cfd5632d26b5d129df126e',1,'MPM::readInputFile()'],['../namespaceInput.html#abb1fa3d31849a7acf80a9796da0242b0',1,'Input::readInputFile(string file_name)']]], - ['readnodalpointloads_1',['readNodalPointLoads',['../namespaceInput.html#a03717b6bc9fdd8cfc5eccb3e4fcebe73',1,'Input']]], + ['readnodalpointloads_1',['readNodalPointLoads',['../namespaceInput.html#a4af9571f7842a96471572cd550d598a9',1,'Input']]], ['readseismicdata_2',['readSeismicData',['../namespaceInput.html#ab7aeff2285506645ef6c121dec4a0d44',1,'Input']]], - ['references_3',['References',['../program_theory_manual.html#autotoc_md58',1,'']]], + ['references_3',['References',['../theory_and_numerical_formulation_.html#autotoc_md60',1,'']]], ['registerbodies_4',['registerBodies',['../classSolver.html#a119ea70a054a7ad5cb7b2130fd6917a4',1,'Solver']]], ['registermesh_5',['registerMesh',['../classSolver.html#a5ea32c377f50d8f7b3f8725ebb4bf71a',1,'Solver']]], - ['requirement_6',['Stability Requirement',['../program_theory_manual.html#autotoc_md56',1,'']]], + ['requirement_6',['Stability Requirement',['../theory_and_numerical_formulation_.html#autotoc_md55',1,'']]], ['resetnodalvalues_7',['resetNodalValues',['../namespaceUpdate.html#a783728339e39786e7f3d5cafd0433878',1,'Update']]], ['resetvalues_8',['resetValues',['../classNode.html#a5b1560f9d7c52bfd84307901f6c35cac',1,'Node::resetValues()'],['../classNodeMixture.html#a695d28aac00c06ef2f45784a928ba44b',1,'NodeMixture::resetValues()']]], ['restriction_9',['restriction',['../structBoundary_1_1planeBoundary.html#af080470dddc2a34c98b3b9bf200219ed',1,'Boundary::planeBoundary']]], ['restrictionfluid_10',['restrictionFluid',['../structBoundary_1_1planeBoundary.html#ad49b9bca323f684e1495797d0ca79673',1,'Boundary::planeBoundary']]], - ['results_11',['Results',['../namespaceInput.html#autotoc_md36',1,'']]], - ['results_20definition_20example_12',['Results definition example',['../namespaceInput.html#autotoc_md37',1,'']]] + ['result_20comparison_11',['MPM model and result comparison',['../verification_problems.html#autotoc_md64',1,'']]], + ['results_12',['Results',['../namespaceInput.html#autotoc_md36',1,'']]], + ['results_20definition_20example_13',['Results definition example',['../namespaceInput.html#autotoc_md37',1,'']]] ]; diff --git a/docs/search/all_11.js b/docs/search/all_11.js index c6f7808..7bfe13e 100644 --- a/docs/search/all_11.js +++ b/docs/search/all_11.js @@ -1,13 +1,13 @@ var searchData= [ - ['save_20load_20states_0',['Save/Load States',['../namespaceInput.html#autotoc_md39',1,'']]], - ['saveparticlestress_1',['saveParticleStress',['../namespaceStates.html#aaca388edafe42fb7dff9198b3db9bc25',1,'States']]], - ['savestate_2',['saveState',['../classMPM.html#a98bc1e242283425dc98917b2b6b9e293',1,'MPM']]], - ['scheme_3',['Explicit MPM Scheme',['../program_theory_manual.html#autotoc_md57',1,'']]], - ['scheme_4',['Stress update scheme',['../namespaceInput.html#autotoc_md26',1,'']]], - ['scheme_20definition_20example_5',['Stress update scheme definition example',['../namespaceInput.html#autotoc_md27',1,'']]], - ['seismicdata_6',['SeismicData',['../structLoads_1_1SeismicData.html',1,'Loads']]], - ['seismicrecord_7',['seismicRecord',['../namespaceLoads.html#afe9be730a82af1e03b57cc4906e4931d',1,'Loads']]], + ['s_20problem_0',['Bousssinesq's problem',['../verification_problems.html#autotoc_md61',1,'']]], + ['save_20load_20states_1',['Save/Load States',['../namespaceInput.html#autotoc_md39',1,'']]], + ['saveparticlestress_2',['saveParticleStress',['../namespaceStates.html#aaca388edafe42fb7dff9198b3db9bc25',1,'States']]], + ['savestate_3',['saveState',['../classMPM.html#a98bc1e242283425dc98917b2b6b9e293',1,'MPM']]], + ['scheme_4',['Scheme',['../theory_and_numerical_formulation_.html#autotoc_md56',1,'Explicit MPM Scheme'],['../theory_and_numerical_formulation_.html#autotoc_md59',1,'Modified Update Stress Last - MUSL - Scheme'],['../theory_and_numerical_formulation_.html#autotoc_md57',1,'Update Stress First - USF - Scheme'],['../theory_and_numerical_formulation_.html#autotoc_md58',1,'Update Stress Last - USL - Scheme']]], + ['scheme_5',['Stress update scheme',['../namespaceInput.html#autotoc_md26',1,'']]], + ['scheme_20definition_20example_6',['Stress update scheme definition example',['../namespaceInput.html#autotoc_md27',1,'']]], + ['seismicdata_7',['SeismicData',['../structLoads_1_1SeismicData.html',1,'Loads']]], ['setactive_8',['setActive',['../classParticle.html#a1d1a0586e297c08bc3ca323684457e93',1,'Particle::setActive()'],['../classNode.html#ab36ad977b482adfba910741ddc7a60e9',1,'Node::setActive()']]], ['setaxisymetricactive_9',['setAxisymetricActive',['../namespaceModelSetup.html#a0fc0f8e1967942976687e8119a709b03',1,'ModelSetup']]], ['setbodyid_10',['setBodyId',['../classParticle.html#a3766df64f15f5af3bbdc9cb13ff7b087',1,'Particle']]], @@ -130,25 +130,29 @@ var searchData= ['softening_127',['softening',['../classMohrCoulomb.html#a4a2521dcfb9581a0582e964a1ed02969',1,'MohrCoulomb']]], ['softening_5ftype_128',['softening_type',['../classMohrCoulomb_1_1Softening.html#ad4ee561e3ff9a65f09bb58881443b752',1,'MohrCoulomb::Softening']]], ['softeningtype_129',['SofteningType',['../classMohrCoulomb_1_1Softening.html#ab0a9e1e505a3458ccccc6c0979f0eb50',1,'MohrCoulomb::Softening']]], - ['solve_130',['Solve',['../classSolver.html#a4f378b422f47c030d17131db0b373324',1,'Solver::Solve()'],['../classSolverExplicitTwoPhaseUSL.html#a29f4ca83127d070c62cd875f96b03ffa',1,'SolverExplicitTwoPhaseUSL::Solve()'],['../classSolverExplicitUSL.html#a2be717fa0b2c45c89acbf3eccefb3678',1,'SolverExplicitUSL::Solve()']]], - ['solve_131',['solve',['../classMPM.html#af59d5b58413e7f9c5a6dc5d8c2f1df3d',1,'MPM']]], - ['solver_132',['Solver',['../classSolver.html',1,'Solver'],['../classSolver.html#a9dfe7ae9ce617e8a6398be34284c907a',1,'Solver::Solver()']]], - ['solver_133',['solver',['../classMPM.html#a1cc099fec2f55ef6182fa80ff72c4138',1,'MPM']]], - ['solver_2eh_134',['Solver.h',['../Solver_8h.html',1,'']]], - ['solverexplicittwophaseusl_135',['SolverExplicitTwoPhaseUSL',['../classSolverExplicitTwoPhaseUSL.html',1,'SolverExplicitTwoPhaseUSL'],['../classSolverExplicitTwoPhaseUSL.html#a381a5831c43caad21fbabc2180bed948',1,'SolverExplicitTwoPhaseUSL::SolverExplicitTwoPhaseUSL()']]], - ['solverexplicittwophaseusl_2eh_136',['SolverExplicitTwoPhaseUSL.h',['../SolverExplicitTwoPhaseUSL_8h.html',1,'']]], - ['solverexplicitusl_137',['SolverExplicitUSL',['../classSolverExplicitUSL.html',1,'SolverExplicitUSL'],['../classSolverExplicitUSL.html#aca4dd211a150a412333ca491ca9fce3d',1,'SolverExplicitUSL::SolverExplicitUSL()']]], - ['solverexplicitusl_2eh_138',['SolverExplicitUSL.h',['../SolverExplicitUSL_8h.html',1,'']]], - ['sphere_20definition_139',['Sphere definition',['../classBodySphere.html#autotoc_md49',1,'']]], - ['stability_20requirement_140',['Stability Requirement',['../program_theory_manual.html#autotoc_md56',1,'']]], - ['states_141',['States',['../namespaceInput.html#autotoc_md39',1,'Save/Load States'],['../namespaceStates.html',1,'States']]], - ['states_2eh_142',['States.h',['../States_8h.html',1,'']]], - ['step_20definition_20example_143',['Time step definition example',['../namespaceInput.html#autotoc_md23',1,'']]], - ['strain_144',['strain',['../classParticle.html#af14ff528876e9d128baf6bc16eb92947',1,'Particle']]], - ['strainincrement_145',['strainIncrement',['../classParticle.html#a03b4af101a14e8c5a6bf67619c986fc8',1,'Particle']]], - ['strainincrementfluid_146',['strainIncrementFluid',['../classParticleMixture.html#a340869f830ea205ef01c6dcebc1a5a8b',1,'ParticleMixture']]], - ['stress_147',['stress',['../classParticle.html#a04d1aea466feff57336a438cfae71231',1,'Particle']]], - ['stress_20update_20scheme_148',['Stress update scheme',['../namespaceInput.html#autotoc_md26',1,'']]], - ['stress_20update_20scheme_20definition_20example_149',['Stress update scheme definition example',['../namespaceInput.html#autotoc_md27',1,'']]], - ['stressupdatescheme_150',['StressUpdateScheme',['../namespaceModelSetup.html#a95c5a2eb8b98cbf15989237803593b6c',1,'ModelSetup']]] + ['solution_130',['Analytical solution',['../verification_problems.html#autotoc_md63',1,'']]], + ['solve_131',['Solve',['../classSolver.html#a4f378b422f47c030d17131db0b373324',1,'Solver::Solve()'],['../classSolverExplicitTwoPhaseUSL.html#a29f4ca83127d070c62cd875f96b03ffa',1,'SolverExplicitTwoPhaseUSL::Solve()'],['../classSolverExplicitUSL.html#a2be717fa0b2c45c89acbf3eccefb3678',1,'SolverExplicitUSL::Solve()']]], + ['solve_132',['solve',['../classMPM.html#af59d5b58413e7f9c5a6dc5d8c2f1df3d',1,'MPM']]], + ['solver_133',['Solver',['../classSolver.html',1,'Solver'],['../classSolver.html#a9dfe7ae9ce617e8a6398be34284c907a',1,'Solver::Solver()']]], + ['solver_134',['solver',['../classMPM.html#a1cc099fec2f55ef6182fa80ff72c4138',1,'MPM']]], + ['solver_2eh_135',['Solver.h',['../Solver_8h.html',1,'']]], + ['solverexplicittwophaseusl_136',['SolverExplicitTwoPhaseUSL',['../classSolverExplicitTwoPhaseUSL.html',1,'SolverExplicitTwoPhaseUSL'],['../classSolverExplicitTwoPhaseUSL.html#a381a5831c43caad21fbabc2180bed948',1,'SolverExplicitTwoPhaseUSL::SolverExplicitTwoPhaseUSL()']]], + ['solverexplicittwophaseusl_2eh_137',['SolverExplicitTwoPhaseUSL.h',['../SolverExplicitTwoPhaseUSL_8h.html',1,'']]], + ['solverexplicitusl_138',['SolverExplicitUSL',['../classSolverExplicitUSL.html',1,'SolverExplicitUSL'],['../classSolverExplicitUSL.html#aca4dd211a150a412333ca491ca9fce3d',1,'SolverExplicitUSL::SolverExplicitUSL()']]], + ['solverexplicitusl_2eh_139',['SolverExplicitUSL.h',['../SolverExplicitUSL_8h.html',1,'']]], + ['sphere_20definition_140',['Sphere definition',['../classBodySphere.html#autotoc_md49',1,'']]], + ['stability_20requirement_141',['Stability Requirement',['../theory_and_numerical_formulation_.html#autotoc_md55',1,'']]], + ['states_142',['States',['../namespaceInput.html#autotoc_md39',1,'Save/Load States'],['../namespaceStates.html',1,'States']]], + ['states_2eh_143',['States.h',['../States_8h.html',1,'']]], + ['step_20definition_20example_144',['Time step definition example',['../namespaceInput.html#autotoc_md23',1,'']]], + ['strain_145',['strain',['../classParticle.html#af14ff528876e9d128baf6bc16eb92947',1,'Particle']]], + ['strainincrement_146',['strainIncrement',['../classParticle.html#a03b4af101a14e8c5a6bf67619c986fc8',1,'Particle']]], + ['strainincrementfluid_147',['strainIncrementFluid',['../classParticleMixture.html#a340869f830ea205ef01c6dcebc1a5a8b',1,'ParticleMixture']]], + ['stress_148',['stress',['../classParticle.html#a04d1aea466feff57336a438cfae71231',1,'Particle']]], + ['stress_20first_20usf_20scheme_149',['Update Stress First - USF - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md57',1,'']]], + ['stress_20last_20musl_20scheme_150',['Modified Update Stress Last - MUSL - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md59',1,'']]], + ['stress_20last_20usl_20scheme_151',['Update Stress Last - USL - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md58',1,'']]], + ['stress_20update_20scheme_152',['Stress update scheme',['../namespaceInput.html#autotoc_md26',1,'']]], + ['stress_20update_20scheme_20definition_20example_153',['Stress update scheme definition example',['../namespaceInput.html#autotoc_md27',1,'']]], + ['stressupdatescheme_154',['StressUpdateScheme',['../namespaceModelSetup.html#a95c5a2eb8b98cbf15989237803593b6c',1,'ModelSetup']]] ]; diff --git a/docs/search/all_12.js b/docs/search/all_12.js index be43702..e375968 100644 --- a/docs/search/all_12.js +++ b/docs/search/all_12.js @@ -5,18 +5,18 @@ var searchData= ['tensile_5fsoftening_5factive_2',['tensile_softening_active',['../classMohrCoulomb_1_1Softening.html#a894bc119dee47163e798a35cbcd4731d',1,'MohrCoulomb::Softening']]], ['the_20body_3',['How the material points are placed in the body',['../classBodyPolygon.html#autotoc_md48',1,'']]], ['the_20discretization_20length_4',['The Discretization Length',['../classBodyPolygon.html#autotoc_md47',1,'']]], - ['the_20material_20points_20are_20placed_20in_20the_20body_5',['How the material points are placed in the body',['../classBodyPolygon.html#autotoc_md48',1,'']]], - ['the_20planes_20for_20setting_20boundary_20conditions_6',['Definition of the planes for setting boundary conditions',['../classBoundary.html#autotoc_md0',1,'']]], - ['theory_20manual_7',['Theory manual',['../program_theory_manual.html',1,'']]], - ['time_8',['time',['../namespaceInput.html#autotoc_md21',1,'Simulation time'],['../structLoads_1_1SeismicData.html#a7bad550aec9970c15894c961572cd708',1,'Loads::SeismicData::time']]], - ['time_20definition_20example_9',['Simulation time definition example',['../namespaceInput.html#autotoc_md22',1,'']]], - ['time_20step_20definition_20example_10',['Time step definition example',['../namespaceInput.html#autotoc_md23',1,'']]], - ['to_20mpm_11',['Introduction to MPM',['../program_theory_manual.html#autotoc_md51',1,'']]], - ['totalforce_12',['totalForce',['../classNode.html#ab06a209d998e817f6f93590436aece9d',1,'Node']]], - ['totalforcefluid_13',['totalForceFluid',['../classNodeMixture.html#afa2378b4573980b6e24cb205bf6c428a',1,'NodeMixture']]], - ['totalparticles_14',['totalParticles',['../classParticle.html#afb7d35157679a6b5f50daebe4ac396da',1,'Particle']]], - ['tutorial_20manual_15',['Tutorial manual',['../program_tutorial_manual.html',1,'']]], - ['tutorial_2emd_16',['tutorial.md',['../tutorial_8md.html',1,'']]], + ['the_20material_20point_20method_20mpm_5',['Introduction to the Material Point Method (MPM)',['../theory_and_numerical_formulation_.html#autotoc_md50',1,'']]], + ['the_20material_20points_20are_20placed_20in_20the_20body_6',['How the material points are placed in the body',['../classBodyPolygon.html#autotoc_md48',1,'']]], + ['the_20planes_20for_20setting_20boundary_20conditions_7',['Definition of the planes for setting boundary conditions',['../classBoundary.html#autotoc_md0',1,'']]], + ['theory_20and_20numerical_20formulation_8',['Theory and Numerical Formulation',['../theory_and_numerical_formulation_.html',1,'']]], + ['theory_2dformulation_2dmanual_2emd_9',['theory-formulation-manual.md',['../theory-formulation-manual_8md.html',1,'']]], + ['time_10',['time',['../namespaceInput.html#autotoc_md21',1,'Simulation time'],['../structLoads_1_1SeismicData.html#a7bad550aec9970c15894c961572cd708',1,'Loads::SeismicData::time']]], + ['time_20definition_20example_11',['Simulation time definition example',['../namespaceInput.html#autotoc_md22',1,'']]], + ['time_20step_20definition_20example_12',['Time step definition example',['../namespaceInput.html#autotoc_md23',1,'']]], + ['to_20the_20material_20point_20method_20mpm_13',['Introduction to the Material Point Method (MPM)',['../theory_and_numerical_formulation_.html#autotoc_md50',1,'']]], + ['totalforce_14',['totalForce',['../classNode.html#ab06a209d998e817f6f93590436aece9d',1,'Node']]], + ['totalforcefluid_15',['totalForceFluid',['../classNodeMixture.html#afa2378b4573980b6e24cb205bf6c428a',1,'NodeMixture']]], + ['totalparticles_16',['totalParticles',['../classParticle.html#afb7d35157679a6b5f50daebe4ac396da',1,'Particle']]], ['two_20phase_20simulation_20definition_20example_17',['Two phase simulation definition example',['../namespaceInput.html#autotoc_md25',1,'']]], ['two_20phase_20simulations_18',['Two phase simulations',['../namespaceInput.html#autotoc_md24',1,'']]], ['type_19',['type',['../classMaterial.html#ab54be6694ca8c0adcd8450121bdf1592',1,'Material']]] diff --git a/docs/search/all_13.js b/docs/search/all_13.js index f078f64..e89b7ae 100644 --- a/docs/search/all_13.js +++ b/docs/search/all_13.js @@ -5,16 +5,21 @@ var searchData= ['update_2',['update',['../classShape.html#ac44c4dc52e9288f5dffe0b046c581a5a',1,'Shape::update()'],['../classShapeGimp.html#ad04d2a67e6e5c04eb47595fa9f7b2cc3',1,'ShapeGimp::update()'],['../classShapeLinear.html#a612ba26abe97a3c028f956c7e1c961c2',1,'ShapeLinear::update()']]], ['update_20scheme_3',['Stress update scheme',['../namespaceInput.html#autotoc_md26',1,'']]], ['update_20scheme_20definition_20example_4',['Stress update scheme definition example',['../namespaceInput.html#autotoc_md27',1,'']]], - ['update_2eh_5',['Update.h',['../Update_8h.html',1,'']]], - ['updatecontributionnodes_6',['updateContributionNodes',['../classParticle.html#ac859ff7588937a807597db15412e2fba',1,'Particle']]], - ['updatedampingforce_7',['updateDampingForce',['../classNode.html#a6aad417d1f5ec1d2fde9bb1f4fcac0d8',1,'Node::updateDampingForce()'],['../classNodeMixture.html#acf9ffdf17df8f2596f16e91be73c548b',1,'NodeMixture::updateDampingForce()']]], - ['updatedensity_8',['updateDensity',['../classParticle.html#a63fae0128b805bfd15c44292c40dcac2',1,'Particle']]], - ['updateporosity_9',['updatePorosity',['../classParticle.html#a61695ae77c9e8e9743fba4bcf490b492',1,'Particle::updatePorosity()'],['../classParticleMixture.html#aeddecf86a6b91ff4927548a07d8297b5',1,'ParticleMixture::updatePorosity()']]], - ['updateprescribedporepressure_10',['updatePrescribedPorePressure',['../namespaceLoads.html#a6f957fba555640cd03240c65124a35c2',1,'Loads']]], - ['updatepressure_11',['updatePressure',['../classParticle.html#abbe1236f82de2d4bf0a2f566fb844303',1,'Particle::updatePressure()'],['../classParticleMixture.html#ad17fbdee80bd68ba0e40be84cc7e16c6',1,'ParticleMixture::updatePressure()']]], - ['updatestress_12',['updateStress',['../classElastic.html#a70e104591aa936a1593b56bf9c743400',1,'Elastic::updateStress()'],['../classElasticJaumann.html#acfad190dd0fcf34258f0258e06d9c954',1,'ElasticJaumann::updateStress()'],['../classMaterial.html#ad19adc91e258ec9d09a71c7e1b24b93c',1,'Material::updateStress()'],['../classMohrCoulomb.html#a80720b3595d8ddc144ee58cf78e7ff83',1,'MohrCoulomb::updateStress()'],['../classParticle.html#a01012a506a0bdaed27556853867f3b21',1,'Particle::updateStress()']]], - ['updatetotalforce_13',['updateTotalForce',['../classNode.html#a302b87a90c5372faaabc07077bb2ab74',1,'Node::updateTotalForce()'],['../classNodeMixture.html#aad23b55c873ceefba5e3496f5ff6c8e2',1,'NodeMixture::updateTotalForce()']]], - ['updatevelocity_14',['updateVelocity',['../classNode.html#a2c5e1e80ace265d6da48dad9aaf0e540',1,'Node::updateVelocity()'],['../classNodeMixture.html#aa92a7e632617866fe6ceb0145d179ed5',1,'NodeMixture::updateVelocity()']]], - ['usf_15',['USF',['../namespaceModelSetup.html#a95c5a2eb8b98cbf15989237803593b6cafeb425bfed125fa9b2091b3ebf83f598',1,'ModelSetup']]], - ['usl_16',['USL',['../namespaceModelSetup.html#a95c5a2eb8b98cbf15989237803593b6ca795ce8efa267e7ebc51a283bcb5d54a5',1,'ModelSetup']]] + ['update_20stress_20first_20usf_20scheme_5',['Update Stress First - USF - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md57',1,'']]], + ['update_20stress_20last_20musl_20scheme_6',['Modified Update Stress Last - MUSL - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md59',1,'']]], + ['update_20stress_20last_20usl_20scheme_7',['Update Stress Last - USL - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md58',1,'']]], + ['update_2eh_8',['Update.h',['../Update_8h.html',1,'']]], + ['updatecontributionnodes_9',['updateContributionNodes',['../classParticle.html#ac859ff7588937a807597db15412e2fba',1,'Particle']]], + ['updatedampingforce_10',['updateDampingForce',['../classNode.html#a6aad417d1f5ec1d2fde9bb1f4fcac0d8',1,'Node::updateDampingForce()'],['../classNodeMixture.html#acf9ffdf17df8f2596f16e91be73c548b',1,'NodeMixture::updateDampingForce()']]], + ['updatedensity_11',['updateDensity',['../classParticle.html#a63fae0128b805bfd15c44292c40dcac2',1,'Particle']]], + ['updateporosity_12',['updatePorosity',['../classParticle.html#a61695ae77c9e8e9743fba4bcf490b492',1,'Particle::updatePorosity()'],['../classParticleMixture.html#aeddecf86a6b91ff4927548a07d8297b5',1,'ParticleMixture::updatePorosity()']]], + ['updateprescribedporepressure_13',['updatePrescribedPorePressure',['../namespaceLoads.html#a6f957fba555640cd03240c65124a35c2',1,'Loads']]], + ['updatepressure_14',['updatePressure',['../classParticle.html#abbe1236f82de2d4bf0a2f566fb844303',1,'Particle::updatePressure()'],['../classParticleMixture.html#ad17fbdee80bd68ba0e40be84cc7e16c6',1,'ParticleMixture::updatePressure()']]], + ['updatestress_15',['updateStress',['../classElastic.html#a70e104591aa936a1593b56bf9c743400',1,'Elastic::updateStress()'],['../classElasticJaumann.html#acfad190dd0fcf34258f0258e06d9c954',1,'ElasticJaumann::updateStress()'],['../classMaterial.html#ad19adc91e258ec9d09a71c7e1b24b93c',1,'Material::updateStress()'],['../classMohrCoulomb.html#a80720b3595d8ddc144ee58cf78e7ff83',1,'MohrCoulomb::updateStress()'],['../classParticle.html#a01012a506a0bdaed27556853867f3b21',1,'Particle::updateStress()']]], + ['updatetotalforce_16',['updateTotalForce',['../classNode.html#a302b87a90c5372faaabc07077bb2ab74',1,'Node::updateTotalForce()'],['../classNodeMixture.html#aad23b55c873ceefba5e3496f5ff6c8e2',1,'NodeMixture::updateTotalForce()']]], + ['updatevelocity_17',['updateVelocity',['../classNode.html#a2c5e1e80ace265d6da48dad9aaf0e540',1,'Node::updateVelocity()'],['../classNodeMixture.html#aa92a7e632617866fe6ceb0145d179ed5',1,'NodeMixture::updateVelocity()']]], + ['usf_18',['USF',['../namespaceModelSetup.html#a95c5a2eb8b98cbf15989237803593b6cafeb425bfed125fa9b2091b3ebf83f598',1,'ModelSetup']]], + ['usf_20scheme_19',['Update Stress First - USF - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md57',1,'']]], + ['usl_20',['USL',['../namespaceModelSetup.html#a95c5a2eb8b98cbf15989237803593b6ca795ce8efa267e7ebc51a283bcb5d54a5',1,'ModelSetup']]], + ['usl_20scheme_21',['Update Stress Last - USL - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md58',1,'']]] ]; diff --git a/docs/search/all_14.js b/docs/search/all_14.js index f6c3ff6..61b1f30 100644 --- a/docs/search/all_14.js +++ b/docs/search/all_14.js @@ -2,5 +2,7 @@ var searchData= [ ['velocity_0',['velocity',['../structLoads_1_1SeismicData.html#a981c24f497a31813d49fec110c798f06',1,'Loads::SeismicData::velocity'],['../classParticle.html#ad6613d478bf8576a76d3715b517f2b71',1,'Particle::velocity'],['../classNode.html#a1e2717f38550e744950192866c31a8c7',1,'Node::velocity']]], ['velocityfluid_1',['velocityFluid',['../classParticleMixture.html#af480837a21f9ad597c5b69933d328b2c',1,'ParticleMixture::velocityFluid'],['../classNodeMixture.html#aa6560e3f773520ce6fca08c02b5006b7',1,'NodeMixture::velocityFluid']]], - ['vorticityincrement_2',['vorticityIncrement',['../classParticle.html#a6766a701558c1679342e20e97f7f9f9e',1,'Particle']]] + ['verification_20problems_2',['Verification problems',['../verification_problems.html',1,'']]], + ['verifications_2dmanual_2emd_3',['verifications-manual.md',['../verifications-manual_8md.html',1,'']]], + ['vorticityincrement_4',['vorticityIncrement',['../classParticle.html#a6766a701558c1679342e20e97f7f9f9e',1,'Particle']]] ]; diff --git a/docs/search/all_2.js b/docs/search/all_2.js index 525fe94..9d666b4 100644 --- a/docs/search/all_2.js +++ b/docs/search/all_2.js @@ -4,34 +4,35 @@ var searchData= ['cells_1',['CELLS',['../namespaceOutput.html#a35c444bc8f56abfa419ef5780fe9d83dacabf123f0959dd5462747abf003eb3ab',1,'Output']]], ['celltype_2',['CellType',['../namespaceOutput.html#a35c444bc8f56abfa419ef5780fe9d83d',1,'Output']]], ['center_3',['center',['../classBodySphere.html#a1b1ecde2c844cf03e218d62ce971e70c',1,'BodySphere']]], - ['central_20difference_20method_4',['Central difference Method',['../program_theory_manual.html#autotoc_md54',1,'']]], + ['central_20difference_20method_4',['Central difference Method',['../theory_and_numerical_formulation_.html#autotoc_md53',1,'']]], ['cohesion_5',['cohesion',['../classMohrCoulomb.html#ab8c0c43c40ef8e9229de8d13cc8b84c2',1,'MohrCoulomb']]], ['cohesion_5fresidual_6',['cohesion_residual',['../classMohrCoulomb_1_1Softening.html#a0299a7fac2f11761340b922dcf92a02f',1,'MohrCoulomb::Softening']]], ['cohesion_5fsoftening_5factive_7',['cohesion_softening_active',['../classMohrCoulomb_1_1Softening.html#a1dd56daab18af3a15b24cbab50ff9584',1,'MohrCoulomb::Softening']]], - ['compilation_8',['Compilation',['../index.html#program_compilation',1,'']]], - ['compilation_20in_20linux_9',['Compilation in Linux',['../index.html#autotoc_md41',1,'']]], - ['compilation_20in_20windows_10',['Compilation in windows',['../index.html#autotoc_md40',1,'']]], - ['compiled_20binaries_11',['Program compiled binaries',['../index.html#program_binaries',1,'']]], - ['complete_20input_20file_20definition_20example_12',['Complete input file definition example',['../namespaceInput.html#autotoc_md38',1,'']]], - ['computegradient_13',['computeGradient',['../classShape.html#ace2d591e1020c4d4a0cee59c65340b2c',1,'Shape::computeGradient()'],['../classShapeGimp.html#aec66a5261e3b4dcc6895eebfa0457912',1,'ShapeGimp::computeGradient()'],['../classShapeLinear.html#a5aa2c2710b253785549a49b0ab9df6fb',1,'ShapeLinear::computeGradient()']]], - ['computekineticenergy_14',['computeKineticEnergy',['../namespaceDynamicRelaxation.html#a38a5e330e200901d13f65efc46f6a7e4',1,'DynamicRelaxation']]], - ['computeshape_15',['computeShape',['../classShape.html#a821108891fd1b3d8a51895d04259b9f1',1,'Shape::computeShape()'],['../classShapeGimp.html#a6b9bf93afe40d0b02249cfffeb35b1f2',1,'ShapeGimp::computeShape()'],['../classShapeLinear.html#a8e6a7e7e501e2fdaab1825480cb561d2',1,'ShapeLinear::computeShape()']]], - ['conditions_16',['Definition of the planes for setting boundary conditions',['../classBoundary.html#autotoc_md0',1,'']]], - ['configureboundaries_17',['configureBoundaries',['../classMesh.html#a77996ce898ba1611f13edb1bb2cdd0f1',1,'Mesh']]], - ['configurenodalpointloads_18',['configureNodalPointLoads',['../namespaceLoads.html#a70b671a26b22a970ebdb930b2c43a505',1,'Loads']]], - ['configureresultfiels_19',['configureResultFiels',['../namespaceOutput.html#a53978f5e750be3407e4386574952b099',1,'Output']]], - ['contact_20',['Contact',['../classContact.html',1,'Contact'],['../classContact.html#ae39444f378e6de7fd6c3e60981949af5',1,'Contact::Contact()']]], - ['contact_2eh_21',['Contact.h',['../Contact_8h.html',1,'']]], - ['contribution_22',['Contribution',['../classContribution.html',1,'Contribution'],['../classContribution.html#a59775497d673b49ac00b19f525bc1b05',1,'Contribution::Contribution()']]], - ['contribution_2eh_23',['Contribution.h',['../Contribution_8h.html',1,'']]], - ['contributionnodes_24',['contributionNodes',['../classParticle.html#ab31cc3425ed0782e5962a8f75f7b0264',1,'Particle::contributionNodes'],['../namespaceUpdate.html#ac4eb098fb4c61f394ab338f8aa43d546',1,'Update::contributionNodes()']]], - ['coordinates_25',['coordinates',['../classNode.html#a924e2f81d6f9788fd5a3e35dfe8c6ae6',1,'Node']]], - ['coulomb_26',['Mohr-Coulomb',['../namespaceInput.html#autotoc_md34',1,'']]], - ['create_27',['create',['../classBody.html#af9e08d3de1fbdb9077eb73d8133f5062',1,'Body::create()'],['../classBodyCuboid.html#a67c37738ebb9cb1bb98d79c62b7b2aec',1,'BodyCuboid::create()'],['../classBodyParticle.html#a43162cdfd14c6fb97cc9a7d7f00469a9',1,'BodyParticle::create()'],['../classBodyPolygon.html#af5b151c957a9d5ac977b333659a7c9b2',1,'BodyPolygon::create()'],['../classBodySphere.html#ae11521fe762994be934ea9be213558ed',1,'BodySphere::create()']]], - ['createbodies_28',['createBodies',['../classMPM.html#a4120e0647c81b3b85508fde13055e189',1,'MPM']]], - ['creategrid_29',['createGrid',['../classMesh.html#aab02fa9f299965727bebe70b12624e96',1,'Mesh']]], - ['createmodel_30',['createModel',['../classMPM.html#a7330c25c84634d4086f1f173985ba587',1,'MPM']]], - ['cuboid_31',['Cuboid',['../namespaceInput.html#autotoc_md5',1,'']]], - ['cuboid_20definition_32',['Cuboid definition',['../classBodyCuboid.html#autotoc_md42',1,'']]], - ['cuboid_20definition_20example_33',['Cuboid definition example',['../namespaceInput.html#autotoc_md6',1,'']]] + ['comparison_8',['MPM model and result comparison',['../verification_problems.html#autotoc_md64',1,'']]], + ['compilation_9',['Compilation',['../index.html#program_compilation',1,'']]], + ['compilation_20in_20linux_10',['Compilation in Linux',['../index.html#autotoc_md41',1,'']]], + ['compilation_20in_20windows_11',['Compilation in windows',['../index.html#autotoc_md40',1,'']]], + ['compiled_20binaries_12',['Program compiled binaries',['../index.html#program_binaries',1,'']]], + ['complete_20input_20file_20definition_20example_13',['Complete input file definition example',['../namespaceInput.html#autotoc_md38',1,'']]], + ['computegradient_14',['computeGradient',['../classShape.html#ace2d591e1020c4d4a0cee59c65340b2c',1,'Shape::computeGradient()'],['../classShapeGimp.html#aec66a5261e3b4dcc6895eebfa0457912',1,'ShapeGimp::computeGradient()'],['../classShapeLinear.html#a5aa2c2710b253785549a49b0ab9df6fb',1,'ShapeLinear::computeGradient()']]], + ['computekineticenergy_15',['computeKineticEnergy',['../namespaceDynamicRelaxation.html#a38a5e330e200901d13f65efc46f6a7e4',1,'DynamicRelaxation']]], + ['computeshape_16',['computeShape',['../classShape.html#a821108891fd1b3d8a51895d04259b9f1',1,'Shape::computeShape()'],['../classShapeGimp.html#a6b9bf93afe40d0b02249cfffeb35b1f2',1,'ShapeGimp::computeShape()'],['../classShapeLinear.html#a8e6a7e7e501e2fdaab1825480cb561d2',1,'ShapeLinear::computeShape()']]], + ['conditions_17',['Definition of the planes for setting boundary conditions',['../classBoundary.html#autotoc_md0',1,'']]], + ['configureboundaries_18',['configureBoundaries',['../classMesh.html#a77996ce898ba1611f13edb1bb2cdd0f1',1,'Mesh']]], + ['configurenodalpointloads_19',['configureNodalPointLoads',['../namespaceLoads.html#a70b671a26b22a970ebdb930b2c43a505',1,'Loads']]], + ['configureresultfiels_20',['configureResultFiels',['../namespaceOutput.html#a53978f5e750be3407e4386574952b099',1,'Output']]], + ['contact_21',['Contact',['../classContact.html',1,'Contact'],['../classContact.html#ae39444f378e6de7fd6c3e60981949af5',1,'Contact::Contact()']]], + ['contact_2eh_22',['Contact.h',['../Contact_8h.html',1,'']]], + ['contribution_23',['Contribution',['../classContribution.html',1,'Contribution'],['../classContribution.html#a59775497d673b49ac00b19f525bc1b05',1,'Contribution::Contribution()']]], + ['contribution_2eh_24',['Contribution.h',['../Contribution_8h.html',1,'']]], + ['contributionnodes_25',['contributionNodes',['../classParticle.html#ab31cc3425ed0782e5962a8f75f7b0264',1,'Particle::contributionNodes'],['../namespaceUpdate.html#ac4eb098fb4c61f394ab338f8aa43d546',1,'Update::contributionNodes()']]], + ['coordinates_26',['coordinates',['../classNode.html#a924e2f81d6f9788fd5a3e35dfe8c6ae6',1,'Node']]], + ['coulomb_27',['Mohr-Coulomb',['../namespaceInput.html#autotoc_md34',1,'']]], + ['create_28',['create',['../classBody.html#af9e08d3de1fbdb9077eb73d8133f5062',1,'Body::create()'],['../classBodyCuboid.html#a67c37738ebb9cb1bb98d79c62b7b2aec',1,'BodyCuboid::create()'],['../classBodyParticle.html#a43162cdfd14c6fb97cc9a7d7f00469a9',1,'BodyParticle::create()'],['../classBodyPolygon.html#af5b151c957a9d5ac977b333659a7c9b2',1,'BodyPolygon::create()'],['../classBodySphere.html#ae11521fe762994be934ea9be213558ed',1,'BodySphere::create()']]], + ['createbodies_29',['createBodies',['../classMPM.html#a4120e0647c81b3b85508fde13055e189',1,'MPM']]], + ['creategrid_30',['createGrid',['../classMesh.html#aab02fa9f299965727bebe70b12624e96',1,'Mesh']]], + ['createmodel_31',['createModel',['../classMPM.html#a7330c25c84634d4086f1f173985ba587',1,'MPM']]], + ['cuboid_32',['Cuboid',['../namespaceInput.html#autotoc_md5',1,'']]], + ['cuboid_20definition_33',['Cuboid definition',['../classBodyCuboid.html#autotoc_md42',1,'']]], + ['cuboid_20definition_20example_34',['Cuboid definition example',['../namespaceInput.html#autotoc_md6',1,'']]] ]; diff --git a/docs/search/all_3.js b/docs/search/all_3.js index f8f4703..830335f 100644 --- a/docs/search/all_3.js +++ b/docs/search/all_3.js @@ -16,7 +16,7 @@ var searchData= ['densityfluid_13',['densityFluid',['../classMaterial.html#a68c4ef8534dedd53c4999b2df3016049',1,'Material::densityFluid'],['../classParticleMixture.html#ae78ffa45e8742c36cc91730792fd708c',1,'ParticleMixture::densityFluid']]], ['derivate_14',['derivate',['../classShape.html#a7cba38625675fd8164bc53319386dd51',1,'Shape']]], ['diameter_15',['diameter',['../classBodySphere.html#ac81e013e0b40464c83535655727c5497',1,'BodySphere']]], - ['difference_20method_16',['Central difference Method',['../program_theory_manual.html#autotoc_md54',1,'']]], + ['difference_20method_16',['Central difference Method',['../theory_and_numerical_formulation_.html#autotoc_md53',1,'']]], ['dilation_17',['dilation',['../classMohrCoulomb.html#a9718a4d56fc38f21cf55f7666e8f0811',1,'MohrCoulomb']]], ['dilation_5fresidual_18',['dilation_residual',['../classMohrCoulomb_1_1Softening.html#a97e76e5206eb85d089731acf6b47135b',1,'MohrCoulomb::Softening']]], ['dilation_5fsoftening_5factive_19',['dilation_softening_active',['../classMohrCoulomb_1_1Softening.html#a453210352f4ed8e2f2f0be361e1196f5',1,'MohrCoulomb::Softening']]], diff --git a/docs/search/all_4.js b/docs/search/all_4.js index f433d3f..b64780b 100644 --- a/docs/search/all_4.js +++ b/docs/search/all_4.js @@ -9,12 +9,12 @@ var searchData= ['elastoplastic_6',['ELASTOPLASTIC',['../classMaterial.html#aaaec00187d5d2d1827eb7b7a684cf439af7c1716da84b9d2f9db676ba13ba17ae',1,'Material']]], ['end_7',['end',['../classMPM.html#aaef55a9b211eb9068eb9a9c47f3d7471',1,'MPM']]], ['example_8',['Gravity load Example',['../namespaceInput.html#autotoc_md11',1,'']]], - ['example_9',['example',['../program_tutorial_manual.html#autotoc_md59',1,'Base acceleration example'],['../namespaceInput.html#autotoc_md38',1,'Complete input file definition example'],['../namespaceInput.html#autotoc_md6',1,'Cuboid definition example'],['../namespaceInput.html#autotoc_md18',1,'Damping definition example'],['../namespaceInput.html#autotoc_md12',1,'Distributed load in box example'],['../namespaceInput.html#autotoc_md16',1,'Initial pore pressure in particles inside a box example'],['../namespaceInput.html#autotoc_md35',1,'Material definition example'],['../namespaceInput.html#autotoc_md31',1,'Mesh definition example'],['../namespaceInput.html#autotoc_md20',1,'Parallelization definition example'],['../namespaceInput.html#autotoc_md8',1,'Polygon extrusion definition example'],['../namespaceInput.html#autotoc_md15',1,'Prescribed pore pressure in particles inside a box example'],['../namespaceInput.html#autotoc_md37',1,'Results definition example'],['../namespaceInput.html#autotoc_md29',1,'Shape functions definition example'],['../namespaceInput.html#autotoc_md22',1,'Simulation time definition example'],['../namespaceInput.html#autotoc_md27',1,'Stress update scheme definition example'],['../namespaceInput.html#autotoc_md23',1,'Time step definition example'],['../namespaceInput.html#autotoc_md25',1,'Two phase simulation definition example']]], + ['example_9',['example',['../verification_problems.html#autotoc_md65',1,'Base acceleration example'],['../namespaceInput.html#autotoc_md38',1,'Complete input file definition example'],['../namespaceInput.html#autotoc_md6',1,'Cuboid definition example'],['../namespaceInput.html#autotoc_md18',1,'Damping definition example'],['../namespaceInput.html#autotoc_md12',1,'Distributed load in box example'],['../namespaceInput.html#autotoc_md16',1,'Initial pore pressure in particles inside a box example'],['../namespaceInput.html#autotoc_md35',1,'Material definition example'],['../namespaceInput.html#autotoc_md31',1,'Mesh definition example'],['../namespaceInput.html#autotoc_md20',1,'Parallelization definition example'],['../namespaceInput.html#autotoc_md8',1,'Polygon extrusion definition example'],['../namespaceInput.html#autotoc_md15',1,'Prescribed pore pressure in particles inside a box example'],['../namespaceInput.html#autotoc_md37',1,'Results definition example'],['../namespaceInput.html#autotoc_md29',1,'Shape functions definition example'],['../namespaceInput.html#autotoc_md22',1,'Simulation time definition example'],['../namespaceInput.html#autotoc_md27',1,'Stress update scheme definition example'],['../namespaceInput.html#autotoc_md23',1,'Time step definition example'],['../namespaceInput.html#autotoc_md25',1,'Two phase simulation definition example']]], ['example_20of_20body_20defined_20by_20particles_10',['Example of Body defined by particles',['../namespaceInput.html#autotoc_md4',1,'']]], ['examples_11',['examples',['../namespaceInput.html#autotoc_md10',1,'Load definition examples'],['../namespaceInput.html#autotoc_md14',1,'Pore pressure definition examples']]], ['execution_12',['Execution',['../index.html#program_execution',1,'']]], - ['explicit_20mpm_20integration_13',['Explicit MPM integration',['../program_theory_manual.html#autotoc_md53',1,'']]], - ['explicit_20mpm_20scheme_14',['Explicit MPM Scheme',['../program_theory_manual.html#autotoc_md57',1,'']]], + ['explicit_20mpm_20integration_13',['Explicit MPM integration',['../theory_and_numerical_formulation_.html#autotoc_md52',1,'']]], + ['explicit_20mpm_20scheme_14',['Explicit MPM Scheme',['../theory_and_numerical_formulation_.html#autotoc_md56',1,'']]], ['exponential_15',['EXPONENTIAL',['../classMohrCoulomb_1_1Softening.html#ab0a9e1e505a3458ccccc6c0979f0eb50a2bef45a66c7f32c02f9ad157ea14fec7',1,'MohrCoulomb::Softening']]], ['exponential_5fshape_5ffactor_16',['exponential_shape_factor',['../classMohrCoulomb_1_1Softening.html#a632b4797a008523607de352e48c2a65c',1,'MohrCoulomb::Softening']]], ['exponentialsoftening_17',['exponentialSoftening',['../classMohrCoulomb_1_1Softening.html#a558bf48fc76822866cdc5586647bd90c',1,'MohrCoulomb::Softening']]], diff --git a/docs/search/all_5.js b/docs/search/all_5.js index 732e16f..5194323 100644 --- a/docs/search/all_5.js +++ b/docs/search/all_5.js @@ -3,13 +3,14 @@ var searchData= ['farewellscreen_0',['farewellScreen',['../namespaceOutput.html#a4a665354e2a7494ee4e419fa9fb09f67',1,'Output']]], ['features_1',['Program Features',['../index.html#program_features',1,'']]], ['file_20definition_20example_2',['Complete input file definition example',['../namespaceInput.html#autotoc_md38',1,'']]], - ['fixed_3',['FIXED',['../classBoundary.html#aba71309d646c3f90a59be7e8d8cefef5a29c767f767de3a18692913e6216a19c2',1,'Boundary']]], - ['for_20setting_20boundary_20conditions_4',['Definition of the planes for setting boundary conditions',['../classBoundary.html#autotoc_md0',1,'']]], - ['formulation_5',['MPM Formulation',['../program_theory_manual.html#autotoc_md52',1,'']]], - ['free_6',['FREE',['../classBoundary.html#aba71309d646c3f90a59be7e8d8cefef5a2db868e31ca79040aafb4151a8837274',1,'Boundary']]], - ['friction_7',['friction',['../classMohrCoulomb.html#a7faa271523011d22dc0552a3e3eb9e5f',1,'MohrCoulomb']]], - ['friction_5fresidual_8',['friction_residual',['../classMohrCoulomb_1_1Softening.html#ad911e563f41d0eda74e999666e2dab79',1,'MohrCoulomb::Softening']]], - ['friction_5fsoftening_5factive_9',['friction_softening_active',['../classMohrCoulomb_1_1Softening.html#a835c7e9a1e3cb7728847e7795a8060ff',1,'MohrCoulomb::Softening']]], - ['functions_10',['Shape Functions',['../namespaceInput.html#autotoc_md28',1,'']]], - ['functions_20definition_20example_11',['Shape functions definition example',['../namespaceInput.html#autotoc_md29',1,'']]] + ['first_20usf_20scheme_3',['Update Stress First - USF - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md57',1,'']]], + ['fixed_4',['FIXED',['../classBoundary.html#aba71309d646c3f90a59be7e8d8cefef5a29c767f767de3a18692913e6216a19c2',1,'Boundary']]], + ['for_20setting_20boundary_20conditions_5',['Definition of the planes for setting boundary conditions',['../classBoundary.html#autotoc_md0',1,'']]], + ['formulation_6',['Formulation',['../theory_and_numerical_formulation_.html#autotoc_md51',1,'MPM Formulation'],['../theory_and_numerical_formulation_.html',1,'Theory and Numerical Formulation']]], + ['free_7',['FREE',['../classBoundary.html#aba71309d646c3f90a59be7e8d8cefef5a2db868e31ca79040aafb4151a8837274',1,'Boundary']]], + ['friction_8',['friction',['../classMohrCoulomb.html#a7faa271523011d22dc0552a3e3eb9e5f',1,'MohrCoulomb']]], + ['friction_5fresidual_9',['friction_residual',['../classMohrCoulomb_1_1Softening.html#ad911e563f41d0eda74e999666e2dab79',1,'MohrCoulomb::Softening']]], + ['friction_5fsoftening_5factive_10',['friction_softening_active',['../classMohrCoulomb_1_1Softening.html#a835c7e9a1e3cb7728847e7795a8060ff',1,'MohrCoulomb::Softening']]], + ['functions_11',['Shape Functions',['../namespaceInput.html#autotoc_md28',1,'']]], + ['functions_20definition_20example_12',['Shape functions definition example',['../namespaceInput.html#autotoc_md29',1,'']]] ]; diff --git a/docs/search/all_6.js b/docs/search/all_6.js index 5ad3573..caa113f 100644 --- a/docs/search/all_6.js +++ b/docs/search/all_6.js @@ -67,65 +67,66 @@ var searchData= ['getminlimits_64',['getMinLimits',['../classMesh.html#adaba9203135f187ef1cdca2962cccdc5',1,'Mesh']]], ['getmomentum_65',['getMomentum',['../classNode.html#adc6af862a33e6666cfd07cff4cf8af07',1,'Node']]], ['getmomentumfluid_66',['getMomentumFluid',['../classNode.html#a21ce3d4ae3b97df7b304cc993a2f28a5',1,'Node::getMomentumFluid()'],['../classNodeMixture.html#aa0b5ab9c750a79799002755a8059dbe6',1,'NodeMixture::getMomentumFluid()']]], - ['getnodeid_67',['getNodeId',['../classContribution.html#a5018df7fc0d9c53d6d8513c68eab5069',1,'Contribution']]], - ['getnodes_68',['getNodes',['../classMesh.html#a8f53490d8ec1d0bf146681dda1068f9f',1,'Mesh']]], - ['getnodesincell_69',['getNodesInCell',['../classMesh.html#a0f4b38427a6d32b1cf0818fd16ccbfb6',1,'Mesh']]], - ['getnumberphases_70',['getNumberPhases',['../namespaceInput.html#a07964090a615a8b6ded303e5142dcad0',1,'Input']]], - ['getnumcells_71',['getNumCells',['../classMesh.html#aa2d5bf70d1535ce5a430529265012e31',1,'Mesh']]], - ['getnumghosts_72',['getNumGhosts',['../classMesh.html#a6341363fd68b907a35103ece5a698dfd',1,'Mesh']]], - ['getnumnodes_73',['getNumNodes',['../classMesh.html#add72d69b26877f200426dd549e768a83',1,'Mesh']]], - ['getnumthreads_74',['getNumThreads',['../namespaceInput.html#a68ff2de4fd7b8ed532c8e6c2d95c29d9',1,'Input']]], - ['getorigin_75',['getOrigin',['../namespaceInput.html#a6552e832fbea32d95b180b34437c53db',1,'Input']]], - ['getparentcellidconstribution_76',['getParentCellIdConstribution',['../classMesh.html#a8f4c4014a40a776f75ac943c188cfedf',1,'Mesh']]], - ['getparentnodecoordinates_77',['getParentNodeCoordinates',['../classMesh.html#a70c92b5a5e7d9c2125cbd41d4719684a',1,'Mesh']]], - ['getparticles_78',['getParticles',['../classBody.html#a3bbb2bf9a87abb437d979a3999647ae5',1,'Body::getParticles()'],['../classBodyParticle.html#ab7cfd6011cbfacf0ab672e5712c05dbd',1,'BodyParticle::getParticles()']]], - ['getplanex0_79',['getPlaneX0',['../classBoundary.html#a768bfd8194c716a8c905a4c05c1d7ff8',1,'Boundary']]], - ['getplanexn_80',['getPlaneXn',['../classBoundary.html#a7dbb108e25c2a60246a2f7125276bac9',1,'Boundary']]], - ['getplaney0_81',['getPlaneY0',['../classBoundary.html#a4eca4d6b91f1df52c6b43adf0e9c5052',1,'Boundary']]], - ['getplaneyn_82',['getPlaneYn',['../classBoundary.html#a3ac4f6d3a1d199349620d1e214e92ba3',1,'Boundary']]], - ['getplanez0_83',['getPlaneZ0',['../classBoundary.html#ab032a678d2e5150a4eb8530f3a3114b9',1,'Boundary']]], - ['getplanezn_84',['getPlaneZn',['../classBoundary.html#a6b6eb8dd28a951151f762f1fac7b11c6',1,'Boundary']]], - ['getplasticstrain_85',['getPlasticStrain',['../classParticle.html#af890c2e192b2a0978e46b878b3d11c20',1,'Particle']]], - ['getporosity_86',['getPorosity',['../classMaterial.html#ae7982512dc24aec65afffc3f9269e869',1,'Material::getPorosity()'],['../classParticle.html#a3bfe32709cdbfe1ed5f762d6f007c922',1,'Particle::getPorosity()'],['../classParticleMixture.html#aa3a4562ad105e9e87fac52b901087d3c',1,'ParticleMixture::getPorosity()']]], - ['getposition_87',['getPosition',['../classParticle.html#aef9b85bf1fe98da9d0d195f8545604ab',1,'Particle']]], - ['getprescribedpressurebox_88',['getPrescribedPressureBox',['../namespaceInput.html#a22ce7cc2c2261b0784b944184c7efcb2',1,'Input']]], - ['getpressureboundaryforcebox_89',['getPressureBoundaryForceBox',['../namespaceInput.html#a938199e6c47c007f37b518b559e2ee43',1,'Input']]], - ['getpressurefluid_90',['getPressureFluid',['../classParticle.html#ac31838bdfc87d31f053856798c873ce8',1,'Particle::getPressureFluid()'],['../classParticleMixture.html#a850940942bdf74e62cc57187afd0c0f4',1,'ParticleMixture::getPressureFluid()']]], - ['getresultfields_91',['getResultFields',['../namespaceInput.html#a5de246ace76db47015f0af32c9e7eea6',1,'Input']]], - ['getresultnum_92',['getResultNum',['../namespaceInput.html#ac817a10baf4c98d3f406dae86d0fcc60',1,'Input::getResultNum()'],['../namespaceModelSetup.html#a31009b398464ca9a7a95a479ef04f236',1,'ModelSetup::getResultNum()']]], - ['getresultsteps_93',['getResultSteps',['../namespaceModelSetup.html#a7386088c1d7d90126661d500744ab435',1,'ModelSetup']]], - ['getsaturation_94',['getSaturation',['../classParticle.html#a7743b85e38213e91946ecb1a66abbe67',1,'Particle::getSaturation()'],['../classParticleMixture.html#af82045f902557d5e0587eab3f0a3337e',1,'ParticleMixture::getSaturation()']]], - ['getsavestate_95',['getSaveState',['../namespaceInput.html#afba47624d2c22b55c4d2a38f4790de7e',1,'Input::getSaveState()'],['../namespaceModelSetup.html#a4b24a55ce0f3b4af6103d9c1fcd4c967',1,'ModelSetup::getSaveState()']]], - ['getseismicanalysis_96',['getSeismicAnalysis',['../classMPM.html#a2adf8850a2153f327f4c99fd68177d0a',1,'MPM::getSeismicAnalysis()'],['../namespaceModelSetup.html#a69db078b0bc38c70bb30834e14bd5632',1,'ModelSetup::getSeismicAnalysis()']]], - ['getseismicdata_97',['getSeismicData',['../namespaceLoads.html#ac2794cc202d1527d21f610dd1bfc4310',1,'Loads']]], - ['getseismicfilename_98',['getSeismicFileName',['../namespaceModelSetup.html#a3cd47bd6b391f22d9d4616f7cd7c399a',1,'ModelSetup']]], - ['getshape_99',['getShape',['../classShape.html#a26e6bcdd3b784ea4290eb2be499f8365',1,'Shape']]], - ['getshearmodulus_100',['getShearModulus',['../classElastic.html#ae3946d993bccac025f831d8aad477429',1,'Elastic']]], - ['getsimulationtime_101',['getSimulationTime',['../namespaceInput.html#a669cf08e9ea601a6700da09305192771',1,'Input']]], - ['getsize_102',['getSize',['../classParticle.html#ac3e5204bd87ea498f93bc09ca77c87a1',1,'Particle']]], - ['getsolver_103',['getSolver',['../namespaceInput.html#a0aaddb07cda3d6c988f2c5db52bb488e',1,'Input']]], - ['getsoundspeed_104',['getSoundSpeed',['../classElastic.html#a65dd0fef9eb6fbe6c73cb49515aa92d4',1,'Elastic::getSoundSpeed()'],['../classMaterial.html#a5cbe2406b8622edec8b272a005f7a168',1,'Material::getSoundSpeed()']]], - ['getstrain_105',['getStrain',['../classParticle.html#a1666afe1f967eb0370cf5d0776f40c05',1,'Particle']]], - ['getstrainincrement_106',['getStrainIncrement',['../classParticle.html#a456025fac64d35e22d4d95fc389802dd',1,'Particle']]], - ['getstrainincrementfluid_107',['getStrainIncrementFluid',['../classParticle.html#ac53dcece68a15f54cead8e42b31282c4',1,'Particle::getStrainIncrementFluid()'],['../classParticleMixture.html#ad618b6c911f06f733ea0eb525da58185',1,'ParticleMixture::getStrainIncrementFluid()']]], - ['getstress_108',['getStress',['../classParticle.html#a00d3031048e8e864eee4cdbbaa24a7dd',1,'Particle']]], - ['getthreads_109',['getThreads',['../namespaceModelSetup.html#a6d82576fd6bcfef46c27fc5fd3f6ad31',1,'ModelSetup']]], - ['gettime_110',['getTime',['../namespaceModelSetup.html#a9d878b617e6c2aec407af455823a94ae',1,'ModelSetup']]], - ['gettimestep_111',['getTimeStep',['../namespaceInput.html#a62b6f277358d9dd6b95f39001e12bae4',1,'Input::getTimeStep()'],['../namespaceModelSetup.html#a32725e1a91cc388745362c3801999f9b',1,'ModelSetup::getTimeStep()']]], - ['gettotalcells_112',['getTotalCells',['../classMesh.html#a0634ae57b73e29f2a1251db4f78a4991',1,'Mesh']]], - ['gettotalforce_113',['getTotalForce',['../classNode.html#ac320e081db503169fdd0692652f1068b',1,'Node']]], - ['gettotalforcefluid_114',['getTotalForceFluid',['../classNode.html#af74452116f78270ffaecf54506d8c89d',1,'Node::getTotalForceFluid()'],['../classNodeMixture.html#a2c2d410e8c9dc0366c801a8522bb2a36',1,'NodeMixture::getTotalForceFluid()']]], - ['gettotalparticles_115',['getTotalParticles',['../classParticle.html#afa22020e9c44e9e846baa6c75b39073e',1,'Particle']]], - ['gettwophaseactive_116',['getTwoPhaseActive',['../namespaceModelSetup.html#a2f9050bb6d4192b6b1d97359b384c185',1,'ModelSetup']]], - ['gettype_117',['getType',['../classElastic.html#af1114f0a9f7b04f8d2ffd803c6666677',1,'Elastic::getType()'],['../classMaterial.html#a40f32c5036f85ad9d0c49ad66b083194',1,'Material::getType()']]], - ['getupdatestressscheme_118',['getUpdateStressScheme',['../namespaceModelSetup.html#a1eead9b90f8170efff3e7af49fc8bb8e',1,'ModelSetup']]], - ['getvelocity_119',['getVelocity',['../classParticle.html#a56a74940f51dff41d5f75cabe6bf5944',1,'Particle::getVelocity()'],['../classNode.html#a8e7151c308023adb0b02ec7a92fcf96e',1,'Node::getVelocity()']]], - ['getvelocityfluid_120',['getVelocityFluid',['../classParticle.html#ac25ec8c3c91cc45dfa9cc2618f8d845b',1,'Particle::getVelocityFluid()'],['../classParticleMixture.html#a35c1feba3014d4ec9dc4c09989b49385',1,'ParticleMixture::getVelocityFluid()'],['../classNode.html#ad3c0efe56d0b846ecc227ade440c9b8b',1,'Node::getVelocityFluid()'],['../classNodeMixture.html#a9f03d78b443a26e66940622961c14ce8',1,'NodeMixture::getVelocityFluid()']]], - ['getvorticityincrement_121',['getVorticityIncrement',['../classParticle.html#ab28c6d72256756c86db86c1115532364',1,'Particle']]], - ['getweight_122',['getWeight',['../classContribution.html#a78309e2347b9786d75b260cc40c54d86',1,'Contribution']]], - ['getwindowssystem_123',['getWindowsSystem',['../namespaceModelSetup.html#a6f9566f539a712872b07e3374eef0f7c',1,'ModelSetup']]], - ['gimp_124',['GIMP',['../namespaceModelSetup.html#a73c7cfb411f9b3b1062e5fbe694051aba0fbe65f090e7fdeba305da536f255aa6',1,'ModelSetup']]], - ['gradient_125',['gradient',['../classContribution.html#a6d63ff976e6e6036b1c391df0dc00a38',1,'Contribution']]], - ['gravity_20load_20example_126',['Gravity load Example',['../namespaceInput.html#autotoc_md11',1,'']]], - ['gridnodes_127',['gridNodes',['../classMesh.html#a3f082b1cc1f66769da1f59f69c990f65',1,'Mesh']]] + ['getnodalpointlist_67',['getNodalPointList',['../namespaceLoads.html#a67971878871ece27ff54401ffcd9a5ff',1,'Loads']]], + ['getnodeid_68',['getNodeId',['../classContribution.html#a5018df7fc0d9c53d6d8513c68eab5069',1,'Contribution']]], + ['getnodes_69',['getNodes',['../classMesh.html#a8f53490d8ec1d0bf146681dda1068f9f',1,'Mesh']]], + ['getnodesincell_70',['getNodesInCell',['../classMesh.html#a0f4b38427a6d32b1cf0818fd16ccbfb6',1,'Mesh']]], + ['getnumberphases_71',['getNumberPhases',['../namespaceInput.html#a07964090a615a8b6ded303e5142dcad0',1,'Input']]], + ['getnumcells_72',['getNumCells',['../classMesh.html#aa2d5bf70d1535ce5a430529265012e31',1,'Mesh']]], + ['getnumghosts_73',['getNumGhosts',['../classMesh.html#a6341363fd68b907a35103ece5a698dfd',1,'Mesh']]], + ['getnumnodes_74',['getNumNodes',['../classMesh.html#add72d69b26877f200426dd549e768a83',1,'Mesh']]], + ['getnumthreads_75',['getNumThreads',['../namespaceInput.html#a68ff2de4fd7b8ed532c8e6c2d95c29d9',1,'Input']]], + ['getorigin_76',['getOrigin',['../namespaceInput.html#a6552e832fbea32d95b180b34437c53db',1,'Input']]], + ['getparentcellidconstribution_77',['getParentCellIdConstribution',['../classMesh.html#a8f4c4014a40a776f75ac943c188cfedf',1,'Mesh']]], + ['getparentnodecoordinates_78',['getParentNodeCoordinates',['../classMesh.html#a70c92b5a5e7d9c2125cbd41d4719684a',1,'Mesh']]], + ['getparticles_79',['getParticles',['../classBody.html#a3bbb2bf9a87abb437d979a3999647ae5',1,'Body::getParticles()'],['../classBodyParticle.html#ab7cfd6011cbfacf0ab672e5712c05dbd',1,'BodyParticle::getParticles()']]], + ['getplanex0_80',['getPlaneX0',['../classBoundary.html#a768bfd8194c716a8c905a4c05c1d7ff8',1,'Boundary']]], + ['getplanexn_81',['getPlaneXn',['../classBoundary.html#a7dbb108e25c2a60246a2f7125276bac9',1,'Boundary']]], + ['getplaney0_82',['getPlaneY0',['../classBoundary.html#a4eca4d6b91f1df52c6b43adf0e9c5052',1,'Boundary']]], + ['getplaneyn_83',['getPlaneYn',['../classBoundary.html#a3ac4f6d3a1d199349620d1e214e92ba3',1,'Boundary']]], + ['getplanez0_84',['getPlaneZ0',['../classBoundary.html#ab032a678d2e5150a4eb8530f3a3114b9',1,'Boundary']]], + ['getplanezn_85',['getPlaneZn',['../classBoundary.html#a6b6eb8dd28a951151f762f1fac7b11c6',1,'Boundary']]], + ['getplasticstrain_86',['getPlasticStrain',['../classParticle.html#af890c2e192b2a0978e46b878b3d11c20',1,'Particle']]], + ['getporosity_87',['getPorosity',['../classMaterial.html#ae7982512dc24aec65afffc3f9269e869',1,'Material::getPorosity()'],['../classParticle.html#a3bfe32709cdbfe1ed5f762d6f007c922',1,'Particle::getPorosity()'],['../classParticleMixture.html#aa3a4562ad105e9e87fac52b901087d3c',1,'ParticleMixture::getPorosity()']]], + ['getposition_88',['getPosition',['../classParticle.html#aef9b85bf1fe98da9d0d195f8545604ab',1,'Particle']]], + ['getprescribedpressurebox_89',['getPrescribedPressureBox',['../namespaceInput.html#a22ce7cc2c2261b0784b944184c7efcb2',1,'Input']]], + ['getpressureboundaryforcebox_90',['getPressureBoundaryForceBox',['../namespaceInput.html#a938199e6c47c007f37b518b559e2ee43',1,'Input']]], + ['getpressurefluid_91',['getPressureFluid',['../classParticle.html#ac31838bdfc87d31f053856798c873ce8',1,'Particle::getPressureFluid()'],['../classParticleMixture.html#a850940942bdf74e62cc57187afd0c0f4',1,'ParticleMixture::getPressureFluid()']]], + ['getresultfields_92',['getResultFields',['../namespaceInput.html#a5de246ace76db47015f0af32c9e7eea6',1,'Input']]], + ['getresultnum_93',['getResultNum',['../namespaceInput.html#ac817a10baf4c98d3f406dae86d0fcc60',1,'Input::getResultNum()'],['../namespaceModelSetup.html#a31009b398464ca9a7a95a479ef04f236',1,'ModelSetup::getResultNum()']]], + ['getresultsteps_94',['getResultSteps',['../namespaceModelSetup.html#a7386088c1d7d90126661d500744ab435',1,'ModelSetup']]], + ['getsaturation_95',['getSaturation',['../classParticle.html#a7743b85e38213e91946ecb1a66abbe67',1,'Particle::getSaturation()'],['../classParticleMixture.html#af82045f902557d5e0587eab3f0a3337e',1,'ParticleMixture::getSaturation()']]], + ['getsavestate_96',['getSaveState',['../namespaceInput.html#afba47624d2c22b55c4d2a38f4790de7e',1,'Input::getSaveState()'],['../namespaceModelSetup.html#a4b24a55ce0f3b4af6103d9c1fcd4c967',1,'ModelSetup::getSaveState()']]], + ['getseismicanalysis_97',['getSeismicAnalysis',['../classMPM.html#a2adf8850a2153f327f4c99fd68177d0a',1,'MPM::getSeismicAnalysis()'],['../namespaceModelSetup.html#a69db078b0bc38c70bb30834e14bd5632',1,'ModelSetup::getSeismicAnalysis()']]], + ['getseismicdata_98',['getSeismicData',['../namespaceLoads.html#ac2794cc202d1527d21f610dd1bfc4310',1,'Loads']]], + ['getseismicfilename_99',['getSeismicFileName',['../namespaceModelSetup.html#a3cd47bd6b391f22d9d4616f7cd7c399a',1,'ModelSetup']]], + ['getshape_100',['getShape',['../classShape.html#a26e6bcdd3b784ea4290eb2be499f8365',1,'Shape']]], + ['getshearmodulus_101',['getShearModulus',['../classElastic.html#ae3946d993bccac025f831d8aad477429',1,'Elastic']]], + ['getsimulationtime_102',['getSimulationTime',['../namespaceInput.html#a669cf08e9ea601a6700da09305192771',1,'Input']]], + ['getsize_103',['getSize',['../classParticle.html#ac3e5204bd87ea498f93bc09ca77c87a1',1,'Particle']]], + ['getsolver_104',['getSolver',['../namespaceInput.html#a0aaddb07cda3d6c988f2c5db52bb488e',1,'Input']]], + ['getsoundspeed_105',['getSoundSpeed',['../classElastic.html#a65dd0fef9eb6fbe6c73cb49515aa92d4',1,'Elastic::getSoundSpeed()'],['../classMaterial.html#a5cbe2406b8622edec8b272a005f7a168',1,'Material::getSoundSpeed()']]], + ['getstrain_106',['getStrain',['../classParticle.html#a1666afe1f967eb0370cf5d0776f40c05',1,'Particle']]], + ['getstrainincrement_107',['getStrainIncrement',['../classParticle.html#a456025fac64d35e22d4d95fc389802dd',1,'Particle']]], + ['getstrainincrementfluid_108',['getStrainIncrementFluid',['../classParticle.html#ac53dcece68a15f54cead8e42b31282c4',1,'Particle::getStrainIncrementFluid()'],['../classParticleMixture.html#ad618b6c911f06f733ea0eb525da58185',1,'ParticleMixture::getStrainIncrementFluid()']]], + ['getstress_109',['getStress',['../classParticle.html#a00d3031048e8e864eee4cdbbaa24a7dd',1,'Particle']]], + ['getthreads_110',['getThreads',['../namespaceModelSetup.html#a6d82576fd6bcfef46c27fc5fd3f6ad31',1,'ModelSetup']]], + ['gettime_111',['getTime',['../namespaceModelSetup.html#a9d878b617e6c2aec407af455823a94ae',1,'ModelSetup']]], + ['gettimestep_112',['getTimeStep',['../namespaceInput.html#a62b6f277358d9dd6b95f39001e12bae4',1,'Input::getTimeStep()'],['../namespaceModelSetup.html#a32725e1a91cc388745362c3801999f9b',1,'ModelSetup::getTimeStep()']]], + ['gettotalcells_113',['getTotalCells',['../classMesh.html#a0634ae57b73e29f2a1251db4f78a4991',1,'Mesh']]], + ['gettotalforce_114',['getTotalForce',['../classNode.html#ac320e081db503169fdd0692652f1068b',1,'Node']]], + ['gettotalforcefluid_115',['getTotalForceFluid',['../classNode.html#af74452116f78270ffaecf54506d8c89d',1,'Node::getTotalForceFluid()'],['../classNodeMixture.html#a2c2d410e8c9dc0366c801a8522bb2a36',1,'NodeMixture::getTotalForceFluid()']]], + ['gettotalparticles_116',['getTotalParticles',['../classParticle.html#afa22020e9c44e9e846baa6c75b39073e',1,'Particle']]], + ['gettwophaseactive_117',['getTwoPhaseActive',['../namespaceModelSetup.html#a2f9050bb6d4192b6b1d97359b384c185',1,'ModelSetup']]], + ['gettype_118',['getType',['../classElastic.html#af1114f0a9f7b04f8d2ffd803c6666677',1,'Elastic::getType()'],['../classMaterial.html#a40f32c5036f85ad9d0c49ad66b083194',1,'Material::getType()']]], + ['getupdatestressscheme_119',['getUpdateStressScheme',['../namespaceModelSetup.html#a1eead9b90f8170efff3e7af49fc8bb8e',1,'ModelSetup']]], + ['getvelocity_120',['getVelocity',['../classParticle.html#a56a74940f51dff41d5f75cabe6bf5944',1,'Particle::getVelocity()'],['../classNode.html#a8e7151c308023adb0b02ec7a92fcf96e',1,'Node::getVelocity()']]], + ['getvelocityfluid_121',['getVelocityFluid',['../classParticle.html#ac25ec8c3c91cc45dfa9cc2618f8d845b',1,'Particle::getVelocityFluid()'],['../classParticleMixture.html#a35c1feba3014d4ec9dc4c09989b49385',1,'ParticleMixture::getVelocityFluid()'],['../classNode.html#ad3c0efe56d0b846ecc227ade440c9b8b',1,'Node::getVelocityFluid()'],['../classNodeMixture.html#a9f03d78b443a26e66940622961c14ce8',1,'NodeMixture::getVelocityFluid()']]], + ['getvorticityincrement_122',['getVorticityIncrement',['../classParticle.html#ab28c6d72256756c86db86c1115532364',1,'Particle']]], + ['getweight_123',['getWeight',['../classContribution.html#a78309e2347b9786d75b260cc40c54d86',1,'Contribution']]], + ['getwindowssystem_124',['getWindowsSystem',['../namespaceModelSetup.html#a6f9566f539a712872b07e3374eef0f7c',1,'ModelSetup']]], + ['gimp_125',['GIMP',['../namespaceModelSetup.html#a73c7cfb411f9b3b1062e5fbe694051aba0fbe65f090e7fdeba305da536f255aa6',1,'ModelSetup']]], + ['gradient_126',['gradient',['../classContribution.html#a6d63ff976e6e6036b1c391df0dc00a38',1,'Contribution']]], + ['gravity_20load_20example_127',['Gravity load Example',['../namespaceInput.html#autotoc_md11',1,'']]], + ['gridnodes_128',['gridNodes',['../classMesh.html#a3f082b1cc1f66769da1f59f69c990f65',1,'Mesh']]] ]; diff --git a/docs/search/all_8.js b/docs/search/all_8.js index f72b6c6..6234da6 100644 --- a/docs/search/all_8.js +++ b/docs/search/all_8.js @@ -1,7 +1,7 @@ var searchData= [ ['id_0',['id',['../classMaterial.html#a3c350361ffe39076a51722fff3346781',1,'Material::id'],['../classBody.html#a8dea09ffc5c222b5d7bd623963dc6b26',1,'Body::id'],['../classParticle.html#a544b202775517f8ba05efcb9e0a21bee',1,'Particle::id'],['../classNode.html#a59a543130a10c95f1e8642cf8c5645e8',1,'Node::id']]], - ['implementation_1',['Numerical implementation',['../program_theory_manual.html#autotoc_md55',1,'']]], + ['implementation_1',['Numerical implementation',['../theory_and_numerical_formulation_.html#autotoc_md54',1,'']]], ['in_20box_20example_2',['Distributed load in box example',['../namespaceInput.html#autotoc_md12',1,'']]], ['in_20linux_3',['Compilation in Linux',['../index.html#autotoc_md41',1,'']]], ['in_20particles_20inside_20a_20box_20example_4',['in particles inside a box example',['../namespaceInput.html#autotoc_md16',1,'Initial pore pressure in particles inside a box example'],['../namespaceInput.html#autotoc_md15',1,'Prescribed pore pressure in particles inside a box example']]], @@ -19,7 +19,7 @@ var searchData= ['inside_20a_20box_20example_16',['inside a box example',['../namespaceInput.html#autotoc_md16',1,'Initial pore pressure in particles inside a box example'],['../namespaceInput.html#autotoc_md15',1,'Prescribed pore pressure in particles inside a box example']]], ['integratemomentum_17',['integrateMomentum',['../classNode.html#a53ec4cc9f72890708bb0c0f7383723a7',1,'Node::integrateMomentum()'],['../classNodeMixture.html#a4de17d48bf0c97df29343d847d60fba0',1,'NodeMixture::integrateMomentum()']]], ['integration_18',['Integration',['../namespaceIntegration.html',1,'']]], - ['integration_19',['Explicit MPM integration',['../program_theory_manual.html#autotoc_md53',1,'']]], + ['integration_19',['Explicit MPM integration',['../theory_and_numerical_formulation_.html#autotoc_md52',1,'']]], ['integration_2eh_20',['Integration.h',['../Integration_8h.html',1,'']]], ['internalforce_21',['internalForce',['../classNode.html#ab1f099daeae52f3d36a9fe0f873ae760',1,'Node']]], ['internalforcefluid_22',['internalForceFluid',['../classParticleMixture.html#ac8423fea0174c71ac288e90e5e06b218',1,'ParticleMixture::internalForceFluid'],['../classNodeMixture.html#a52bc800e0625674313bda9d740f9a8a8',1,'NodeMixture::internalForceFluid']]], @@ -27,7 +27,7 @@ var searchData= ['interpolation_24',['Interpolation',['../namespaceInterpolation.html',1,'']]], ['interpolation_2eh_25',['Interpolation.h',['../Interpolation_8h.html',1,'']]], ['interpolationfunctiontype_26',['InterpolationFunctionType',['../namespaceModelSetup.html#a73c7cfb411f9b3b1062e5fbe694051ab',1,'ModelSetup']]], - ['introduction_27',['Introduction',['../index.html#program_intro',1,'Introduction'],['../classBodyParticle.html#autotoc_md43',1,'Introduction'],['../classBodyPolygon.html#autotoc_md44',1,'Introduction']]], - ['introduction_20to_20mpm_28',['Introduction to MPM',['../program_theory_manual.html#autotoc_md51',1,'']]], + ['introduction_27',['Introduction',['../index.html#program_intro',1,'Introduction'],['../classBodyParticle.html#autotoc_md43',1,'Introduction'],['../classBodyPolygon.html#autotoc_md44',1,'Introduction'],['../verification_problems.html#autotoc_md62',1,'Introduction']]], + ['introduction_20to_20the_20material_20point_20method_20mpm_28',['Introduction to the Material Point Method (MPM)',['../theory_and_numerical_formulation_.html#autotoc_md50',1,'']]], ['isfieldrequired_29',['isFieldRequired',['../namespaceOutput.html#a7c32e402d419f0ff6bc3358ea83a4a5a',1,'Output']]] ]; diff --git a/docs/search/all_b.js b/docs/search/all_b.js index 88ad532..fc2eb83 100644 --- a/docs/search/all_b.js +++ b/docs/search/all_b.js @@ -1,19 +1,22 @@ var searchData= [ - ['length_0',['The Discretization Length',['../classBodyPolygon.html#autotoc_md47',1,'']]], - ['linear_1',['LINEAR',['../namespaceModelSetup.html#a73c7cfb411f9b3b1062e5fbe694051abadea6e591c30d7c6ee7bfb32b19a0cbbd',1,'ModelSetup']]], - ['linear_20elastic_2',['Linear Elastic',['../namespaceInput.html#autotoc_md33',1,'']]], - ['linux_3',['LINUX',['../namespaceModelSetup.html#a840758c49dbf1762422cf753e2da09cba8bb92a43c19ed3454ea6c170960a1d22',1,'ModelSetup']]], - ['linux_4',['Compilation in Linux',['../index.html#autotoc_md41',1,'']]], - ['load_5',['load',['../structLoads_1_1LoadDistributedBox.html#a40c36d1273d64d21ce2a39a5044efe34',1,'Loads::LoadDistributedBox::load'],['../structLoads_1_1NodalPointLoad.html#a42952a45bee43182ca85b6a1486f7565',1,'Loads::NodalPointLoad::load']]], - ['load_20definition_20examples_6',['Load definition examples',['../namespaceInput.html#autotoc_md10',1,'']]], - ['load_20example_7',['Gravity load Example',['../namespaceInput.html#autotoc_md11',1,'']]], - ['load_20in_20box_20example_8',['Distributed load in box example',['../namespaceInput.html#autotoc_md12',1,'']]], - ['load_20states_9',['Save/Load States',['../namespaceInput.html#autotoc_md39',1,'']]], - ['loaddistributedbox_10',['LoadDistributedBox',['../structLoads_1_1LoadDistributedBox.html',1,'Loads']]], - ['loadparticlestress_11',['loadParticleStress',['../namespaceStates.html#a4642af2e182f79a07339ec84ac2750df',1,'States']]], - ['loads_12',['Loads',['../namespaceLoads.html',1,'Loads'],['../namespaceInput.html#autotoc_md9',1,'Loads']]], - ['loads_2eh_13',['Loads.h',['../Loads_8h.html',1,'']]], - ['loadstate_14',['loadState',['../classMPM.html#a58de235dbff166772de6d60b7151e271',1,'MPM']]], - ['local_15',['LOCAL',['../namespaceModelSetup.html#a00e7195f09f9bd709ef76fce4eb77698aaeed93c6d5825077deaf0c6cb8092092',1,'ModelSetup']]] + ['last_20musl_20scheme_0',['Modified Update Stress Last - MUSL - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md59',1,'']]], + ['last_20usl_20scheme_1',['Update Stress Last - USL - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md58',1,'']]], + ['length_2',['The Discretization Length',['../classBodyPolygon.html#autotoc_md47',1,'']]], + ['linear_3',['LINEAR',['../namespaceModelSetup.html#a73c7cfb411f9b3b1062e5fbe694051abadea6e591c30d7c6ee7bfb32b19a0cbbd',1,'ModelSetup']]], + ['linear_20elastic_4',['Linear Elastic',['../namespaceInput.html#autotoc_md33',1,'']]], + ['linux_5',['LINUX',['../namespaceModelSetup.html#a840758c49dbf1762422cf753e2da09cba8bb92a43c19ed3454ea6c170960a1d22',1,'ModelSetup']]], + ['linux_6',['Compilation in Linux',['../index.html#autotoc_md41',1,'']]], + ['load_7',['load',['../structLoads_1_1LoadDistributedBox.html#a40c36d1273d64d21ce2a39a5044efe34',1,'Loads::LoadDistributedBox']]], + ['load_20definition_20examples_8',['Load definition examples',['../namespaceInput.html#autotoc_md10',1,'']]], + ['load_20example_9',['Gravity load Example',['../namespaceInput.html#autotoc_md11',1,'']]], + ['load_20in_20box_20example_10',['Distributed load in box example',['../namespaceInput.html#autotoc_md12',1,'']]], + ['load_20states_11',['Save/Load States',['../namespaceInput.html#autotoc_md39',1,'']]], + ['loaddistributedbox_12',['LoadDistributedBox',['../structLoads_1_1LoadDistributedBox.html',1,'Loads']]], + ['loadparticlestress_13',['loadParticleStress',['../namespaceStates.html#a4642af2e182f79a07339ec84ac2750df',1,'States']]], + ['loads_14',['Loads',['../namespaceLoads.html',1,'Loads'],['../namespaceInput.html#autotoc_md9',1,'Loads']]], + ['loads_15',['loads',['../structLoads_1_1NodalPointLoadData.html#a1647ba0a8c8b3c98ce0de7a6f5ce77cb',1,'Loads::NodalPointLoadData']]], + ['loads_2eh_16',['Loads.h',['../Loads_8h.html',1,'']]], + ['loadstate_17',['loadState',['../classMPM.html#a58de235dbff166772de6d60b7151e271',1,'MPM']]], + ['local_18',['LOCAL',['../namespaceModelSetup.html#a00e7195f09f9bd709ef76fce4eb77698aaeed93c6d5825077deaf0c6cb8092092',1,'ModelSetup']]] ]; diff --git a/docs/search/all_c.js b/docs/search/all_c.js index ad42c84..6fba492 100644 --- a/docs/search/all_c.js +++ b/docs/search/all_c.js @@ -1,41 +1,43 @@ var searchData= [ - ['manual_0',['manual',['../program_theory_manual.html',1,'Theory manual'],['../program_tutorial_manual.html',1,'Tutorial manual']]], - ['manual_2emd_1',['manual.md',['../manual_8md.html',1,'']]], - ['mass_2',['mass',['../classParticle.html#ae6d46dc24a6666d526f211151fecca5f',1,'Particle::mass'],['../classNode.html#a63e510fc9158eb15e751861bc14eae38',1,'Node::mass']]], - ['massfluid_3',['massFluid',['../classParticleMixture.html#a74ccc525e1b7d70492fe754902b5830b',1,'ParticleMixture::massFluid'],['../classNodeMixture.html#abc6558b0f778ec0c697cf950dd87aef7',1,'NodeMixture::massFluid']]], - ['material_4',['Material',['../classMaterial.html',1,'Material'],['../classMaterial.html#a4fca8e76ddfb7e310071a258174de41d',1,'Material::Material()']]], - ['material_5',['material',['../classParticle.html#a2d2c909473d35b93e501969d474ade82',1,'Particle']]], - ['material_20definition_20example_6',['Material definition example',['../namespaceInput.html#autotoc_md35',1,'']]], - ['material_20point_20method_20mpm_7',['Material Point Method (MPM)',['../program_theory_manual.html#autotoc_md50',1,'']]], - ['material_20points_20are_20placed_20in_20the_20body_8',['How the material points are placed in the body',['../classBodyPolygon.html#autotoc_md48',1,'']]], - ['material_2eh_9',['Material.h',['../Material_8h.html',1,'']]], - ['materialid_10',['materialId',['../structLoads_1_1PressureMaterial.html#a049b4bc25fe21610649f3ffb6f447692',1,'Loads::PressureMaterial::materialId'],['../classBodyCuboid.html#a9dc27d5823f6ee0fbce296e057c1e524',1,'BodyCuboid::materialId'],['../classBodyParticle.html#af968de001b6f0d7a44cae68ec02da0d8',1,'BodyParticle::materialId'],['../classBodyPolygon.html#a970abd4a7b3c3bb4978e35f418911ad2',1,'BodyPolygon::materialId'],['../classBodySphere.html#a5d15944a986226c6d8d804f66bb51d4e',1,'BodySphere::materialId']]], - ['materials_11',['Materials',['../namespaceInput.html#autotoc_md32',1,'']]], - ['materials_12',['materials',['../classMPM.html#a85be5f9823bccdb2b9a3616ce46b57cf',1,'MPM']]], - ['materialtype_13',['MaterialType',['../classMaterial.html#aaaec00187d5d2d1827eb7b7a684cf439',1,'Material']]], - ['maxlimit_14',['maxLimit',['../classMesh.html#a372edf56232cae8e5800a3d6bee6c71d',1,'Mesh']]], - ['mesh_15',['Mesh',['../classMesh.html',1,'Mesh'],['../classMesh.html#a2af137f1571af89172b9c102302c416b',1,'Mesh::Mesh()'],['../namespaceInput.html#autotoc_md30',1,'Mesh']]], - ['mesh_16',['mesh',['../classMPM.html#a3eccc5a6205228f1487de39592553fb3',1,'MPM::mesh'],['../classSolver.html#a9b516765134fb4193329639761924cf7',1,'Solver::mesh']]], - ['mesh_20definition_20example_17',['Mesh definition example',['../namespaceInput.html#autotoc_md31',1,'']]], - ['mesh_2eh_18',['Mesh.h',['../Mesh_8h.html',1,'']]], - ['method_19',['Central difference Method',['../program_theory_manual.html#autotoc_md54',1,'']]], - ['method_20mpm_20',['Material Point Method (MPM)',['../program_theory_manual.html#autotoc_md50',1,'']]], - ['minlimit_21',['minLimit',['../classMesh.html#a39fb26948af4a7ffdebb62e80b419052',1,'Mesh']]], - ['model_22',['MPM-Model',['../program_tutorial_manual.html#autotoc_md60',1,'']]], - ['model_2eh_23',['Model.h',['../Model_8h.html',1,'']]], - ['modelsetup_24',['ModelSetup',['../namespaceModelSetup.html',1,'']]], + ['mass_0',['mass',['../classParticle.html#ae6d46dc24a6666d526f211151fecca5f',1,'Particle::mass'],['../classNode.html#a63e510fc9158eb15e751861bc14eae38',1,'Node::mass']]], + ['massfluid_1',['massFluid',['../classParticleMixture.html#a74ccc525e1b7d70492fe754902b5830b',1,'ParticleMixture::massFluid'],['../classNodeMixture.html#abc6558b0f778ec0c697cf950dd87aef7',1,'NodeMixture::massFluid']]], + ['material_2',['Material',['../classMaterial.html',1,'Material'],['../classMaterial.html#a4fca8e76ddfb7e310071a258174de41d',1,'Material::Material()']]], + ['material_3',['material',['../classParticle.html#a2d2c909473d35b93e501969d474ade82',1,'Particle']]], + ['material_20definition_20example_4',['Material definition example',['../namespaceInput.html#autotoc_md35',1,'']]], + ['material_20point_20method_20mpm_5',['Introduction to the Material Point Method (MPM)',['../theory_and_numerical_formulation_.html#autotoc_md50',1,'']]], + ['material_20points_20are_20placed_20in_20the_20body_6',['How the material points are placed in the body',['../classBodyPolygon.html#autotoc_md48',1,'']]], + ['material_2eh_7',['Material.h',['../Material_8h.html',1,'']]], + ['materialid_8',['materialId',['../structLoads_1_1PressureMaterial.html#a049b4bc25fe21610649f3ffb6f447692',1,'Loads::PressureMaterial::materialId'],['../classBodyCuboid.html#a9dc27d5823f6ee0fbce296e057c1e524',1,'BodyCuboid::materialId'],['../classBodyParticle.html#af968de001b6f0d7a44cae68ec02da0d8',1,'BodyParticle::materialId'],['../classBodyPolygon.html#a970abd4a7b3c3bb4978e35f418911ad2',1,'BodyPolygon::materialId'],['../classBodySphere.html#a5d15944a986226c6d8d804f66bb51d4e',1,'BodySphere::materialId']]], + ['materials_9',['Materials',['../namespaceInput.html#autotoc_md32',1,'']]], + ['materials_10',['materials',['../classMPM.html#a85be5f9823bccdb2b9a3616ce46b57cf',1,'MPM']]], + ['materialtype_11',['MaterialType',['../classMaterial.html#aaaec00187d5d2d1827eb7b7a684cf439',1,'Material']]], + ['maxlimit_12',['maxLimit',['../classMesh.html#a372edf56232cae8e5800a3d6bee6c71d',1,'Mesh']]], + ['mesh_13',['Mesh',['../classMesh.html',1,'Mesh'],['../classMesh.html#a2af137f1571af89172b9c102302c416b',1,'Mesh::Mesh()'],['../namespaceInput.html#autotoc_md30',1,'Mesh']]], + ['mesh_14',['mesh',['../classMPM.html#a3eccc5a6205228f1487de39592553fb3',1,'MPM::mesh'],['../classSolver.html#a9b516765134fb4193329639761924cf7',1,'Solver::mesh']]], + ['mesh_20definition_20example_15',['Mesh definition example',['../namespaceInput.html#autotoc_md31',1,'']]], + ['mesh_2eh_16',['Mesh.h',['../Mesh_8h.html',1,'']]], + ['method_17',['Central difference Method',['../theory_and_numerical_formulation_.html#autotoc_md53',1,'']]], + ['method_20mpm_18',['Introduction to the Material Point Method (MPM)',['../theory_and_numerical_formulation_.html#autotoc_md50',1,'']]], + ['minlimit_19',['minLimit',['../classMesh.html#a39fb26948af4a7ffdebb62e80b419052',1,'Mesh']]], + ['model_20',['MPM-Model',['../verification_problems.html#autotoc_md66',1,'']]], + ['model_20and_20result_20comparison_21',['MPM model and result comparison',['../verification_problems.html#autotoc_md64',1,'']]], + ['model_2eh_22',['Model.h',['../Model_8h.html',1,'']]], + ['modelsetup_23',['ModelSetup',['../namespaceModelSetup.html',1,'']]], + ['modified_20update_20stress_20last_20musl_20scheme_24',['Modified Update Stress Last - MUSL - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md59',1,'']]], ['mohr_20coulomb_25',['Mohr-Coulomb',['../namespaceInput.html#autotoc_md34',1,'']]], ['mohrcoulomb_26',['MohrCoulomb',['../classMohrCoulomb.html',1,'MohrCoulomb'],['../classMohrCoulomb.html#a75c0c14bbdb75a0f5af88123839a8903',1,'MohrCoulomb::MohrCoulomb()']]], ['mohrcoulomb_2eh_27',['MohrCoulomb.h',['../MohrCoulomb_8h.html',1,'']]], ['momentum_28',['momentum',['../classNode.html#a1b1d61e14d6c1a21f1b1f1bca435a861',1,'Node']]], ['momentumfluid_29',['momentumFluid',['../classNodeMixture.html#a5da23c1a3c0b73ce305c9d4e046776fb',1,'NodeMixture']]], - ['mpm_30',['MPM',['../program_theory_manual.html#autotoc_md51',1,'Introduction to MPM'],['../program_theory_manual.html#autotoc_md50',1,'Material Point Method (MPM)'],['../classMPM.html',1,'MPM'],['../classMPM.html#a46564d917454933a67269f4aa7cb65e1',1,'MPM::MPM()']]], - ['mpm_20formulation_31',['MPM Formulation',['../program_theory_manual.html#autotoc_md52',1,'']]], + ['mpm_30',['MPM',['../theory_and_numerical_formulation_.html#autotoc_md50',1,'Introduction to the Material Point Method (MPM)'],['../classMPM.html',1,'MPM'],['../classMPM.html#a46564d917454933a67269f4aa7cb65e1',1,'MPM::MPM()']]], + ['mpm_20formulation_31',['MPM Formulation',['../theory_and_numerical_formulation_.html#autotoc_md51',1,'']]], ['mpm_20geomechanics_32',['MPM-Geomechanics',['../index.html',1,'']]], - ['mpm_20integration_33',['Explicit MPM integration',['../program_theory_manual.html#autotoc_md53',1,'']]], - ['mpm_20model_34',['MPM-Model',['../program_tutorial_manual.html#autotoc_md60',1,'']]], - ['mpm_20scheme_35',['Explicit MPM Scheme',['../program_theory_manual.html#autotoc_md57',1,'']]], - ['mpm_2eh_36',['MPM.h',['../MPM_8h.html',1,'']]], - ['musl_37',['MUSL',['../namespaceModelSetup.html#a95c5a2eb8b98cbf15989237803593b6ca89c017f04104823dccb2502143916c59',1,'ModelSetup']]] + ['mpm_20integration_33',['Explicit MPM integration',['../theory_and_numerical_formulation_.html#autotoc_md52',1,'']]], + ['mpm_20model_34',['MPM-Model',['../verification_problems.html#autotoc_md66',1,'']]], + ['mpm_20model_20and_20result_20comparison_35',['MPM model and result comparison',['../verification_problems.html#autotoc_md64',1,'']]], + ['mpm_20scheme_36',['Explicit MPM Scheme',['../theory_and_numerical_formulation_.html#autotoc_md56',1,'']]], + ['mpm_2eh_37',['MPM.h',['../MPM_8h.html',1,'']]], + ['musl_38',['MUSL',['../namespaceModelSetup.html#a95c5a2eb8b98cbf15989237803593b6ca89c017f04104823dccb2502143916c59',1,'ModelSetup']]], + ['musl_20scheme_39',['Modified Update Stress Last - MUSL - Scheme',['../theory_and_numerical_formulation_.html#autotoc_md59',1,'']]] ]; diff --git a/docs/search/all_d.js b/docs/search/all_d.js index f49b6d4..4f8f77a 100644 --- a/docs/search/all_d.js +++ b/docs/search/all_d.js @@ -2,7 +2,7 @@ var searchData= [ ['ncells_0',['nCells',['../classMesh.html#a64370d667c6ea5953e6282ea0eff29ad',1,'Mesh']]], ['nghosts_1',['nGhosts',['../classMesh.html#adbcc26ba65b26ce2d1b3b8f697e94d27',1,'Mesh']]], - ['nodal_5fid_2',['nodal_id',['../structLoads_1_1NodalPointLoad.html#ada67ac2a3723a1de108c5211e383b274',1,'Loads::NodalPointLoad']]], + ['nodal_5fids_2',['nodal_ids',['../structLoads_1_1NodalPointLoadData.html#a14fd981401531322fd2572c17b3416f7',1,'Loads::NodalPointLoadData']]], ['nodaldragforcefluid_3',['nodalDragForceFluid',['../namespaceInterpolation.html#a3db0b8bfe941b0ec261a3aa7e19ac225',1,'Interpolation']]], ['nodalexternalforce_4',['nodalExternalForce',['../namespaceInterpolation.html#a965a7f2998678bdba6b6f25e9e379fbf',1,'Interpolation']]], ['nodalexternalforcefluid_5',['nodalExternalForceFluid',['../namespaceInterpolation.html#aa0e9ca194089680af902b611e4fd6766',1,'Interpolation']]], @@ -12,8 +12,8 @@ var searchData= ['nodalmassfuid_9',['nodalMassFuid',['../namespaceInterpolation.html#ada191e99fa8bd78e8274a4316b8e24a4',1,'Interpolation']]], ['nodalmomentum_10',['nodalMomentum',['../namespaceIntegration.html#aafb00ee10cc8471da1bbbc1b05e481e9',1,'Integration::nodalMomentum()'],['../namespaceInterpolation.html#ad6b0c362a03102b2ffceb06039f46935',1,'Interpolation::nodalMomentum(Mesh *mesh, vector< Body * > *bodies)']]], ['nodalmomentumfluid_11',['nodalMomentumFluid',['../namespaceInterpolation.html#a135cfc683b9cffc0abb3e8542c0b17d6',1,'Interpolation']]], - ['nodalpointload_12',['NodalPointLoad',['../structLoads_1_1NodalPointLoad.html',1,'Loads']]], - ['nodalpointload_13',['nodalPointLoad',['../namespaceLoads.html#a7863042b1bc1dad916b60d4f7aec821e',1,'Loads']]], + ['nodalpointload_12',['NodalPointLoad',['../structNodalPointLoad.html',1,'']]], + ['nodalpointloaddata_13',['NodalPointLoadData',['../structLoads_1_1NodalPointLoadData.html',1,'Loads']]], ['nodaltotalforce_14',['nodalTotalForce',['../namespaceUpdate.html#ad27e963611658974a0b33f5a1e77fc3e',1,'Update']]], ['nodalvelocity_15',['nodalVelocity',['../namespaceUpdate.html#a6d65ee56959a561441007d13172b647d',1,'Update']]], ['node_16',['Node',['../classNode.html',1,'Node'],['../classNode.html#ad7a34779cad45d997bfd6d3d8043c75f',1,'Node::Node()']]], @@ -24,5 +24,6 @@ var searchData= ['nodes_21',['nodes',['../structBoundary_1_1planeBoundary.html#a7927ae162c36d4744792b84fcce0a4b6',1,'Boundary::planeBoundary']]], ['none_22',['NONE',['../classMaterial.html#aaaec00187d5d2d1827eb7b7a684cf439a475f621305a78332aabeda42414075da',1,'Material::NONE'],['../classMohrCoulomb_1_1Softening.html#ab0a9e1e505a3458ccccc6c0979f0eb50a73d78f925d0bdd33349cfe7ec42b7067',1,'MohrCoulomb::Softening::NONE']]], ['nrows_23',['nRows',['../classMesh.html#a92cada479e59250c2411dc220c72822d',1,'Mesh']]], - ['numerical_20implementation_24',['Numerical implementation',['../program_theory_manual.html#autotoc_md55',1,'']]] + ['numerical_20formulation_24',['Theory and Numerical Formulation',['../theory_and_numerical_formulation_.html',1,'']]], + ['numerical_20implementation_25',['Numerical implementation',['../theory_and_numerical_formulation_.html#autotoc_md54',1,'']]] ]; diff --git a/docs/search/all_f.js b/docs/search/all_f.js index 827dcf4..95e5f47 100644 --- a/docs/search/all_f.js +++ b/docs/search/all_f.js @@ -34,11 +34,11 @@ var searchData= ['planez0_31',['planeZ0',['../classBoundary.html#a481e3c7240a1eaa93ed862da8c01571c',1,'Boundary']]], ['planezn_32',['planeZn',['../classBoundary.html#a8a9ad8258b5721b6bafb41dafe44df7f',1,'Boundary']]], ['plasticstrain_33',['plasticStrain',['../classParticle.html#a0501e3f8bb3cf37f332ee49d427bb220',1,'Particle']]], - ['point_34',['point',['../structLoads_1_1NodalPointLoad.html#a583d05b5202d730eb0b82b5037a8b5bb',1,'Loads::NodalPointLoad']]], - ['point_20method_20mpm_35',['Material Point Method (MPM)',['../program_theory_manual.html#autotoc_md50',1,'']]], - ['pointp1_36',['pointP1',['../structLoads_1_1LoadDistributedBox.html#af2bd873fd6cc0183b3d0724e9fd53a65',1,'Loads::LoadDistributedBox::pointP1'],['../structLoads_1_1PressureBox.html#aec7b220e4ca84b6cd3095b335e5f96c6',1,'Loads::PressureBox::pointP1'],['../structLoads_1_1PressureBoundaryForceBox.html#a51afd209b038225d90d2fbc9d9152bc5',1,'Loads::PressureBoundaryForceBox::pointP1'],['../classBodyCuboid.html#af464accfe308b43312d48826e572ee77',1,'BodyCuboid::pointP1']]], - ['pointp2_37',['pointP2',['../structLoads_1_1LoadDistributedBox.html#ad6e851b83ecd45a6a86c649530fa5378',1,'Loads::LoadDistributedBox::pointP2'],['../structLoads_1_1PressureBox.html#a84fe1e45c0fd5e30f82723316d18da8d',1,'Loads::PressureBox::pointP2'],['../structLoads_1_1PressureBoundaryForceBox.html#af1d35221a761797bbf9cc542e73d4cb0',1,'Loads::PressureBoundaryForceBox::pointP2'],['../classBodyCuboid.html#abb23b2c292262774f60c47b576eaff8e',1,'BodyCuboid::pointP2']]], - ['points_38',['POINTS',['../namespaceOutput.html#a35c444bc8f56abfa419ef5780fe9d83dace7a9247762e2a3fcd206c2cf670f53a',1,'Output']]], + ['point_20method_20mpm_34',['Introduction to the Material Point Method (MPM)',['../theory_and_numerical_formulation_.html#autotoc_md50',1,'']]], + ['pointp1_35',['pointP1',['../structLoads_1_1LoadDistributedBox.html#af2bd873fd6cc0183b3d0724e9fd53a65',1,'Loads::LoadDistributedBox::pointP1'],['../structLoads_1_1PressureBox.html#aec7b220e4ca84b6cd3095b335e5f96c6',1,'Loads::PressureBox::pointP1'],['../structLoads_1_1PressureBoundaryForceBox.html#a51afd209b038225d90d2fbc9d9152bc5',1,'Loads::PressureBoundaryForceBox::pointP1'],['../classBodyCuboid.html#af464accfe308b43312d48826e572ee77',1,'BodyCuboid::pointP1']]], + ['pointp2_36',['pointP2',['../structLoads_1_1LoadDistributedBox.html#ad6e851b83ecd45a6a86c649530fa5378',1,'Loads::LoadDistributedBox::pointP2'],['../structLoads_1_1PressureBox.html#a84fe1e45c0fd5e30f82723316d18da8d',1,'Loads::PressureBox::pointP2'],['../structLoads_1_1PressureBoundaryForceBox.html#af1d35221a761797bbf9cc542e73d4cb0',1,'Loads::PressureBoundaryForceBox::pointP2'],['../classBodyCuboid.html#abb23b2c292262774f60c47b576eaff8e',1,'BodyCuboid::pointP2']]], + ['points_37',['POINTS',['../namespaceOutput.html#a35c444bc8f56abfa419ef5780fe9d83dace7a9247762e2a3fcd206c2cf670f53a',1,'Output']]], + ['points_38',['points',['../structLoads_1_1NodalPointLoadData.html#a3bcdea5f19060a2e3a9e516686f2606e',1,'Loads::NodalPointLoadData']]], ['points_20are_20placed_20in_20the_20body_39',['How the material points are placed in the body',['../classBodyPolygon.html#autotoc_md48',1,'']]], ['poisson_40',['Poisson',['../classElastic.html#a03ee435222a72268fca4e6763ad995e3',1,'Elastic']]], ['polygon_20extrusion_41',['Polygon extrusion',['../namespaceInput.html#autotoc_md7',1,'']]], @@ -52,17 +52,18 @@ var searchData= ['position_49',['position',['../classParticle.html#a58bb6267f20ebb153a1f0f0770ff6919',1,'Particle']]], ['prescribed_20pore_20pressure_20in_20particles_20inside_20a_20box_20example_50',['Prescribed pore pressure in particles inside a box example',['../namespaceInput.html#autotoc_md15',1,'']]], ['prescribedporepressure_51',['PrescribedPorePressure',['../structLoads_1_1PrescribedPorePressure.html',1,'Loads::PrescribedPorePressure'],['../structLoads_1_1PrescribedPorePressure.html#af85a3a72657c866a5482271be93f4d76',1,'Loads::PrescribedPorePressure::PrescribedPorePressure()']]], - ['prescribedporepressureparticleslist_52',['prescribedPorePressureParticlesList',['../namespaceLoads.html#ad8a3ae1d06dccc3acb90569960068461',1,'Loads']]], - ['pressure_53',['pressure',['../namespaceInput.html#autotoc_md13',1,'Pore pressure'],['../structLoads_1_1PressureBox.html#aeabe07787030094c3b3b67db6c0b8b07',1,'Loads::PressureBox::pressure'],['../structLoads_1_1PressureMaterial.html#a5ef74a16e12a0605381953242c0847eb',1,'Loads::PressureMaterial::pressure'],['../structLoads_1_1PrescribedPorePressure.html#a84f1720829d891bc3f82b494b6d02961',1,'Loads::PrescribedPorePressure::pressure']]], - ['pressure_20definition_20examples_54',['Pore pressure definition examples',['../namespaceInput.html#autotoc_md14',1,'']]], - ['pressure_20in_20particles_20inside_20a_20box_20example_55',['pressure in particles inside a box example',['../namespaceInput.html#autotoc_md16',1,'Initial pore pressure in particles inside a box example'],['../namespaceInput.html#autotoc_md15',1,'Prescribed pore pressure in particles inside a box example']]], - ['pressureboundaryforcebox_56',['PressureBoundaryForceBox',['../structLoads_1_1PressureBoundaryForceBox.html',1,'Loads']]], - ['pressurebox_57',['PressureBox',['../structLoads_1_1PressureBox.html',1,'Loads']]], - ['pressurefluid_58',['pressureFluid',['../classParticleMixture.html#aab86e5a98f13579a7406f34ab690afb0',1,'ParticleMixture']]], - ['pressureforce_59',['pressureForce',['../structLoads_1_1PressureBoundaryForceBox.html#a39b27d9a96b7a71b2876a0d60d10b1ae',1,'Loads::PressureBoundaryForceBox']]], - ['pressurematerial_60',['PressureMaterial',['../structLoads_1_1PressureMaterial.html',1,'Loads']]], - ['printelapsedtime_61',['printElapsedTime',['../namespaceOutput.html#a4ef15c6487520aab16fb555c07dd9eda',1,'Output']]], - ['printmessage_62',['printMessage',['../namespaceWarning.html#a0dc7513a4b03d9790a79774ae3f900df',1,'Warning']]], - ['program_20compiled_20binaries_63',['Program compiled binaries',['../index.html#program_binaries',1,'']]], - ['program_20features_64',['Program Features',['../index.html#program_features',1,'']]] + ['pressure_52',['pressure',['../namespaceInput.html#autotoc_md13',1,'Pore pressure'],['../structLoads_1_1PressureBox.html#aeabe07787030094c3b3b67db6c0b8b07',1,'Loads::PressureBox::pressure'],['../structLoads_1_1PressureMaterial.html#a5ef74a16e12a0605381953242c0847eb',1,'Loads::PressureMaterial::pressure'],['../structLoads_1_1PrescribedPorePressure.html#a84f1720829d891bc3f82b494b6d02961',1,'Loads::PrescribedPorePressure::pressure']]], + ['pressure_20definition_20examples_53',['Pore pressure definition examples',['../namespaceInput.html#autotoc_md14',1,'']]], + ['pressure_20in_20particles_20inside_20a_20box_20example_54',['pressure in particles inside a box example',['../namespaceInput.html#autotoc_md16',1,'Initial pore pressure in particles inside a box example'],['../namespaceInput.html#autotoc_md15',1,'Prescribed pore pressure in particles inside a box example']]], + ['pressureboundaryforcebox_55',['PressureBoundaryForceBox',['../structLoads_1_1PressureBoundaryForceBox.html',1,'Loads']]], + ['pressurebox_56',['PressureBox',['../structLoads_1_1PressureBox.html',1,'Loads']]], + ['pressurefluid_57',['pressureFluid',['../classParticleMixture.html#aab86e5a98f13579a7406f34ab690afb0',1,'ParticleMixture']]], + ['pressureforce_58',['pressureForce',['../structLoads_1_1PressureBoundaryForceBox.html#a39b27d9a96b7a71b2876a0d60d10b1ae',1,'Loads::PressureBoundaryForceBox']]], + ['pressurematerial_59',['PressureMaterial',['../structLoads_1_1PressureMaterial.html',1,'Loads']]], + ['printelapsedtime_60',['printElapsedTime',['../namespaceOutput.html#a4ef15c6487520aab16fb555c07dd9eda',1,'Output']]], + ['printmessage_61',['printMessage',['../namespaceWarning.html#a0dc7513a4b03d9790a79774ae3f900df',1,'Warning']]], + ['problem_62',['Bousssinesq's problem',['../verification_problems.html#autotoc_md61',1,'']]], + ['problems_63',['Verification problems',['../verification_problems.html',1,'']]], + ['program_20compiled_20binaries_64',['Program compiled binaries',['../index.html#program_binaries',1,'']]], + ['program_20features_65',['Program Features',['../index.html#program_features',1,'']]] ]; diff --git a/docs/search/classes_5.js b/docs/search/classes_5.js index 05dd49d..a4dc4a7 100644 --- a/docs/search/classes_5.js +++ b/docs/search/classes_5.js @@ -1,6 +1,7 @@ var searchData= [ - ['nodalpointload_0',['NodalPointLoad',['../structLoads_1_1NodalPointLoad.html',1,'Loads']]], - ['node_1',['Node',['../classNode.html',1,'']]], - ['nodemixture_2',['NodeMixture',['../classNodeMixture.html',1,'']]] + ['nodalpointload_0',['NodalPointLoad',['../structNodalPointLoad.html',1,'']]], + ['nodalpointloaddata_1',['NodalPointLoadData',['../structLoads_1_1NodalPointLoadData.html',1,'Loads']]], + ['node_2',['Node',['../classNode.html',1,'']]], + ['nodemixture_3',['NodeMixture',['../classNodeMixture.html',1,'']]] ]; diff --git a/docs/search/files_7.js b/docs/search/files_7.js index 94d332a..8c18300 100644 --- a/docs/search/files_7.js +++ b/docs/search/files_7.js @@ -1,9 +1,8 @@ var searchData= [ - ['manual_2emd_0',['manual.md',['../manual_8md.html',1,'']]], - ['material_2eh_1',['Material.h',['../Material_8h.html',1,'']]], - ['mesh_2eh_2',['Mesh.h',['../Mesh_8h.html',1,'']]], - ['model_2eh_3',['Model.h',['../Model_8h.html',1,'']]], - ['mohrcoulomb_2eh_4',['MohrCoulomb.h',['../MohrCoulomb_8h.html',1,'']]], - ['mpm_2eh_5',['MPM.h',['../MPM_8h.html',1,'']]] + ['material_2eh_0',['Material.h',['../Material_8h.html',1,'']]], + ['mesh_2eh_1',['Mesh.h',['../Mesh_8h.html',1,'']]], + ['model_2eh_2',['Model.h',['../Model_8h.html',1,'']]], + ['mohrcoulomb_2eh_3',['MohrCoulomb.h',['../MohrCoulomb_8h.html',1,'']]], + ['mpm_2eh_4',['MPM.h',['../MPM_8h.html',1,'']]] ]; diff --git a/docs/search/files_c.js b/docs/search/files_c.js index 0346ce4..3f04b64 100644 --- a/docs/search/files_c.js +++ b/docs/search/files_c.js @@ -1,4 +1,4 @@ var searchData= [ - ['tutorial_2emd_0',['tutorial.md',['../tutorial_8md.html',1,'']]] + ['theory_2dformulation_2dmanual_2emd_0',['theory-formulation-manual.md',['../theory-formulation-manual_8md.html',1,'']]] ]; diff --git a/docs/search/files_e.js b/docs/search/files_e.js index 81c56b1..e7fcbf9 100644 --- a/docs/search/files_e.js +++ b/docs/search/files_e.js @@ -1,4 +1,4 @@ var searchData= [ - ['warning_2eh_0',['Warning.h',['../Warning_8h.html',1,'']]] + ['verifications_2dmanual_2emd_0',['verifications-manual.md',['../verifications-manual_8md.html',1,'']]] ]; diff --git a/docs/search/files_f.js b/docs/search/files_f.js new file mode 100644 index 0000000..81c56b1 --- /dev/null +++ b/docs/search/files_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['warning_2eh_0',['Warning.h',['../Warning_8h.html',1,'']]] +]; diff --git a/docs/search/functions_5.js b/docs/search/functions_5.js index f2d6c1c..4daa533 100644 --- a/docs/search/functions_5.js +++ b/docs/search/functions_5.js @@ -64,61 +64,62 @@ var searchData= ['getminlimits_61',['getMinLimits',['../classMesh.html#adaba9203135f187ef1cdca2962cccdc5',1,'Mesh']]], ['getmomentum_62',['getMomentum',['../classNode.html#adc6af862a33e6666cfd07cff4cf8af07',1,'Node']]], ['getmomentumfluid_63',['getMomentumFluid',['../classNode.html#a21ce3d4ae3b97df7b304cc993a2f28a5',1,'Node::getMomentumFluid()'],['../classNodeMixture.html#aa0b5ab9c750a79799002755a8059dbe6',1,'NodeMixture::getMomentumFluid()']]], - ['getnodeid_64',['getNodeId',['../classContribution.html#a5018df7fc0d9c53d6d8513c68eab5069',1,'Contribution']]], - ['getnodes_65',['getNodes',['../classMesh.html#a8f53490d8ec1d0bf146681dda1068f9f',1,'Mesh']]], - ['getnodesincell_66',['getNodesInCell',['../classMesh.html#a0f4b38427a6d32b1cf0818fd16ccbfb6',1,'Mesh']]], - ['getnumberphases_67',['getNumberPhases',['../namespaceInput.html#a07964090a615a8b6ded303e5142dcad0',1,'Input']]], - ['getnumcells_68',['getNumCells',['../classMesh.html#aa2d5bf70d1535ce5a430529265012e31',1,'Mesh']]], - ['getnumghosts_69',['getNumGhosts',['../classMesh.html#a6341363fd68b907a35103ece5a698dfd',1,'Mesh']]], - ['getnumnodes_70',['getNumNodes',['../classMesh.html#add72d69b26877f200426dd549e768a83',1,'Mesh']]], - ['getnumthreads_71',['getNumThreads',['../namespaceInput.html#a68ff2de4fd7b8ed532c8e6c2d95c29d9',1,'Input']]], - ['getorigin_72',['getOrigin',['../namespaceInput.html#a6552e832fbea32d95b180b34437c53db',1,'Input']]], - ['getparentcellidconstribution_73',['getParentCellIdConstribution',['../classMesh.html#a8f4c4014a40a776f75ac943c188cfedf',1,'Mesh']]], - ['getparentnodecoordinates_74',['getParentNodeCoordinates',['../classMesh.html#a70c92b5a5e7d9c2125cbd41d4719684a',1,'Mesh']]], - ['getparticles_75',['getParticles',['../classBody.html#a3bbb2bf9a87abb437d979a3999647ae5',1,'Body::getParticles()'],['../classBodyParticle.html#ab7cfd6011cbfacf0ab672e5712c05dbd',1,'BodyParticle::getParticles()']]], - ['getplanex0_76',['getPlaneX0',['../classBoundary.html#a768bfd8194c716a8c905a4c05c1d7ff8',1,'Boundary']]], - ['getplanexn_77',['getPlaneXn',['../classBoundary.html#a7dbb108e25c2a60246a2f7125276bac9',1,'Boundary']]], - ['getplaney0_78',['getPlaneY0',['../classBoundary.html#a4eca4d6b91f1df52c6b43adf0e9c5052',1,'Boundary']]], - ['getplaneyn_79',['getPlaneYn',['../classBoundary.html#a3ac4f6d3a1d199349620d1e214e92ba3',1,'Boundary']]], - ['getplanez0_80',['getPlaneZ0',['../classBoundary.html#ab032a678d2e5150a4eb8530f3a3114b9',1,'Boundary']]], - ['getplanezn_81',['getPlaneZn',['../classBoundary.html#a6b6eb8dd28a951151f762f1fac7b11c6',1,'Boundary']]], - ['getplasticstrain_82',['getPlasticStrain',['../classParticle.html#af890c2e192b2a0978e46b878b3d11c20',1,'Particle']]], - ['getporosity_83',['getPorosity',['../classMaterial.html#ae7982512dc24aec65afffc3f9269e869',1,'Material::getPorosity()'],['../classParticle.html#a3bfe32709cdbfe1ed5f762d6f007c922',1,'Particle::getPorosity()'],['../classParticleMixture.html#aa3a4562ad105e9e87fac52b901087d3c',1,'ParticleMixture::getPorosity()']]], - ['getposition_84',['getPosition',['../classParticle.html#aef9b85bf1fe98da9d0d195f8545604ab',1,'Particle']]], - ['getprescribedpressurebox_85',['getPrescribedPressureBox',['../namespaceInput.html#a22ce7cc2c2261b0784b944184c7efcb2',1,'Input']]], - ['getpressureboundaryforcebox_86',['getPressureBoundaryForceBox',['../namespaceInput.html#a938199e6c47c007f37b518b559e2ee43',1,'Input']]], - ['getpressurefluid_87',['getPressureFluid',['../classParticle.html#ac31838bdfc87d31f053856798c873ce8',1,'Particle::getPressureFluid()'],['../classParticleMixture.html#a850940942bdf74e62cc57187afd0c0f4',1,'ParticleMixture::getPressureFluid()']]], - ['getresultfields_88',['getResultFields',['../namespaceInput.html#a5de246ace76db47015f0af32c9e7eea6',1,'Input']]], - ['getresultnum_89',['getResultNum',['../namespaceInput.html#ac817a10baf4c98d3f406dae86d0fcc60',1,'Input::getResultNum()'],['../namespaceModelSetup.html#a31009b398464ca9a7a95a479ef04f236',1,'ModelSetup::getResultNum()']]], - ['getresultsteps_90',['getResultSteps',['../namespaceModelSetup.html#a7386088c1d7d90126661d500744ab435',1,'ModelSetup']]], - ['getsaturation_91',['getSaturation',['../classParticle.html#a7743b85e38213e91946ecb1a66abbe67',1,'Particle::getSaturation()'],['../classParticleMixture.html#af82045f902557d5e0587eab3f0a3337e',1,'ParticleMixture::getSaturation()']]], - ['getsavestate_92',['getSaveState',['../namespaceInput.html#afba47624d2c22b55c4d2a38f4790de7e',1,'Input::getSaveState()'],['../namespaceModelSetup.html#a4b24a55ce0f3b4af6103d9c1fcd4c967',1,'ModelSetup::getSaveState()']]], - ['getseismicanalysis_93',['getSeismicAnalysis',['../classMPM.html#a2adf8850a2153f327f4c99fd68177d0a',1,'MPM::getSeismicAnalysis()'],['../namespaceModelSetup.html#a69db078b0bc38c70bb30834e14bd5632',1,'ModelSetup::getSeismicAnalysis()']]], - ['getseismicdata_94',['getSeismicData',['../namespaceLoads.html#ac2794cc202d1527d21f610dd1bfc4310',1,'Loads']]], - ['getseismicfilename_95',['getSeismicFileName',['../namespaceModelSetup.html#a3cd47bd6b391f22d9d4616f7cd7c399a',1,'ModelSetup']]], - ['getshape_96',['getShape',['../classShape.html#a26e6bcdd3b784ea4290eb2be499f8365',1,'Shape']]], - ['getshearmodulus_97',['getShearModulus',['../classElastic.html#ae3946d993bccac025f831d8aad477429',1,'Elastic']]], - ['getsimulationtime_98',['getSimulationTime',['../namespaceInput.html#a669cf08e9ea601a6700da09305192771',1,'Input']]], - ['getsize_99',['getSize',['../classParticle.html#ac3e5204bd87ea498f93bc09ca77c87a1',1,'Particle']]], - ['getsolver_100',['getSolver',['../namespaceInput.html#a0aaddb07cda3d6c988f2c5db52bb488e',1,'Input']]], - ['getsoundspeed_101',['getSoundSpeed',['../classElastic.html#a65dd0fef9eb6fbe6c73cb49515aa92d4',1,'Elastic::getSoundSpeed()'],['../classMaterial.html#a5cbe2406b8622edec8b272a005f7a168',1,'Material::getSoundSpeed()']]], - ['getstrain_102',['getStrain',['../classParticle.html#a1666afe1f967eb0370cf5d0776f40c05',1,'Particle']]], - ['getstrainincrement_103',['getStrainIncrement',['../classParticle.html#a456025fac64d35e22d4d95fc389802dd',1,'Particle']]], - ['getstrainincrementfluid_104',['getStrainIncrementFluid',['../classParticle.html#ac53dcece68a15f54cead8e42b31282c4',1,'Particle::getStrainIncrementFluid()'],['../classParticleMixture.html#ad618b6c911f06f733ea0eb525da58185',1,'ParticleMixture::getStrainIncrementFluid()']]], - ['getstress_105',['getStress',['../classParticle.html#a00d3031048e8e864eee4cdbbaa24a7dd',1,'Particle']]], - ['getthreads_106',['getThreads',['../namespaceModelSetup.html#a6d82576fd6bcfef46c27fc5fd3f6ad31',1,'ModelSetup']]], - ['gettime_107',['getTime',['../namespaceModelSetup.html#a9d878b617e6c2aec407af455823a94ae',1,'ModelSetup']]], - ['gettimestep_108',['getTimeStep',['../namespaceInput.html#a62b6f277358d9dd6b95f39001e12bae4',1,'Input::getTimeStep()'],['../namespaceModelSetup.html#a32725e1a91cc388745362c3801999f9b',1,'ModelSetup::getTimeStep()']]], - ['gettotalcells_109',['getTotalCells',['../classMesh.html#a0634ae57b73e29f2a1251db4f78a4991',1,'Mesh']]], - ['gettotalforce_110',['getTotalForce',['../classNode.html#ac320e081db503169fdd0692652f1068b',1,'Node']]], - ['gettotalforcefluid_111',['getTotalForceFluid',['../classNode.html#af74452116f78270ffaecf54506d8c89d',1,'Node::getTotalForceFluid()'],['../classNodeMixture.html#a2c2d410e8c9dc0366c801a8522bb2a36',1,'NodeMixture::getTotalForceFluid()']]], - ['gettotalparticles_112',['getTotalParticles',['../classParticle.html#afa22020e9c44e9e846baa6c75b39073e',1,'Particle']]], - ['gettwophaseactive_113',['getTwoPhaseActive',['../namespaceModelSetup.html#a2f9050bb6d4192b6b1d97359b384c185',1,'ModelSetup']]], - ['gettype_114',['getType',['../classElastic.html#af1114f0a9f7b04f8d2ffd803c6666677',1,'Elastic::getType()'],['../classMaterial.html#a40f32c5036f85ad9d0c49ad66b083194',1,'Material::getType()']]], - ['getupdatestressscheme_115',['getUpdateStressScheme',['../namespaceModelSetup.html#a1eead9b90f8170efff3e7af49fc8bb8e',1,'ModelSetup']]], - ['getvelocity_116',['getVelocity',['../classParticle.html#a56a74940f51dff41d5f75cabe6bf5944',1,'Particle::getVelocity()'],['../classNode.html#a8e7151c308023adb0b02ec7a92fcf96e',1,'Node::getVelocity()']]], - ['getvelocityfluid_117',['getVelocityFluid',['../classParticle.html#ac25ec8c3c91cc45dfa9cc2618f8d845b',1,'Particle::getVelocityFluid()'],['../classParticleMixture.html#a35c1feba3014d4ec9dc4c09989b49385',1,'ParticleMixture::getVelocityFluid()'],['../classNode.html#ad3c0efe56d0b846ecc227ade440c9b8b',1,'Node::getVelocityFluid()'],['../classNodeMixture.html#a9f03d78b443a26e66940622961c14ce8',1,'NodeMixture::getVelocityFluid()']]], - ['getvorticityincrement_118',['getVorticityIncrement',['../classParticle.html#ab28c6d72256756c86db86c1115532364',1,'Particle']]], - ['getweight_119',['getWeight',['../classContribution.html#a78309e2347b9786d75b260cc40c54d86',1,'Contribution']]], - ['getwindowssystem_120',['getWindowsSystem',['../namespaceModelSetup.html#a6f9566f539a712872b07e3374eef0f7c',1,'ModelSetup']]] + ['getnodalpointlist_64',['getNodalPointList',['../namespaceLoads.html#a67971878871ece27ff54401ffcd9a5ff',1,'Loads']]], + ['getnodeid_65',['getNodeId',['../classContribution.html#a5018df7fc0d9c53d6d8513c68eab5069',1,'Contribution']]], + ['getnodes_66',['getNodes',['../classMesh.html#a8f53490d8ec1d0bf146681dda1068f9f',1,'Mesh']]], + ['getnodesincell_67',['getNodesInCell',['../classMesh.html#a0f4b38427a6d32b1cf0818fd16ccbfb6',1,'Mesh']]], + ['getnumberphases_68',['getNumberPhases',['../namespaceInput.html#a07964090a615a8b6ded303e5142dcad0',1,'Input']]], + ['getnumcells_69',['getNumCells',['../classMesh.html#aa2d5bf70d1535ce5a430529265012e31',1,'Mesh']]], + ['getnumghosts_70',['getNumGhosts',['../classMesh.html#a6341363fd68b907a35103ece5a698dfd',1,'Mesh']]], + ['getnumnodes_71',['getNumNodes',['../classMesh.html#add72d69b26877f200426dd549e768a83',1,'Mesh']]], + ['getnumthreads_72',['getNumThreads',['../namespaceInput.html#a68ff2de4fd7b8ed532c8e6c2d95c29d9',1,'Input']]], + ['getorigin_73',['getOrigin',['../namespaceInput.html#a6552e832fbea32d95b180b34437c53db',1,'Input']]], + ['getparentcellidconstribution_74',['getParentCellIdConstribution',['../classMesh.html#a8f4c4014a40a776f75ac943c188cfedf',1,'Mesh']]], + ['getparentnodecoordinates_75',['getParentNodeCoordinates',['../classMesh.html#a70c92b5a5e7d9c2125cbd41d4719684a',1,'Mesh']]], + ['getparticles_76',['getParticles',['../classBody.html#a3bbb2bf9a87abb437d979a3999647ae5',1,'Body::getParticles()'],['../classBodyParticle.html#ab7cfd6011cbfacf0ab672e5712c05dbd',1,'BodyParticle::getParticles()']]], + ['getplanex0_77',['getPlaneX0',['../classBoundary.html#a768bfd8194c716a8c905a4c05c1d7ff8',1,'Boundary']]], + ['getplanexn_78',['getPlaneXn',['../classBoundary.html#a7dbb108e25c2a60246a2f7125276bac9',1,'Boundary']]], + ['getplaney0_79',['getPlaneY0',['../classBoundary.html#a4eca4d6b91f1df52c6b43adf0e9c5052',1,'Boundary']]], + ['getplaneyn_80',['getPlaneYn',['../classBoundary.html#a3ac4f6d3a1d199349620d1e214e92ba3',1,'Boundary']]], + ['getplanez0_81',['getPlaneZ0',['../classBoundary.html#ab032a678d2e5150a4eb8530f3a3114b9',1,'Boundary']]], + ['getplanezn_82',['getPlaneZn',['../classBoundary.html#a6b6eb8dd28a951151f762f1fac7b11c6',1,'Boundary']]], + ['getplasticstrain_83',['getPlasticStrain',['../classParticle.html#af890c2e192b2a0978e46b878b3d11c20',1,'Particle']]], + ['getporosity_84',['getPorosity',['../classMaterial.html#ae7982512dc24aec65afffc3f9269e869',1,'Material::getPorosity()'],['../classParticle.html#a3bfe32709cdbfe1ed5f762d6f007c922',1,'Particle::getPorosity()'],['../classParticleMixture.html#aa3a4562ad105e9e87fac52b901087d3c',1,'ParticleMixture::getPorosity()']]], + ['getposition_85',['getPosition',['../classParticle.html#aef9b85bf1fe98da9d0d195f8545604ab',1,'Particle']]], + ['getprescribedpressurebox_86',['getPrescribedPressureBox',['../namespaceInput.html#a22ce7cc2c2261b0784b944184c7efcb2',1,'Input']]], + ['getpressureboundaryforcebox_87',['getPressureBoundaryForceBox',['../namespaceInput.html#a938199e6c47c007f37b518b559e2ee43',1,'Input']]], + ['getpressurefluid_88',['getPressureFluid',['../classParticle.html#ac31838bdfc87d31f053856798c873ce8',1,'Particle::getPressureFluid()'],['../classParticleMixture.html#a850940942bdf74e62cc57187afd0c0f4',1,'ParticleMixture::getPressureFluid()']]], + ['getresultfields_89',['getResultFields',['../namespaceInput.html#a5de246ace76db47015f0af32c9e7eea6',1,'Input']]], + ['getresultnum_90',['getResultNum',['../namespaceInput.html#ac817a10baf4c98d3f406dae86d0fcc60',1,'Input::getResultNum()'],['../namespaceModelSetup.html#a31009b398464ca9a7a95a479ef04f236',1,'ModelSetup::getResultNum()']]], + ['getresultsteps_91',['getResultSteps',['../namespaceModelSetup.html#a7386088c1d7d90126661d500744ab435',1,'ModelSetup']]], + ['getsaturation_92',['getSaturation',['../classParticle.html#a7743b85e38213e91946ecb1a66abbe67',1,'Particle::getSaturation()'],['../classParticleMixture.html#af82045f902557d5e0587eab3f0a3337e',1,'ParticleMixture::getSaturation()']]], + ['getsavestate_93',['getSaveState',['../namespaceInput.html#afba47624d2c22b55c4d2a38f4790de7e',1,'Input::getSaveState()'],['../namespaceModelSetup.html#a4b24a55ce0f3b4af6103d9c1fcd4c967',1,'ModelSetup::getSaveState()']]], + ['getseismicanalysis_94',['getSeismicAnalysis',['../classMPM.html#a2adf8850a2153f327f4c99fd68177d0a',1,'MPM::getSeismicAnalysis()'],['../namespaceModelSetup.html#a69db078b0bc38c70bb30834e14bd5632',1,'ModelSetup::getSeismicAnalysis()']]], + ['getseismicdata_95',['getSeismicData',['../namespaceLoads.html#ac2794cc202d1527d21f610dd1bfc4310',1,'Loads']]], + ['getseismicfilename_96',['getSeismicFileName',['../namespaceModelSetup.html#a3cd47bd6b391f22d9d4616f7cd7c399a',1,'ModelSetup']]], + ['getshape_97',['getShape',['../classShape.html#a26e6bcdd3b784ea4290eb2be499f8365',1,'Shape']]], + ['getshearmodulus_98',['getShearModulus',['../classElastic.html#ae3946d993bccac025f831d8aad477429',1,'Elastic']]], + ['getsimulationtime_99',['getSimulationTime',['../namespaceInput.html#a669cf08e9ea601a6700da09305192771',1,'Input']]], + ['getsize_100',['getSize',['../classParticle.html#ac3e5204bd87ea498f93bc09ca77c87a1',1,'Particle']]], + ['getsolver_101',['getSolver',['../namespaceInput.html#a0aaddb07cda3d6c988f2c5db52bb488e',1,'Input']]], + ['getsoundspeed_102',['getSoundSpeed',['../classElastic.html#a65dd0fef9eb6fbe6c73cb49515aa92d4',1,'Elastic::getSoundSpeed()'],['../classMaterial.html#a5cbe2406b8622edec8b272a005f7a168',1,'Material::getSoundSpeed()']]], + ['getstrain_103',['getStrain',['../classParticle.html#a1666afe1f967eb0370cf5d0776f40c05',1,'Particle']]], + ['getstrainincrement_104',['getStrainIncrement',['../classParticle.html#a456025fac64d35e22d4d95fc389802dd',1,'Particle']]], + ['getstrainincrementfluid_105',['getStrainIncrementFluid',['../classParticle.html#ac53dcece68a15f54cead8e42b31282c4',1,'Particle::getStrainIncrementFluid()'],['../classParticleMixture.html#ad618b6c911f06f733ea0eb525da58185',1,'ParticleMixture::getStrainIncrementFluid()']]], + ['getstress_106',['getStress',['../classParticle.html#a00d3031048e8e864eee4cdbbaa24a7dd',1,'Particle']]], + ['getthreads_107',['getThreads',['../namespaceModelSetup.html#a6d82576fd6bcfef46c27fc5fd3f6ad31',1,'ModelSetup']]], + ['gettime_108',['getTime',['../namespaceModelSetup.html#a9d878b617e6c2aec407af455823a94ae',1,'ModelSetup']]], + ['gettimestep_109',['getTimeStep',['../namespaceInput.html#a62b6f277358d9dd6b95f39001e12bae4',1,'Input::getTimeStep()'],['../namespaceModelSetup.html#a32725e1a91cc388745362c3801999f9b',1,'ModelSetup::getTimeStep()']]], + ['gettotalcells_110',['getTotalCells',['../classMesh.html#a0634ae57b73e29f2a1251db4f78a4991',1,'Mesh']]], + ['gettotalforce_111',['getTotalForce',['../classNode.html#ac320e081db503169fdd0692652f1068b',1,'Node']]], + ['gettotalforcefluid_112',['getTotalForceFluid',['../classNode.html#af74452116f78270ffaecf54506d8c89d',1,'Node::getTotalForceFluid()'],['../classNodeMixture.html#a2c2d410e8c9dc0366c801a8522bb2a36',1,'NodeMixture::getTotalForceFluid()']]], + ['gettotalparticles_113',['getTotalParticles',['../classParticle.html#afa22020e9c44e9e846baa6c75b39073e',1,'Particle']]], + ['gettwophaseactive_114',['getTwoPhaseActive',['../namespaceModelSetup.html#a2f9050bb6d4192b6b1d97359b384c185',1,'ModelSetup']]], + ['gettype_115',['getType',['../classElastic.html#af1114f0a9f7b04f8d2ffd803c6666677',1,'Elastic::getType()'],['../classMaterial.html#a40f32c5036f85ad9d0c49ad66b083194',1,'Material::getType()']]], + ['getupdatestressscheme_116',['getUpdateStressScheme',['../namespaceModelSetup.html#a1eead9b90f8170efff3e7af49fc8bb8e',1,'ModelSetup']]], + ['getvelocity_117',['getVelocity',['../classParticle.html#a56a74940f51dff41d5f75cabe6bf5944',1,'Particle::getVelocity()'],['../classNode.html#a8e7151c308023adb0b02ec7a92fcf96e',1,'Node::getVelocity()']]], + ['getvelocityfluid_118',['getVelocityFluid',['../classParticle.html#ac25ec8c3c91cc45dfa9cc2618f8d845b',1,'Particle::getVelocityFluid()'],['../classParticleMixture.html#a35c1feba3014d4ec9dc4c09989b49385',1,'ParticleMixture::getVelocityFluid()'],['../classNode.html#ad3c0efe56d0b846ecc227ade440c9b8b',1,'Node::getVelocityFluid()'],['../classNodeMixture.html#a9f03d78b443a26e66940622961c14ce8',1,'NodeMixture::getVelocityFluid()']]], + ['getvorticityincrement_119',['getVorticityIncrement',['../classParticle.html#ab28c6d72256756c86db86c1115532364',1,'Particle']]], + ['getweight_120',['getWeight',['../classContribution.html#a78309e2347b9786d75b260cc40c54d86',1,'Contribution']]], + ['getwindowssystem_121',['getWindowsSystem',['../namespaceModelSetup.html#a6f9566f539a712872b07e3374eef0f7c',1,'ModelSetup']]] ]; diff --git a/docs/search/functions_b.js b/docs/search/functions_b.js index 8d75ea7..b96e8e1 100644 --- a/docs/search/functions_b.js +++ b/docs/search/functions_b.js @@ -1,7 +1,7 @@ var searchData= [ ['readinputfile_0',['readInputFile',['../classMPM.html#a0cf36c8797cfd5632d26b5d129df126e',1,'MPM::readInputFile()'],['../namespaceInput.html#abb1fa3d31849a7acf80a9796da0242b0',1,'Input::readInputFile(string file_name)']]], - ['readnodalpointloads_1',['readNodalPointLoads',['../namespaceInput.html#a03717b6bc9fdd8cfc5eccb3e4fcebe73',1,'Input']]], + ['readnodalpointloads_1',['readNodalPointLoads',['../namespaceInput.html#a4af9571f7842a96471572cd550d598a9',1,'Input']]], ['readseismicdata_2',['readSeismicData',['../namespaceInput.html#ab7aeff2285506645ef6c121dec4a0d44',1,'Input']]], ['registerbodies_3',['registerBodies',['../classSolver.html#a119ea70a054a7ad5cb7b2130fd6917a4',1,'Solver']]], ['registermesh_4',['registerMesh',['../classSolver.html#a5ea32c377f50d8f7b3f8725ebb4bf71a',1,'Solver']]], diff --git a/docs/search/pages_0.js b/docs/search/pages_0.js index 3e00250..ac3410e 100644 --- a/docs/search/pages_0.js +++ b/docs/search/pages_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['geomechanics_0',['MPM-Geomechanics',['../index.html',1,'']]] + ['and_20numerical_20formulation_0',['Theory and Numerical Formulation',['../theory_and_numerical_formulation_.html',1,'']]] ]; diff --git a/docs/search/pages_1.js b/docs/search/pages_1.js index 0405b05..52276e5 100644 --- a/docs/search/pages_1.js +++ b/docs/search/pages_1.js @@ -1,5 +1,4 @@ var searchData= [ - ['manual_0',['manual',['../program_theory_manual.html',1,'Theory manual'],['../program_tutorial_manual.html',1,'Tutorial manual']]], - ['mpm_20geomechanics_1',['MPM-Geomechanics',['../index.html',1,'']]] + ['formulation_0',['Theory and Numerical Formulation',['../theory_and_numerical_formulation_.html',1,'']]] ]; diff --git a/docs/search/pages_2.js b/docs/search/pages_2.js index 47b85ee..3e00250 100644 --- a/docs/search/pages_2.js +++ b/docs/search/pages_2.js @@ -1,5 +1,4 @@ var searchData= [ - ['theory_20manual_0',['Theory manual',['../program_theory_manual.html',1,'']]], - ['tutorial_20manual_1',['Tutorial manual',['../program_tutorial_manual.html',1,'']]] + ['geomechanics_0',['MPM-Geomechanics',['../index.html',1,'']]] ]; diff --git a/docs/search/pages_3.js b/docs/search/pages_3.js new file mode 100644 index 0000000..87f1ae5 --- /dev/null +++ b/docs/search/pages_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['mpm_20geomechanics_0',['MPM-Geomechanics',['../index.html',1,'']]] +]; diff --git a/docs/search/pages_4.js b/docs/search/pages_4.js new file mode 100644 index 0000000..a2ff242 --- /dev/null +++ b/docs/search/pages_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['numerical_20formulation_0',['Theory and Numerical Formulation',['../theory_and_numerical_formulation_.html',1,'']]] +]; diff --git a/docs/search/pages_5.js b/docs/search/pages_5.js new file mode 100644 index 0000000..bb8856d --- /dev/null +++ b/docs/search/pages_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['problems_0',['Verification problems',['../verification_problems.html',1,'']]] +]; diff --git a/docs/search/pages_6.js b/docs/search/pages_6.js new file mode 100644 index 0000000..79479ec --- /dev/null +++ b/docs/search/pages_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['theory_20and_20numerical_20formulation_0',['Theory and Numerical Formulation',['../theory_and_numerical_formulation_.html',1,'']]] +]; diff --git a/docs/search/pages_7.js b/docs/search/pages_7.js new file mode 100644 index 0000000..8fa787f --- /dev/null +++ b/docs/search/pages_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['verification_20problems_0',['Verification problems',['../verification_problems.html',1,'']]] +]; diff --git a/docs/search/searchdata.js b/docs/search/searchdata.js index 908a66a..6707305 100644 --- a/docs/search/searchdata.js +++ b/docs/search/searchdata.js @@ -3,13 +3,13 @@ var indexSectionsWithContent = 0: "abcdefghijklmnoprstuvwxyz~", 1: "bcelmnps", 2: "dgilmosuw", - 3: "bcdegilmnopstuw", + 3: "bcdegilmnopstuvw", 4: "abcefgilmnprsuw~", 5: "abcdefghilmnprstvwy", 6: "j", 7: "bcdimos", 8: "cefgklmnpsuwxyz", - 9: "gmt" + 9: "afgmnptv" }; var indexSectionNames = diff --git a/docs/search/variables_9.js b/docs/search/variables_9.js index df7eb6d..1ad056f 100644 --- a/docs/search/variables_9.js +++ b/docs/search/variables_9.js @@ -1,4 +1,5 @@ var searchData= [ - ['load_0',['load',['../structLoads_1_1LoadDistributedBox.html#a40c36d1273d64d21ce2a39a5044efe34',1,'Loads::LoadDistributedBox::load'],['../structLoads_1_1NodalPointLoad.html#a42952a45bee43182ca85b6a1486f7565',1,'Loads::NodalPointLoad::load']]] + ['load_0',['load',['../structLoads_1_1LoadDistributedBox.html#a40c36d1273d64d21ce2a39a5044efe34',1,'Loads::LoadDistributedBox']]], + ['loads_1',['loads',['../structLoads_1_1NodalPointLoadData.html#a1647ba0a8c8b3c98ce0de7a6f5ce77cb',1,'Loads::NodalPointLoadData']]] ]; diff --git a/docs/search/variables_b.js b/docs/search/variables_b.js index 2ce5592..e2eb0a5 100644 --- a/docs/search/variables_b.js +++ b/docs/search/variables_b.js @@ -2,9 +2,8 @@ var searchData= [ ['ncells_0',['nCells',['../classMesh.html#a64370d667c6ea5953e6282ea0eff29ad',1,'Mesh']]], ['nghosts_1',['nGhosts',['../classMesh.html#adbcc26ba65b26ce2d1b3b8f697e94d27',1,'Mesh']]], - ['nodal_5fid_2',['nodal_id',['../structLoads_1_1NodalPointLoad.html#ada67ac2a3723a1de108c5211e383b274',1,'Loads::NodalPointLoad']]], - ['nodalpointload_3',['nodalPointLoad',['../namespaceLoads.html#a7863042b1bc1dad916b60d4f7aec821e',1,'Loads']]], - ['nodeid_4',['nodeId',['../classContribution.html#acd8ca11b2f75001aed3533a7826f68f8',1,'Contribution']]], - ['nodes_5',['nodes',['../structBoundary_1_1planeBoundary.html#a7927ae162c36d4744792b84fcce0a4b6',1,'Boundary::planeBoundary']]], - ['nrows_6',['nRows',['../classMesh.html#a92cada479e59250c2411dc220c72822d',1,'Mesh']]] + ['nodal_5fids_2',['nodal_ids',['../structLoads_1_1NodalPointLoadData.html#a14fd981401531322fd2572c17b3416f7',1,'Loads::NodalPointLoadData']]], + ['nodeid_3',['nodeId',['../classContribution.html#acd8ca11b2f75001aed3533a7826f68f8',1,'Contribution']]], + ['nodes_4',['nodes',['../structBoundary_1_1planeBoundary.html#a7927ae162c36d4744792b84fcce0a4b6',1,'Boundary::planeBoundary']]], + ['nrows_5',['nRows',['../classMesh.html#a92cada479e59250c2411dc220c72822d',1,'Mesh']]] ]; diff --git a/docs/search/variables_c.js b/docs/search/variables_c.js index 73982ed..8a6f23e 100644 --- a/docs/search/variables_c.js +++ b/docs/search/variables_c.js @@ -10,16 +10,15 @@ var searchData= ['planez0_7',['planeZ0',['../classBoundary.html#a481e3c7240a1eaa93ed862da8c01571c',1,'Boundary']]], ['planezn_8',['planeZn',['../classBoundary.html#a8a9ad8258b5721b6bafb41dafe44df7f',1,'Boundary']]], ['plasticstrain_9',['plasticStrain',['../classParticle.html#a0501e3f8bb3cf37f332ee49d427bb220',1,'Particle']]], - ['point_10',['point',['../structLoads_1_1NodalPointLoad.html#a583d05b5202d730eb0b82b5037a8b5bb',1,'Loads::NodalPointLoad']]], - ['pointp1_11',['pointP1',['../structLoads_1_1LoadDistributedBox.html#af2bd873fd6cc0183b3d0724e9fd53a65',1,'Loads::LoadDistributedBox::pointP1'],['../structLoads_1_1PressureBox.html#aec7b220e4ca84b6cd3095b335e5f96c6',1,'Loads::PressureBox::pointP1'],['../structLoads_1_1PressureBoundaryForceBox.html#a51afd209b038225d90d2fbc9d9152bc5',1,'Loads::PressureBoundaryForceBox::pointP1'],['../classBodyCuboid.html#af464accfe308b43312d48826e572ee77',1,'BodyCuboid::pointP1']]], - ['pointp2_12',['pointP2',['../structLoads_1_1LoadDistributedBox.html#ad6e851b83ecd45a6a86c649530fa5378',1,'Loads::LoadDistributedBox::pointP2'],['../structLoads_1_1PressureBox.html#a84fe1e45c0fd5e30f82723316d18da8d',1,'Loads::PressureBox::pointP2'],['../structLoads_1_1PressureBoundaryForceBox.html#af1d35221a761797bbf9cc542e73d4cb0',1,'Loads::PressureBoundaryForceBox::pointP2'],['../classBodyCuboid.html#abb23b2c292262774f60c47b576eaff8e',1,'BodyCuboid::pointP2']]], + ['pointp1_10',['pointP1',['../structLoads_1_1LoadDistributedBox.html#af2bd873fd6cc0183b3d0724e9fd53a65',1,'Loads::LoadDistributedBox::pointP1'],['../structLoads_1_1PressureBox.html#aec7b220e4ca84b6cd3095b335e5f96c6',1,'Loads::PressureBox::pointP1'],['../structLoads_1_1PressureBoundaryForceBox.html#a51afd209b038225d90d2fbc9d9152bc5',1,'Loads::PressureBoundaryForceBox::pointP1'],['../classBodyCuboid.html#af464accfe308b43312d48826e572ee77',1,'BodyCuboid::pointP1']]], + ['pointp2_11',['pointP2',['../structLoads_1_1LoadDistributedBox.html#ad6e851b83ecd45a6a86c649530fa5378',1,'Loads::LoadDistributedBox::pointP2'],['../structLoads_1_1PressureBox.html#a84fe1e45c0fd5e30f82723316d18da8d',1,'Loads::PressureBox::pointP2'],['../structLoads_1_1PressureBoundaryForceBox.html#af1d35221a761797bbf9cc542e73d4cb0',1,'Loads::PressureBoundaryForceBox::pointP2'],['../classBodyCuboid.html#abb23b2c292262774f60c47b576eaff8e',1,'BodyCuboid::pointP2']]], + ['points_12',['points',['../structLoads_1_1NodalPointLoadData.html#a3bcdea5f19060a2e3a9e516686f2606e',1,'Loads::NodalPointLoadData']]], ['poisson_13',['Poisson',['../classElastic.html#a03ee435222a72268fca4e6763ad995e3',1,'Elastic']]], ['polygonpoints_14',['polygonPoints',['../classBodyPolygon.html#ae545d09521335ddcca2897a7881cb4e6',1,'BodyPolygon']]], ['porosity_15',['porosity',['../classMaterial.html#a1da7180771687fd58e2cf5e1778d8655',1,'Material']]], ['porositymixture_16',['porosityMixture',['../classParticleMixture.html#a8f722adda4db0481f5a6f1890d75bbd6',1,'ParticleMixture']]], ['position_17',['position',['../classParticle.html#a58bb6267f20ebb153a1f0f0770ff6919',1,'Particle']]], - ['prescribedporepressureparticleslist_18',['prescribedPorePressureParticlesList',['../namespaceLoads.html#ad8a3ae1d06dccc3acb90569960068461',1,'Loads']]], - ['pressure_19',['pressure',['../structLoads_1_1PressureBox.html#aeabe07787030094c3b3b67db6c0b8b07',1,'Loads::PressureBox::pressure'],['../structLoads_1_1PressureMaterial.html#a5ef74a16e12a0605381953242c0847eb',1,'Loads::PressureMaterial::pressure'],['../structLoads_1_1PrescribedPorePressure.html#a84f1720829d891bc3f82b494b6d02961',1,'Loads::PrescribedPorePressure::pressure']]], - ['pressurefluid_20',['pressureFluid',['../classParticleMixture.html#aab86e5a98f13579a7406f34ab690afb0',1,'ParticleMixture']]], - ['pressureforce_21',['pressureForce',['../structLoads_1_1PressureBoundaryForceBox.html#a39b27d9a96b7a71b2876a0d60d10b1ae',1,'Loads::PressureBoundaryForceBox']]] + ['pressure_18',['pressure',['../structLoads_1_1PressureBox.html#aeabe07787030094c3b3b67db6c0b8b07',1,'Loads::PressureBox::pressure'],['../structLoads_1_1PressureMaterial.html#a5ef74a16e12a0605381953242c0847eb',1,'Loads::PressureMaterial::pressure'],['../structLoads_1_1PrescribedPorePressure.html#a84f1720829d891bc3f82b494b6d02961',1,'Loads::PrescribedPorePressure::pressure']]], + ['pressurefluid_19',['pressureFluid',['../classParticleMixture.html#aab86e5a98f13579a7406f34ab690afb0',1,'ParticleMixture']]], + ['pressureforce_20',['pressureForce',['../structLoads_1_1PressureBoundaryForceBox.html#a39b27d9a96b7a71b2876a0d60d10b1ae',1,'Loads::PressureBoundaryForceBox']]] ]; diff --git a/docs/search/variables_e.js b/docs/search/variables_e.js index 8687b65..4371a37 100644 --- a/docs/search/variables_e.js +++ b/docs/search/variables_e.js @@ -1,13 +1,12 @@ var searchData= [ - ['seismicrecord_0',['seismicRecord',['../namespaceLoads.html#afe9be730a82af1e03b57cc4906e4931d',1,'Loads']]], - ['shape_1',['shape',['../classParticle.html#a96f2113c3c415106dac25a83a8d77d2f',1,'Particle::shape'],['../classShape.html#ae9eb272ab1a2afec7d26bbe905c18f70',1,'Shape::shape']]], - ['size_2',['size',['../classParticle.html#ac91045f938c0a55a031415b01f02ae5d',1,'Particle']]], - ['softening_3',['softening',['../classMohrCoulomb.html#a4a2521dcfb9581a0582e964a1ed02969',1,'MohrCoulomb']]], - ['softening_5ftype_4',['softening_type',['../classMohrCoulomb_1_1Softening.html#ad4ee561e3ff9a65f09bb58881443b752',1,'MohrCoulomb::Softening']]], - ['solver_5',['solver',['../classMPM.html#a1cc099fec2f55ef6182fa80ff72c4138',1,'MPM']]], - ['strain_6',['strain',['../classParticle.html#af14ff528876e9d128baf6bc16eb92947',1,'Particle']]], - ['strainincrement_7',['strainIncrement',['../classParticle.html#a03b4af101a14e8c5a6bf67619c986fc8',1,'Particle']]], - ['strainincrementfluid_8',['strainIncrementFluid',['../classParticleMixture.html#a340869f830ea205ef01c6dcebc1a5a8b',1,'ParticleMixture']]], - ['stress_9',['stress',['../classParticle.html#a04d1aea466feff57336a438cfae71231',1,'Particle']]] + ['shape_0',['shape',['../classParticle.html#a96f2113c3c415106dac25a83a8d77d2f',1,'Particle::shape'],['../classShape.html#ae9eb272ab1a2afec7d26bbe905c18f70',1,'Shape::shape']]], + ['size_1',['size',['../classParticle.html#ac91045f938c0a55a031415b01f02ae5d',1,'Particle']]], + ['softening_2',['softening',['../classMohrCoulomb.html#a4a2521dcfb9581a0582e964a1ed02969',1,'MohrCoulomb']]], + ['softening_5ftype_3',['softening_type',['../classMohrCoulomb_1_1Softening.html#ad4ee561e3ff9a65f09bb58881443b752',1,'MohrCoulomb::Softening']]], + ['solver_4',['solver',['../classMPM.html#a1cc099fec2f55ef6182fa80ff72c4138',1,'MPM']]], + ['strain_5',['strain',['../classParticle.html#af14ff528876e9d128baf6bc16eb92947',1,'Particle']]], + ['strainincrement_6',['strainIncrement',['../classParticle.html#a03b4af101a14e8c5a6bf67619c986fc8',1,'Particle']]], + ['strainincrementfluid_7',['strainIncrementFluid',['../classParticleMixture.html#a340869f830ea205ef01c6dcebc1a5a8b',1,'ParticleMixture']]], + ['stress_8',['stress',['../classParticle.html#a04d1aea466feff57336a438cfae71231',1,'Particle']]] ]; diff --git a/docs/structLoads_1_1NodalPointLoadData-members.html b/docs/structLoads_1_1NodalPointLoadData-members.html new file mode 100644 index 0000000..7b51343 --- /dev/null +++ b/docs/structLoads_1_1NodalPointLoadData-members.html @@ -0,0 +1,126 @@ + + + + + + + +MPM-Geomechanics: Member List + + + + + + + + + + + + + + + + + + +
              +
              + + + + + + +
              +
              MPM-Geomechanics +
              +
              Material Point Method for simulating geo-materials under large deformation conditions
              +
              +
              + + + + + + + + +
              +
              + +
              +
              +
              + +
              + +
              +
              + + +
              +
              +
              +
              +
              +
              Loading...
              +
              Searching...
              +
              No Matches
              +
              +
              +
              +
              + +
              +
              Loads::NodalPointLoadData Member List
              +
              +
              + +

              This is the complete list of members for Loads::NodalPointLoadData, including all inherited members.

              + + + + +
              loadsLoads::NodalPointLoadData
              nodal_idsLoads::NodalPointLoadData
              pointsLoads::NodalPointLoadData
              +
              + + + + diff --git a/docs/structLoads_1_1NodalPointLoadData.html b/docs/structLoads_1_1NodalPointLoadData.html new file mode 100644 index 0000000..e3c9651 --- /dev/null +++ b/docs/structLoads_1_1NodalPointLoadData.html @@ -0,0 +1,203 @@ + + + + + + + +MPM-Geomechanics: Loads::NodalPointLoadData Struct Reference + + + + + + + + + + + + + + + + + + +
              +
              + + + + + + +
              +
              MPM-Geomechanics +
              +
              Material Point Method for simulating geo-materials under large deformation conditions
              +
              +
              + + + + + + + + +
              +
              + +
              +
              +
              + +
              + +
              +
              + + +
              +
              +
              +
              +
              +
              Loading...
              +
              Searching...
              +
              No Matches
              +
              +
              +
              +
              + +
              + +
              Loads::NodalPointLoadData Struct Reference
              +
              +
              + +

              #include <Loads.h>

              +
              +Collaboration diagram for Loads::NodalPointLoadData:
              +
              +
              Collaboration graph
              + + + + + + + +
              [legend]
              + + + + + + + + + + + +

              +Public Attributes

              std::vector< Vector3d > points
               Coordinates [px, py, pz].
               
              std::vector< Vector3d > loads
               Load [lx, ly, lz].
               
              std::vector< int > nodal_ids
               nodal id
               
              +

              Member Data Documentation

              + +

              ◆ loads

              + +
              +
              + + + + +
              std::vector<Vector3d> Loads::NodalPointLoadData::loads
              +
              + +

              Load [lx, ly, lz].

              + +
              +
              + +

              ◆ nodal_ids

              + +
              +
              + + + + +
              std::vector<int> Loads::NodalPointLoadData::nodal_ids
              +
              + +

              nodal id

              + +
              +
              + +

              ◆ points

              + +
              +
              + + + + +
              std::vector<Vector3d> Loads::NodalPointLoadData::points
              +
              + +

              Coordinates [px, py, pz].

              + +
              +
              +
              The documentation for this struct was generated from the following file: +
              +
              + + + + diff --git a/docs/structLoads_1_1NodalPointLoadData.js b/docs/structLoads_1_1NodalPointLoadData.js new file mode 100644 index 0000000..8bb4c3c --- /dev/null +++ b/docs/structLoads_1_1NodalPointLoadData.js @@ -0,0 +1,6 @@ +var structLoads_1_1NodalPointLoadData = +[ + [ "loads", "structLoads_1_1NodalPointLoadData.html#a1647ba0a8c8b3c98ce0de7a6f5ce77cb", null ], + [ "nodal_ids", "structLoads_1_1NodalPointLoadData.html#a14fd981401531322fd2572c17b3416f7", null ], + [ "points", "structLoads_1_1NodalPointLoadData.html#a3bcdea5f19060a2e3a9e516686f2606e", null ] +]; \ No newline at end of file diff --git a/docs/structLoads_1_1NodalPointLoadData__coll__graph.map b/docs/structLoads_1_1NodalPointLoadData__coll__graph.map new file mode 100644 index 0000000..c930e2e --- /dev/null +++ b/docs/structLoads_1_1NodalPointLoadData__coll__graph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/structLoads_1_1NodalPointLoadData__coll__graph.md5 b/docs/structLoads_1_1NodalPointLoadData__coll__graph.md5 new file mode 100644 index 0000000..271d252 --- /dev/null +++ b/docs/structLoads_1_1NodalPointLoadData__coll__graph.md5 @@ -0,0 +1 @@ +149453579303e79cd5d28020a5e336c5 \ No newline at end of file diff --git a/docs/structLoads_1_1NodalPointLoadData__coll__graph.png b/docs/structLoads_1_1NodalPointLoadData__coll__graph.png new file mode 100644 index 0000000..bffd632 Binary files /dev/null and b/docs/structLoads_1_1NodalPointLoadData__coll__graph.png differ diff --git a/docs/structNodalPointLoad.html b/docs/structNodalPointLoad.html new file mode 100644 index 0000000..e2be807 --- /dev/null +++ b/docs/structNodalPointLoad.html @@ -0,0 +1,131 @@ + + + + + + + +MPM-Geomechanics: NodalPointLoad Struct Reference + + + + + + + + + + + + + + + + + + +
              +
              + + + + + + +
              +
              MPM-Geomechanics +
              +
              Material Point Method for simulating geo-materials under large deformation conditions
              +
              +
              + + + + + + + + +
              +
              + +
              +
              +
              + +
              + +
              +
              + + +
              +
              +
              +
              +
              +
              Loading...
              +
              Searching...
              +
              No Matches
              +
              +
              +
              +
              + +
              +
              NodalPointLoad Struct Reference
              +
              +
              + +

              Define a structure to store point loads. + More...

              + +

              #include <Loads.h>

              +

              Detailed Description

              +

              Define a structure to store point loads.

              +

              The documentation for this struct was generated from the following file: +
              +
              + + + + diff --git a/docs/theory-formulation-manual_8md.html b/docs/theory-formulation-manual_8md.html new file mode 100644 index 0000000..4c094fb --- /dev/null +++ b/docs/theory-formulation-manual_8md.html @@ -0,0 +1,121 @@ + + + + + + + +MPM-Geomechanics: theory-formulation-manual.md File Reference + + + + + + + + + + + + + + + + + + +
              +
              + + + + + + +
              +
              MPM-Geomechanics +
              +
              Material Point Method for simulating geo-materials under large deformation conditions
              +
              +
              + + + + + + + + +
              +
              + +
              +
              +
              + +
              + +
              +
              + + +
              +
              +
              +
              +
              +
              Loading...
              +
              Searching...
              +
              No Matches
              +
              +
              +
              +
              + +
              +
              theory-formulation-manual.md File Reference
              +
              +
              +
              +
              + + + + diff --git a/docs/theory_and_numerical_formulation_.html b/docs/theory_and_numerical_formulation_.html new file mode 100644 index 0000000..48de2f7 --- /dev/null +++ b/docs/theory_and_numerical_formulation_.html @@ -0,0 +1,371 @@ + + + + + + + +MPM-Geomechanics: Theory and Numerical Formulation + + + + + + + + + + + + + + + + + + +
              +
              + + + + + + +
              +
              MPM-Geomechanics +
              +
              Material Point Method for simulating geo-materials under large deformation conditions
              +
              +
              + + + + + + + + +
              +
              + +
              +
              +
              + +
              + +
              +
              + + +
              +
              +
              +
              +
              +
              Loading...
              +
              Searching...
              +
              No Matches
              +
              +
              +
              +
              + +
              +
              Theory and Numerical Formulation
              +
              +
              +

              +Introduction to the Material Point Method (MPM)

              +

              The Material Point Method, or MPM, is a hybrid Lagrangian-Eulerian method that allows for simulating continuum mechanics processes involving large deformations and displacements without issues related to computational mesh distortion. In MPM, the material domain to be simulated is discretized into a set of material points that can move freely within a computational mesh, where the equations of motion are solved. The material points store all variables of interest during the simulation, such as stress, pore pressure, temperature, etc., giving the method its Lagrangian characteristic.

              +
              + +
              +"MPM Discretization"
              +

              In an MPM computational cycle, all variables stored in the material points are computed at the computational mesh nodes using interpolation functions, and then the equation of motion is solved at the nodes. The nodal solution obtained is interpolated back to the particles, whose positions are updated, and all nodal variables are discarded.

              +
              + +
              +"MPM computational cycle"
              +

              +MPM Formulation

              +

              MPM enables the numerical solution of the equation of motion in continuum mechanics by using the nodes of an Eulerian mesh for integration and Lagrangian material points to transfer and store the properties of the medium.

              +

              The equation of motion in continuum mechanics

              +

              +\[ +\frac{\partial \sigma_{ij}}{\partial x_j} + \rho b_i = \rho a_i +\] +

              +

              where \( \sigma_{ij} \) is the Cauchy stress tensor, \( \rho \) is the density, \( b_i \) is the body force (regarding its mass), and \( a_i \) is the acceleration of any point of the continuum.

              +

              Note that all equations are in tensor notation. So \( a_i \) is the acceleration vector with tree dimension in the space \( x, y, z \).

              +

              The MPM formulation is obtained from the weak form of the motion equation and using a Petrov–Galerkin discretization scheme. The weak form of motion equation is obtained by multiplying the equation by arbitrary weighting functions, integrating this product over the domain, using integration by parts to reduce the order of the stress term and introducing the boundary conditions

              +

              +\[ + -\int_{\Omega} \sigma_{i j} \delta u_{i, j} dV + \int_{\Gamma} t_i \delta u_i dA + \int_{\Omega} \rho b_i \delta u_i dV = \int_{\Omega} \rho a_i \delta u_i dV +\] +

              +

              where \( \delta u_i \) are virtual displacements, whose value in the boundary is \( \delta u_i |_{\Gamma} = 0 \) and \( t_i \) is an external traction acting on the boundary \( \Gamma \).

              +

              In the MPM context any field or property \( f(x_i) \) can approximated using the value stored in the particle \( f_p \):

              +

              +\[ + f(x_i) = \sum f_p \chi_p (x_i) +\] +

              +

              where \( \chi_p \) is the particle characteristic function that defines the volume occupied by the material point:

              +

              +\[ + V_p = \int_{\Omega_p \cap \Omega} \chi_p(x_i) dV +\] +

              +

              consequently, in the MPM context, the density, the acceleration and the stress fields can be approximated by the values stored in particles:

              +

              +\[ +\rho(x_i) = \sum_p \frac{m_p}{V_{ip}} \chi_p(x_i) +\] +

              +

              +\[ +\rho(x_i) a_i(x_i) = \sum_p \frac{\dot{p_{ip}}}{V_p} \chi_p(x_i) +\] +

              +

              +\[ +\sigma_{i j}(x_i) = \sum_p \sigma_{i j p} \chi_p(x_i) +\] +

              +

              where \( \dot{p_{i p}} = m_p \dot{v_{ip}} = m_p a_{ip} \).

              +

              Replacing these fields in the weak form of the motion equation we have:

              +

              +\[ +-\sum_p \int_{\Omega_p \cap \Omega} \sigma_{i j p} \chi_p \delta u_{i, j} dV + \int_{\Gamma} t_i \delta u_i dA + \sum_p \int_{\Omega_p \cap \Omega} \frac{m_p}{V_p} b_{i p} \chi_p \delta u_i dV = \sum_p \int_{\Omega_p \cap \Omega} \frac{\dot{p}_p}{V_p} \chi_p a_i dV +\] +

              +

              In the generalized interpolation material point method (GIMP), the resolution of this equation is carried out using a Petrov–Galerkin scheme where the characteristic functions \( \chi_p(x_i) \) are the trial functions and the nodal interpolation functions \( N_I(x_i) \) are the test functions.

              +

              To arrive at this scheme, the virtual displacements are expressed using the nodal interpolation functions:

              +

              +\[ \delta u_i=\sum_I N_{I p} \delta u_{i I} \] +

              +

              Note that the trial and test functions are such that:

              +

              +\[ \sum_I N_{I}(x_i) = 1 \] +

              +

              +\[ \sum_p \chi_p(x_i) = 1 \] +

              +

              Therefore, the resulting discrete form of the motion equation is:

              +

              +\[ +f_{iI}^{int} + f_{iI}^{ext} = \dot{p}_{iI} +\] +

              +

              where

              +

              \( p_{iI} = \sum_p S_{Ip} p_{Ip} \) is the nodal momentum,

              +

              \( f_{iI}^{int} = -\sum_p \sigma_{ijp} S_{Ip,j} V_p \) is the nodal internal force, and

              +

              \( f_{iI}^{ext} = \sum_p m_p S_{Ip} b_{ip} + \int_{\Gamma} t_i N_I(x_i) dA \) is the external force at node \( I \).

              +

              Note that the function \( S_{Ip} \) and its gradient \( S_{Ip,j} \) are the weighting functions of node \( I \) evaluated at the position of particle \( p \).

              +

              The GIMP shape functions are defined by

              +

              +\[ +S_{Ip} = \frac{1}{V_p} \int_{\Omega_p \cap \Omega} \chi_p(x_i) N_I(x_i) dV +\] +

              +

              and

              +

              +\[ +S_{Ip,j} = \frac{1}{V_p} \int_{\Omega_p \cap \Omega} \chi_p(x_i) N_{I,j}(x_i) dV +\] +

              +

              Note that these functions is also a partition of the unity:

              +

              \( \sum_I S_{Ip} = 1 \)

              +

              The the weighting function need to be integrated over the particle domain by choosing different characteristic functions and interpolation functions in a Petrov–Galerkin scheme.

              +

              In the contiguous particle GIMP (cpGIMP) the characteristic function in defined as step function and the interpolation function is defined as linear function:

              +

              +\[ + \chi_p(x)=\left\{\begin{array}{cc}1 & x \in \Omega_p \\ 0 & x \notin \Omega_p\end{array}\right. +\] +

              +

              +\[ + N_I(x)=\left\{\begin{array}{c}0 \quad\left|x-x_I\right| \geq L \\ 1+\left(x-x_I\right) / L \quad-L<x-x_I \leq 0 \\ 1-\left(x-x_I\right) / L \quad 0<x-x_I<L\end{array}\right.$ +\] +

              +

              Where the integration is performed analytically within the particle domain.

              +

              +\[ +S_{I p}=\left\{\begin{array}{ll}0 & |\xi| \geq L+l_p \\ +\left(L+l_p+\xi\right)^2 / 4 L l_p & -L-l_p<\xi \leq-L+l_p \\ +1+\xi / L & -L+l_p<\xi \leq-l_p \\ +1-\left(\xi^2+l_p^2\right) / 2 L l_p & \quad-l_p<\xi \leq l_p \\ +1-\xi / L & l_p<\xi \leq L-l_p \\ +\left(L+l_p-\xi\right)^2 / 4 L l_p & L-l_p<\xi \leq L+l_p\end{array}\right. +\] +

              +

              and

              +

              +\[ +\nabla S_{I p}= \begin{cases}0 & \left|x_p-x_I\right| \geq L+l_p, \\ +\frac{L+l_p+\left(x_p-x_I\right)}{2 L l_p} & -L-l_p<x_p-x_I \leq-L+l_p, \\ +\frac{1}{L} & -L+l_p<x_p-x_I \leq-l_p, \\ +-\frac{x_p-x_I}{L l_p} & -l_p<x_p-x_I \leq l_p, \\ +-\frac{1}{L} & l_p<x_p-x_I \leq L-l_p, \\ +-\frac{L+l_p-\left(x_p-x_I\right)}{2 L l_p} & L-l_p<x_p-x_I \leq L+l_p . +\end{cases} +\] +

              +

              In which \( 2lp \) is the particle domain, \( L \) is the mesh size in 1D, and is the relative particle position to node.

              +

              Weighting functions in 3D are obtained by the product of three one-dimensional weighting functions:

              +

              \( +S_{I p}(x_{i p}) = S_{I p}(\xi) S_{I p} (\eta) S_{I p} (\zeta) +\)

              +

              where \( \xi=x_p-x_I, \eta=y_p-y_I \) and \( \zeta=z_p-z \).

              +

              +Explicit MPM integration

              +

              The discrete form of the motion equation \( +f_{iI}^{int} + f_{iI}^{ext} = \dot{p}_{iI} \), is a second order ordinary differential equation in terms of displacement with respect to time, and can be solved by integration, using an explicit or implicit integration scheme.

              +

              +Central difference Method

              +

              The displacement, the velocity and the acceleration at time \( t = 0, t^1, t^2, ... , t^n \) are knows, and the values at time \( t^{n+1} \) are required, namely the solution of the problem.

              +

              In central difference method, the velocity at \( t^{n+1/2} \) can be approximated as:

              +

              +\[ + \dot{u}^{n+1/2} = ( u^{n+1} - u^{n} ) \Delta t\ +\] +

              +

              and, the acceleration in \( t^{n} \) can be approximated as:

              +

              +\[ + \ddot{u}^{n} = (\dot{u}^{n+1/2} - \dot u ^ {n-1/2})/\Delta t +\] +

              +

              and therefore, the required displacement at \( t^{n+1} \) can be calculated as:

              +

              +\[ + +u^{n+1} = u^{n} + \dot u ^ {n+1/2} \, \Delta t + +\] +

              +

              , where

              +

              +\[ +\dot u ^ {n+1/2} = \dot u ^ {n-1/2} + \ddot u ^ {n} \Delta t +\] +

              +

              The motion equation in \( t^{n} \) is:

              +

              +\[ +m \, \ddot u ^{n} = f ^{n} +\] +

              +

              So,

              +

              +\[ +\ddot u ^{n} = f ^{n} / m +\] +

              +

              and

              +\[ +\dot u ^ {n+1/2} = \dot u ^ {n-1/2} + f ^{n} / m \, \Delta t +\] +

              +

              +Numerical implementation

              +
                +
              1. Calculate force \( f_n \)
              2. +
              3. Calculate acceleration \( \ddot u ^{n} = f ^{n} / m \)
              4. +
              5. Impose essential boundary conditions in terms of \( \ddot u ^{n} \)
              6. +
              7. Update velocity \( \dot u ^ {n+1/2} = \dot u ^ {n-1/2} + \ddot u ^{n} \, \Delta t \)
              8. +
              9. Update position \( u^{n+1} = u^{n} + \dot u ^ {n+1/2} \, \Delta t \)
              10. +
              11. Let \( n = n + 1 \)
              12. +
              +

              +Stability Requirement

              +

              The central difference method is conditionally stable, so the time step must be less that a certain value. For linear systems this critical time step value depends on the natural period of the system, in particular for undamped linear systems the critical time step is:

              +

              +\[ \Delta t_{cr} = T_n \] +

              +

              \( T_n \) is the smallest natural period of the system. For finite element method the critical time step of the central difference method can be expressed as:

              +

              +\[ \Delta t_{cr} = min_e [ l^e / c ] \] +

              +

              , where \( l^e \) is the characteristic length of the element and \( c \) is the sound speed. This time step restriction implies that time step has to be limited such that a disturbance can travel across the smallest characteristic element length withing a single time step. This condition is known as CFL condition, or Courant-Friedrichs-Lewy condition. For linear elastic material the sound speed is:

              +

              +\[ c = \sqrt{ \frac {E (1-\nu)} {(1+\nu)(1-2\nu)\rho}} \] +

              +

              In the MPM context the particles can has velocities in the begin ing of any time step, so the critical time speed can be written as:

              +

              +\[ \Delta t_{cr} = l^e / max_p ( c_p + |v_p| ) \] +

              +

              In a structured regular mesh, \( l^e \) is the grid cell dimension.

              +

              +Explicit MPM Scheme

              +

              In the MPM the particles stores all the material information and the mesh is used to integrate the motion equation \( \dot{p} = m \frac{dv}{dt} = f \). Therefore, the nodal values of mass, velocity, force, stress, ..., etc., needs no tb interpolated from particles using interpolation functions. After solving the motion equation, the acceleration and velocity are interpolated back to the particles to update their velocities and their positions.

              +

              The total force in the motion equation includes internal force and it depends on the stress state store in particles. The stresses can be updated by using a constitutive model, relating stresses with deformations. The deformation tensor can be obtained from the velocity field. The nodal velocities are used to calculate the strain and the vorticity tensor to update the stress. So, in the numerical integration the stresses could be updated with the velocities at the beginning or at the end of each time step. Regarding the velocity field used we have the Update Stress First - USF scheme or the Update Stress Last - USL scheme.

              +

              +Update Stress First - USF - Scheme

              +

              In the USF scheme the velocities in \( n-1/2 \) are used to update the stress state:

              +

              +\[ v_{iI}^{k-1/2} = p^{k-1/2}_{iI} / m_p = \sum_p S_{Ip} m_p v_{ip}^{i-1/2} / m_I^k \] +

              +

              +Update Stress Last - USL - Scheme

              +

              In the USL scheme the updated velocities in nodes \( n+1/2 \) are used to update the stress state:

              +

              +\[ v_{iI}^{k+1/2} = p^{k+1/2}_{iI} / m_I^k \] +

              +

              +Modified Update Stress Last - MUSL - Scheme

              +

              In the Modified USL scheme, the updated particle velocities are used to update the stress state:

              +

              +\[ v_{iI}^{k+1/2} = \sum_p S_{Ip} m_p v_{ip}^{i+1/2} / m_I^k \] +

              +

              +References

              +
                +
              • Zhang, X., Chen, Z., & Liu, Y. (2017). The material point method : a continuum-based particle method for extreme loading cases (First edition). Elsevier. http://site.ebrary.com/id/11285709
              • +
              • Bathe, K.-J., & Bathe, K.-J. (1996). Finite element procedures. Prentice Hall.
              • +
              +
              +
              +
              + + + + diff --git a/docs/theory_manual.html b/docs/theory_manual.html new file mode 100644 index 0000000..50250e2 --- /dev/null +++ b/docs/theory_manual.html @@ -0,0 +1,371 @@ + + + + + + + +MPM-Geomechanics: Theory manual + + + + + + + + + + + + + + + + + + +
              +
              + + + + + + +
              +
              MPM-Geomechanics +
              +
              Material Point Method for simulating geo-materials under large deformation conditions
              +
              +
              + + + + + + + + +
              +
              + +
              +
              +
              + +
              + +
              +
              + + +
              +
              +
              +
              +
              +
              Loading...
              +
              Searching...
              +
              No Matches
              +
              +
              +
              +
              + +
              +
              Theory manual
              +
              +
              +

              +Introduction to the Material Point Method (MPM)

              +

              The Material Point Method, or MPM, is a hybrid Lagrangian-Eulerian method that allows for simulating continuum mechanics processes involving large deformations and displacements without issues related to computational mesh distortion. In MPM, the material domain to be simulated is discretized into a set of material points that can move freely within a computational mesh, where the equations of motion are solved. The material points store all variables of interest during the simulation, such as stress, pore pressure, temperature, etc., giving the method its Lagrangian characteristic.

              +
              + +
              +"MPM Discretization"
              +

              In an MPM computational cycle, all variables stored in the material points are computed at the computational mesh nodes using interpolation functions, and then the equation of motion is solved at the nodes. The nodal solution obtained is interpolated back to the particles, whose positions are updated, and all nodal variables are discarded.

              +
              + +
              +"MPM computational cycle"
              +

              +MPM Formulation

              +

              MPM enables the numerical solution of the equation of motion in continuum mechanics by using the nodes of an Eulerian mesh for integration and Lagrangian material points to transfer and store the properties of the medium.

              +

              The equation of motion in continuum mechanics

              +

              +\[ +\frac{\partial \sigma_{ij}}{\partial x_j} + \rho b_i = \rho a_i +\] +

              +

              where \( \sigma_{ij} \) is the Cauchy stress tensor, \( \rho \) is the density, \( b_i \) is the body force (regarding its mass), and \( a_i \) is the acceleration of any point of the continuum.

              +

              Note that all equations are in tensor notation. So \( a_i \) is the acceleration vector with tree dimension in the space \( x, y, z \).

              +

              The MPM formulation is obtained from the weak form of the motion equation and using a Petrov–Galerkin discretization scheme. The weak form of motion equation is obtained by multiplying the equation by arbitrary weighting functions, integrating this product over the domain, using integration by parts to reduce the order of the stress term and introducing the boundary conditions

              +

              +\[ + -\int_{\Omega} \sigma_{i j} \delta u_{i, j} dV + \int_{\Gamma} t_i \delta u_i dA + \int_{\Omega} \rho b_i \delta u_i dV = \int_{\Omega} \rho a_i \delta u_i dV +\] +

              +

              where \( \delta u_i \) are virtual displacements, whose value in the boundary is \( \delta u_i |_{\Gamma} = 0 \) and \( t_i \) is an external traction acting on the boundary \( \Gamma \).

              +

              In the MPM context any field or property \( f(x_i) \) can approximated using the value stored in the particle \( f_p \):

              +

              +\[ + f(x_i) = \sum f_p \chi_p (x_i) +\] +

              +

              where \( \chi_p \) is the particle characteristic function that defines the volume occupied by the material point:

              +

              +\[ + V_p = \int_{\Omega_p \cap \Omega} \chi_p(x_i) dV +\] +

              +

              consequently, in the MPM context, the density, the acceleration and the stress fields can be approximated by the values stored in particles:

              +

              +\[ +\rho(x_i) = \sum_p \frac{m_p}{V_{ip}} \chi_p(x_i) +\] +

              +

              +\[ +\rho(x_i) a_i(x_i) = \sum_p \frac{\dot{p_{ip}}}{V_p} \chi_p(x_i) +\] +

              +

              +\[ +\sigma_{i j}(x_i) = \sum_p \sigma_{i j p} \chi_p(x_i) +\] +

              +

              where \( \dot{p_{i p}} = m_p \dot{v_{ip}} = m_p a_{ip} \).

              +

              Replacing these fields in the weak form of the motion equation we have:

              +

              +\[ +-\sum_p \int_{\Omega_p \cap \Omega} \sigma_{i j p} \chi_p \delta u_{i, j} dV + \int_{\Gamma} t_i \delta u_i dA + \sum_p \int_{\Omega_p \cap \Omega} \frac{m_p}{V_p} b_{i p} \chi_p \delta u_i dV = \sum_p \int_{\Omega_p \cap \Omega} \frac{\dot{p}_p}{V_p} \chi_p a_i dV +\] +

              +

              In the generalized interpolation material point method (GIMP), the resolution of this equation is carried out using a Petrov–Galerkin scheme where the characteristic functions \( \chi_p(x_i) \) are the trial functions and the nodal interpolation functions \( N_I(x_i) \) are the test functions.

              +

              To arrive at this scheme, the virtual displacements are expressed using the nodal interpolation functions:

              +

              +\[ \delta u_i=\sum_I N_{I p} \delta u_{i I} \] +

              +

              Note that the trial and test functions are such that:

              +

              +\[ \sum_I N_{I}(x_i) = 1 \] +

              +

              +\[ \sum_p \chi_p(x_i) = 1 \] +

              +

              Therefore, the resulting discrete form of the motion equation is:

              +

              +\[ +f_{iI}^{int} + f_{iI}^{ext} = \dot{p}_{iI} +\] +

              +

              where

              +

              \( p_{iI} = \sum_p S_{Ip} p_{Ip} \) is the nodal momentum,

              +

              \( f_{iI}^{int} = -\sum_p \sigma_{ijp} S_{Ip,j} V_p \) is the nodal internal force, and

              +

              \( f_{iI}^{ext} = \sum_p m_p S_{Ip} b_{ip} + \int_{\Gamma} t_i N_I(x_i) dA \) is the external force at node \( I \).

              +

              Note that the function \( S_{Ip} \) and its gradient \( S_{Ip,j} \) are the weighting functions of node \( I \) evaluated at the position of particle \( p \).

              +

              The GIMP shape functions are defined by

              +

              +\[ +S_{Ip} = \frac{1}{V_p} \int_{\Omega_p \cap \Omega} \chi_p(x_i) N_I(x_i) dV +\] +

              +

              and

              +

              +\[ +S_{Ip,j} = \frac{1}{V_p} \int_{\Omega_p \cap \Omega} \chi_p(x_i) N_{I,j}(x_i) dV +\] +

              +

              Note that these functions is also a partition of the unity:

              +

              \( \sum_I S_{Ip} = 1 \)

              +

              The the weighting function need to be integrated over the particle domain by choosing different characteristic functions and interpolation functions in a Petrov–Galerkin scheme.

              +

              In the contiguous particle GIMP (cpGIMP) the characteristic function in defined as step function and the interpolation function is defined as linear function:

              +

              +\[ + \chi_p(x)=\left\{\begin{array}{cc}1 & x \in \Omega_p \\ 0 & x \notin \Omega_p\end{array}\right. +\] +

              +

              +\[ + N_I(x)=\left\{\begin{array}{c}0 \quad\left|x-x_I\right| \geq L \\ 1+\left(x-x_I\right) / L \quad-L<x-x_I \leq 0 \\ 1-\left(x-x_I\right) / L \quad 0<x-x_I<L\end{array}\right.$ +\] +

              +

              Where the integration is performed analytically within the particle domain.

              +

              +\[ +S_{I p}=\left\{\begin{array}{ll}0 & |\xi| \geq L+l_p \\ +\left(L+l_p+\xi\right)^2 / 4 L l_p & -L-l_p<\xi \leq-L+l_p \\ +1+\xi / L & -L+l_p<\xi \leq-l_p \\ +1-\left(\xi^2+l_p^2\right) / 2 L l_p & \quad-l_p<\xi \leq l_p \\ +1-\xi / L & l_p<\xi \leq L-l_p \\ +\left(L+l_p-\xi\right)^2 / 4 L l_p & L-l_p<\xi \leq L+l_p\end{array}\right. +\] +

              +

              and

              +

              +\[ +\nabla S_{I p}= \begin{cases}0 & \left|x_p-x_I\right| \geq L+l_p, \\ +\frac{L+l_p+\left(x_p-x_I\right)}{2 L l_p} & -L-l_p<x_p-x_I \leq-L+l_p, \\ +\frac{1}{L} & -L+l_p<x_p-x_I \leq-l_p, \\ +-\frac{x_p-x_I}{L l_p} & -l_p<x_p-x_I \leq l_p, \\ +-\frac{1}{L} & l_p<x_p-x_I \leq L-l_p, \\ +-\frac{L+l_p-\left(x_p-x_I\right)}{2 L l_p} & L-l_p<x_p-x_I \leq L+l_p . +\end{cases} +\] +

              +

              In which \( 2lp \) is the particle domain, \( L \) is the mesh size in 1D, and is the relative particle position to node.

              +

              Weighting functions in 3D are obtained by the product of three one-dimensional weighting functions:

              +

              \( +S_{I p}(x_{i p}) = S_{I p}(\xi) S_{I p} (\eta) S_{I p} (\zeta) +\)

              +

              where \( \xi=x_p-x_I, \eta=y_p-y_I \) and \( \zeta=z_p-z \).

              +

              +Explicit MPM integration

              +

              The discrete form of the motion equation \( +f_{iI}^{int} + f_{iI}^{ext} = \dot{p}_{iI} \), is a second order ordinary differential equation in terms of displacement with respect to time, and can be solved by integration, using an explicit or implicit integration scheme.

              +

              +Central difference Method

              +

              The displacement, the velocity and the acceleration at time \( t = 0, t^1, t^2, ... , t^n \) are knows, and the values at time \( t^{n+1} \) are required, namely the solution of the problem.

              +

              In central difference method, the velocity at \( t^{n+1/2} \) can be approximated as:

              +

              +\[ + \dot{u}^{n+1/2} = ( u^{n+1} - u^{n} ) \Delta t\ +\] +

              +

              and, the acceleration in \( t^{n} \) can be approximated as:

              +

              +\[ + \ddot{u}^{n} = (\dot{u}^{n+1/2} - \dot u ^ {n-1/2})/\Delta t +\] +

              +

              and therefore, the required displacement at \( t^{n+1} \) can be calculated as:

              +

              +\[ + +u^{n+1} = u^{n} + \dot u ^ {n+1/2} \, \Delta t + +\] +

              +

              , where

              +

              +\[ +\dot u ^ {n+1/2} = \dot u ^ {n-1/2} + \ddot u ^ {n} \Delta t +\] +

              +

              The motion equation in \( t^{n} \) is:

              +

              +\[ +m \, \ddot u ^{n} = f ^{n} +\] +

              +

              So,

              +

              +\[ +\ddot u ^{n} = f ^{n} / m +\] +

              +

              and

              +\[ +\dot u ^ {n+1/2} = \dot u ^ {n-1/2} + f ^{n} / m \, \Delta t +\] +

              +

              +Numerical implementation

              +
                +
              1. Calculate force \( f_n \)
              2. +
              3. Calculate acceleration \( \ddot u ^{n} = f ^{n} / m \)
              4. +
              5. Impose essential boundary conditions in terms of \( \ddot u ^{n} \)
              6. +
              7. Update velocity \( \dot u ^ {n+1/2} = \dot u ^ {n-1/2} + \ddot u ^{n} \, \Delta t \)
              8. +
              9. Update position \( u^{n+1} = u^{n} + \dot u ^ {n+1/2} \, \Delta t \)
              10. +
              11. Let \( n = n + 1 \)
              12. +
              +

              +Stability Requirement

              +

              The central difference method is conditionally stable, so the time step must be less that a certain value. For linear systems this critical time step value depends on the natural period of the system, in particular for undamped linear systems the critical time step is:

              +

              +\[ \Delta t_{cr} = T_n \] +

              +

              \( T_n \) is the smallest natural period of the system. For finite element method the critical time step of the central difference method can be expressed as:

              +

              +\[ \Delta t_{cr} = min_e [ l^e / c ] \] +

              +

              , where \( l^e \) is the characteristic length of the element and \( c \) is the sound speed. This time step restriction implies that time step has to be limited such that a disturbance can travel across the smallest characteristic element length withing a single time step. This condition is known as CFL condition, or Courant-Friedrichs-Lewy condition. For linear elastic material the sound speed is:

              +

              +\[ c = \sqrt{ \frac {E (1-\nu)} {(1+\nu)(1-2\nu)\rho}} \] +

              +

              In the MPM context the particles can has velocities in the begin ing of any time step, so the critical time speed can be written as:

              +

              +\[ \Delta t_{cr} = l^e / max_p ( c_p + |v_p| ) \] +

              +

              In a structured regular mesh, \( l^e \) is the grid cell dimension.

              +

              +Explicit MPM Scheme

              +

              In the MPM the particles stores all the material information and the mesh is used to integrate the motion equation \( \dot{p} = m \frac{dv}{dt} = f \). Therefore, the nodal values of mass, velocity, force, stress, ..., etc., needs no tb interpolated from particles using interpolation functions. After solving the motion equation, the acceleration and velocity are interpolated back to the particles to update their velocities and their positions.

              +

              The total force in the motion equation includes internal force and it depends on the stress state store in particles. The stresses can be updated by using a constitutive model, relating stresses with deformations. The deformation tensor can be obtained from the velocity field. The nodal velocities are used to calculate the strain and the vorticity tensor to update the stress. So, in the numerical integration the stresses could be updated with the velocities at the beginning or at the end of each time step. Regarding the velocity field used we have the Update Stress First - USF scheme or the Update Stress Last - USL scheme.

              +

              +Update Stress First - USF - Scheme

              +

              In the USF scheme the velocities in \( n-1/2 \) are used to update the stress state:

              +

              +\[ v_{iI}^{k-1/2} = p^{k-1/2}_{iI} / m_p = \sum_p S_{Ip} m_p v_{ip}^{i-1/2} / m_I^k \] +

              +

              +Update Stress Last - USL - Scheme

              +

              In the USL scheme the updated velocities in nodes \( n+1/2 \) are used to update the stress state:

              +

              +\[ v_{iI}^{k+1/2} = p^{k+1/2}_{iI} / m_I^k \] +

              +

              +Modified Update Stress Last - MUSL - Scheme

              +

              In the Modified USL scheme, the updated particle velocities are used to update the stress state:

              +

              +\[ v_{iI}^{k+1/2} = \sum_p S_{Ip} m_p v_{ip}^{i+1/2} / m_I^k \] +

              +

              +References

              +
                +
              • Zhang, X., Chen, Z., & Liu, Y. (2017). The material point method : a continuum-based particle method for extreme loading cases (First edition). Elsevier. http://site.ebrary.com/id/11285709
              • +
              • Bathe, K.-J., & Bathe, K.-J. (1996). Finite element procedures. Prentice Hall.
              • +
              +
              +
              +
              + + + + diff --git a/docs/verification_problems.html b/docs/verification_problems.html new file mode 100644 index 0000000..2d446c5 --- /dev/null +++ b/docs/verification_problems.html @@ -0,0 +1,280 @@ + + + + + + + +MPM-Geomechanics: Verification problems + + + + + + + + + + + + + + + + + + +
              +
              + + + + + + +
              +
              MPM-Geomechanics +
              +
              Material Point Method for simulating geo-materials under large deformation conditions
              +
              +
              + + + + + + + + +
              +
              + +
              +
              +
              + +
              + +
              +
              + + +
              +
              +
              +
              +
              +
              Loading...
              +
              Searching...
              +
              No Matches
              +
              +
              +
              +
              + +
              +
              Verification problems
              +
              +
              +

              +Bousssinesq's problem

              +

              +Introduction

              +

              In Geomechanics, the Boussinesq's problem refers to the point load acting on a surface of an elastic half-space problem. The boundary conditions for this problem are:

              +
                +
              • The load P is applied only in one point, in the origin.
              • +
              • The load is zero in any other point.
              • +
              • For any point infinitely distant from the origin, the displacements must all vanish.
              • +
              +
              + +
              +"Boussinesq' problem"
              +

              +Analytical solution

              +

              The analytical solution of the vertical displacement field is:

              +\[ + u_z(x,y,z) = \frac{P}{4 \pi G d} (2 (1-\nu) + z^2 / d^2) +\] +

              +

              where \( G = \frac{E}{2(1+\nu)} \) is the Shear modulus of the elastic material, \( \nu \) is the Poisson ratio and \( d = \sqrt{ x^2 + y^2 + z^2 } \) is the total distance from load to the point.

              +

              +MPM model and result comparison

              +

              For model the displacement field generated due the point load we will create an elastic body with dimensions \( l_x = l_y = l_z = 1 m \), for this we can use the keyword "cuboid", with point 1 in (0,0,0) and Point 2 in (1,1,1). For the elastic parameters of the material, we will use Young's modulus equal to \( E = 200e6 \) Pa, a density equal to \( \rho = 1500 kg/m^3\). This body is placed in a computational mesh with cell dimension \( dx = dy = dz = 0.1\) m. The boundary condition of this problem is a nodal load at the middle point on the body surface acting in vertical direction with magnitude of 1. For set this condition we will use the "nodal_point_load" keyword. The displacement boundary condition of the mesh is set using the "boundary_conditions" keyword. In this problem the plane Zn (upper plane) is set as free no move, and all the others planes are set as sliding, allowing movements only in parallel direction of the plane. The current MPM formulation solves the motion equation so, we need to add some damping to avoid the transient solution using "damping" keyword, with "kinetic" option for the damping's type. The "kinetic" keyword is used to active dynamic relaxations techniques on the velocity field for obtaining the static solution of the problem.

              +

              The input file for this problem is:

              {
              +    "body":
              +    {
              +        "elastic-cuboid-body":
              +        {
              +            "type":"cuboid",
              +            "id":1,
              +            "point_p1":[0.0,0.0,0],
              +            "point_p2":[1,1,1],
              +            "material_id":1
              +        }
              +    },
              +
              +    "materials":
              +    {
              +        "material-1":
              +        {
              +            "type":"elastic",
              +            "id":1,
              +            "young":200e6,
              +            "density":1500,
              +            "poisson":0.25
              +        }
              +    },
              +
              +    "mesh":
              +    { 
              +        "cells_dimension":[0.1,0.1,0.1],
              +        "cells_number":[10,10,10],
              +        "origin":[0.0,0.0,0.0],
              +        "boundary_conditions":
              +        {
              +            "plane_X0":"sliding",
              +            "plane_Y0":"sliding",
              +            "plane_Z0":"sliding",
              +            "plane_Xn":"sliding",
              +            "plane_Yn":"sliding",
              +            "plane_Zn":"free"
              +        }
              +    },
              +    "time":0.025,
              +    "time_step_multiplier":0.3,
              +    "results":
              +    {
              +        "print":50,
              +        "fields":["all"]
              +    },
              +    "nodal_point_load": [ [[0.5, 0.5, 1.0], [0.0, 0.0, -1.0]]],
              +    "damping":
              +    {
              +        "type":"kinetic"
              +    }
              +}
              +

              The numerical results obtained with MPM were compared with the analytical solution. In general the numerical solution presents a good coincidence with the analytical solution, however, some diferences are observed due the discretization. The MPM formulation uses particles to represent the continuum's variables in a Lagrangian approach. This particles represents a portion of the domain, so they have an associated volume. The particles do not represent a particle located at the boundary of the body and some errors, in consequence some differences will be observed. This differences must to be reducing with the refinement of the computational mesh.
              +

              +
              + +
              +"Results comparison"
              +

              +Base acceleration example

              +

              In this example we will show how to model the movement of an elastic body subjected to a dynamic boundary condition. The geometry of the body will be a regular cuboid with edge dimension \( l_x = 0.3\) m, \( l_y = 0.3 \) m, and \( l_z = 0.8 \) m in the \( xyz \) coordinate system. The lower coordinate point is located at \( p_{min} = (0.4, 0.4, 0.0) \) m. The dynamic boundary condition considered is a base acceleration defined as a function of time as \( \ddot{u} = A 2 \pi f cos ( 2 \pi f t + \alpha ) \). The total time of the simulation is 2 seconds, and the time step is \( \Delta t = 1e-4\) seconds. The material density considered is \( \rho = 2500 \) kg/m \(^3\), and the elastic behavior is defined by Young's modulus \( E = 100e6 \) MPa and Poisson ratio equal to \( \nu = 0.25 \). The figure below shows the body in the space.

              +
              + +
              +"Geometry of the body"
              +

              +MPM-Model

              +

              With these data we will to create an MPM model consisting in uniformly distributed particles inside the geometry of the body. For do so, we used the "body" and "cuboid" keywords. When body type is "cuboid" we can create a body with the lower and highest coordinate point P1 (lower) and P2 (hight) of the geometry. The material established using the "material_id" keyword. This material must to be correctly defined using the keyword "materials". When we create a body using uniformly distributed particles, eight in the case of a regular element mesh, the number of total particles in the body depends of the mesh grid cell dimension. In this case we will consider a uniform mesh consisting in elements of dimension \( \Delta x = \Delta y = \Delta z = 0.1 \) m. In a MPM model the mesh must to cover the whole domain, covering the complete amplitude of the body movement. For this example we will consider the same number of element in each direction \( n_x=12, n_y=12, n_z=15 \) to account from the origin of coordinate \( (0,0,0) \).

              +

              The complete JSON file with the keywords we write:

              {
              +    "body":
              +    {
              +        "elastic-cuboid-body":
              +        {
              +        "type":"cuboid",
              +        "id":1,
              +        "point_p1":[0.4,0.4,0],
              +        "point_p2":[0.7,0.7,0.8],
              +        "material_id":1
              +        }
              +    },
              +        "materials":
              +    {
              +        "material-1":
              +        {
              +        "type":"elastic",
              +        "id":1,
              +        "young":100e6,
              +        "density":2500,
              +        "poisson":0.25
              +        }
              +    },
              +    "mesh":
              +    { 
              +        "cells_dimension":[0.1,0.1,0.1],
              +        "cells_number":[12,12,15],
              +        "origin":[0,0,0],
              +        "boundary_conditions":
              +        {
              +        "plane_X0":"sliding",
              +        "plane_Y0":"sliding",
              +        "plane_Z0":"earthquake",
              +        "plane_Xn":"sliding",
              +        "plane_Yn":"sliding",
              +        "plane_Zn":"sliding"
              +        }
              +    },
              +    "time":2,
              +    "time_step":1e-4,
              +    "results":
              +    {
              +        "print":40,
              +        "fields":["displacement","velocity"]
              +    }
              +}
              +

              When the "earthquake" keyword is defined in any plane in the mesh, the simulator will search for the acceleration record "base_acceleration.csv" in the working directory. This record must to be the data in the following structure: time, acceleration_x, acceleration_y, acceleration_z. The five first lines of the acceleration record is:

              +
                  t,ax,ay,az
              +    0.0,-1.8849555921538759,-0.9424777960769379,-0.0
              +    5e-05,-1.8849554991350466,-0.9424777844495842,-0.0
              +    0.0001,-1.884955220078568,-0.9424777495675233,-0.0
              +    0.00015000000000000001,-1.8849547549844674,-0.9424776914307561,-0.0
              +    ...
              +

              Note that the base acceleration record must to contain a header, that will be ignored during the reading acceleration data.

              +

              Once we have the JSON input file, we can execute the simulator with the input file as parameter. When the simulation ends we can find the particle results in the "/particle" directory, and the grid mesh in the "/grid" directory. The particles results are written in uniformly separated times determined by the number of results defined in the "print" keyword. The number of total results must be 40. In this example, the particles results must be "particle_1.vtu", "particle_2.vtu", ..., "particle_41.vtu". Together with the "particle_i.vtu" results, a particle serie file "particleTimeSerie.pvd" is created. This time series file can be used to load all the results in the Paraview scientific visualization program.

              +

              In other to visualize the results, the "particleTimeSerie.pvd" can be open in the Paraview by "> File > Open > particleTimeSerie.pvd". And the mesh can be loaded by open the "> File > Open > eulerianGrid.vtu".

              +
              + +
              +"Particles and mesh of analyzed case"
              +

              In order to validate the implementation of the dynamic boundary condition the velocity calculated from the input function used to created the base acceleration, \( \dot{u} = A sin ( 2 \pi f t + \alpha ) \) is compared with the velocity of a particle located at the base of the MPM model. The next figure shows this comparison. The velocities obtained with MPM at the base of the models coincides with the velocities obtained from the input record.

              +
              + +
              +"Verification of velocities obtained with MPM simulation"
              +
              +
              +
              + + + + diff --git a/docs/verifications-manual_8md.html b/docs/verifications-manual_8md.html new file mode 100644 index 0000000..8349cb0 --- /dev/null +++ b/docs/verifications-manual_8md.html @@ -0,0 +1,121 @@ + + + + + + + +MPM-Geomechanics: verifications-manual.md File Reference + + + + + + + + + + + + + + + + + + +
              +
              + + + + + + +
              +
              MPM-Geomechanics +
              +
              Material Point Method for simulating geo-materials under large deformation conditions
              +
              +
              + + + + + + + + +
              +
              + +
              +
              +
              + +
              + +
              +
              + + +
              +
              +
              +
              +
              +
              Loading...
              +
              Searching...
              +
              No Matches
              +
              +
              +
              +
              + +
              +
              verifications-manual.md File Reference
              +
              +
              +
              +
              + + + + diff --git a/manual/images/boussinesq-problem-verification.png b/manual/images/boussinesq-problem-verification.png new file mode 100644 index 0000000..1128ab3 Binary files /dev/null and b/manual/images/boussinesq-problem-verification.png differ diff --git a/manual/images/boussinesq-problem.png b/manual/images/boussinesq-problem.png new file mode 100644 index 0000000..8c84b8b Binary files /dev/null and b/manual/images/boussinesq-problem.png differ diff --git a/manual/manual.md b/manual/theory-formulation-manual.md similarity index 95% rename from manual/manual.md rename to manual/theory-formulation-manual.md index 4a3d4e1..6182540 100644 --- a/manual/manual.md +++ b/manual/theory-formulation-manual.md @@ -1,22 +1,18 @@ -\page program_theory_manual Theory manual +\page theory_and_numerical_formulation_ Theory and Numerical Formulation -## Material Point Method (MPM) - -### Introduction to MPM +# Introduction to the Material Point Method (MPM) The Material Point Method, or MPM, is a hybrid Lagrangian-Eulerian method that allows for simulating continuum mechanics processes involving large deformations and displacements without issues related to computational mesh distortion. In MPM, the material domain to be simulated is discretized into a set of material points that can move freely within a computational mesh, where the equations of motion are solved. The material points store all variables of interest during the simulation, such as stress, pore pressure, temperature, etc., giving the method its Lagrangian characteristic. -![](/manual/images/mpm_discretization.png) -Figure 1: MPM Discretization [2] +!["MPM Discretization"](/manual/images/mpm_discretization.png) {width=600} In an MPM computational cycle, all variables stored in the material points are computed at the computational mesh nodes using interpolation functions, and then the equation of motion is solved at the nodes. The nodal solution obtained is interpolated back to the particles, whose positions are updated, and all nodal variables are discarded. -![](/manual/images/mpm_cycle.png) -Figure 2: MPM Cycle [3] +!["MPM computational cycle"](/manual/images/mpm_cycle.png) {width=600} -### MPM Formulation +# MPM Formulation MPM enables the numerical solution of the equation of motion in continuum mechanics by using the nodes of an Eulerian mesh for integration and Lagrangian material points to transfer and store the properties of the medium. @@ -163,12 +159,12 @@ S_{I p}(x_{i p}) = S_{I p}(\xi) S_{I p} (\eta) S_{I p} (\zeta) where \f$ \xi=x_p-x_I, \eta=y_p-y_I \f$ and \f$ \zeta=z_p-z \f$. -### Explicit MPM integration +# Explicit MPM integration The discrete form of the motion equation \f$ f_{iI}^{int} + f_{iI}^{ext} = \dot{p}_{iI} \f$, is a second order ordinary differential equation in terms of displacement with respect to time, and can be solved by integration, using an explicit or implicit integration scheme. -### Central difference Method +# Central difference Method The displacement, the velocity and the acceleration at time \f$ t = 0, t^1, t^2, ... , t^n \f$ are knows, and the values at time \f$ t^{n+1} \f$ are required, namely the solution of the problem. @@ -215,7 +211,7 @@ and \dot u ^ {n+1/2} = \dot u ^ {n-1/2} + f ^{n} / m \, \Delta t \f] -### Numerical implementation +# Numerical implementation 1. Calculate force \f$ f_n \f$ 2. Calculate acceleration \f$ \ddot u ^{n} = f ^{n} / m \f$ @@ -224,7 +220,7 @@ and 5. Update position \f$ u^{n+1} = u^{n} + \dot u ^ {n+1/2} \, \Delta t \f$ 6. Let \f$ n = n + 1 \f$ -### Stability Requirement +# Stability Requirement The central difference method is conditionally stable, so the time step must be less that a certain value. For linear systems this critical time step value depends on the natural period of the system, in particular for undamped linear systems the critical time step is: \f[ \Delta t_{cr} = T_n \f] @@ -243,23 +239,23 @@ In the MPM context the particles can has velocities in the begin ing of any time In a structured regular mesh, \f$ l^e \f$ is the grid cell dimension. -## Explicit MPM Scheme +# Explicit MPM Scheme In the MPM the particles stores all the material information and the mesh is used to integrate the motion equation \f$ \dot{p} = m \frac{dv}{dt} = f \f$. Therefore, the nodal values of mass, velocity, force, stress, ..., etc., needs no tb interpolated from particles using interpolation functions. After solving the motion equation, the acceleration and velocity are interpolated back to the particles to update their velocities and their positions. The total force in the motion equation includes internal force and it depends on the stress state store in particles. The stresses can be updated by using a constitutive model, relating stresses with deformations. The deformation tensor can be obtained from the velocity field. The nodal velocities are used to calculate the strain and the vorticity tensor to update the stress. So, in the numerical integration the stresses could be updated with the velocities at the beginning or at the end of each time step. Regarding the velocity field used we have the Update Stress First - USF scheme or the Update Stress Last - USL scheme. -**USF Scheme** +# Update Stress First - USF - Scheme In the USF scheme the velocities in \f$ n-1/2 \f$ are used to update the stress state: \f[ v_{iI}^{k-1/2} = p^{k-1/2}_{iI} / m_p = \sum_p S_{Ip} m_p v_{ip}^{i-1/2} / m_I^k \f] -**USL Scheme** +# Update Stress Last - USL - Scheme In the USL scheme the updated velocities in nodes \f$ n+1/2 \f$ are used to update the stress state: \f[ v_{iI}^{k+1/2} = p^{k+1/2}_{iI} / m_I^k \f] -**MUSL Scheme** +# Modified Update Stress Last - MUSL - Scheme In the Modified USL scheme, the updated particle velocities are used to update the stress state: \f[ v_{iI}^{k+1/2} = \sum_p S_{Ip} m_p v_{ip}^{i+1/2} / m_I^k \f] diff --git a/manual/tutorial.md b/manual/verifications-manual.md similarity index 54% rename from manual/tutorial.md rename to manual/verifications-manual.md index b2edcfe..47b446d 100644 --- a/manual/tutorial.md +++ b/manual/verifications-manual.md @@ -1,12 +1,92 @@ -\page program_tutorial_manual Tutorial manual +\page verification_problems Verification problems +# Bousssinesq's problem -## Base acceleration example +## Introduction +In Geomechanics, the Boussinesq's problem refers to the point load acting on a surface of an elastic half-space problem. The boundary conditions for this problem are: + +- The load P is applied only in one point, in the origin. +- The load is zero in any other point. +- For any point infinitely distant from the origin, the displacements must all vanish. + +!["Boussinesq' problem"](/manual/images/boussinesq-problem.png){width=300} + +## Analytical solution +The analytical solution of the vertical displacement field is: +\f[ + u_z(x,y,z) = \frac{P}{4 \pi G d} (2 (1-\nu) + z^2 / d^2) +\f] +where \f$ G = \frac{E}{2(1+\nu)} \f$ is the Shear modulus of the elastic material, \f$ \nu \f$ is the Poisson ratio and \f$ d = \sqrt{ x^2 + y^2 + z^2 } \f$ is the total distance from load to the point. + +## MPM model and result comparison +For model the displacement field generated due the point load we will create an elastic body with dimensions \f$ l_x = l_y = l_z = 1 m \f$, for this we can use the keyword "cuboid", with point 1 in (0,0,0) and Point 2 in (1,1,1). For the elastic parameters of the material, we will use Young's modulus equal to \f$ E = 200e6 \f$ Pa, a density equal to \f$ \rho = 1500 kg/m^3\f$. This body is placed in a computational mesh with cell dimension \f$ dx = dy = dz = 0.1\f$ m. The boundary condition of this problem is a nodal load at the middle point on the body surface acting in vertical direction with magnitude of 1. For set this condition we will use the "nodal_point_load" keyword. The displacement boundary condition of the mesh is set using the "boundary_conditions" keyword. In this problem the plane Zn (upper plane) is set as free no move, and all the others planes are set as sliding, allowing movements only in parallel direction of the plane. The current MPM formulation solves the motion equation so, we need to add some damping to avoid the transient solution using "damping" keyword, with "kinetic" option for the damping's type. The "kinetic" keyword is used to active dynamic relaxations techniques on the velocity field for obtaining the static solution of the problem. + +The input file for this problem is: + + { + "body": + { + "elastic-cuboid-body": + { + "type":"cuboid", + "id":1, + "point_p1":[0.0,0.0,0], + "point_p2":[1,1,1], + "material_id":1 + } + }, + + "materials": + { + "material-1": + { + "type":"elastic", + "id":1, + "young":200e6, + "density":1500, + "poisson":0.25 + } + }, + + "mesh": + { + "cells_dimension":[0.1,0.1,0.1], + "cells_number":[10,10,10], + "origin":[0.0,0.0,0.0], + "boundary_conditions": + { + "plane_X0":"sliding", + "plane_Y0":"sliding", + "plane_Z0":"sliding", + "plane_Xn":"sliding", + "plane_Yn":"sliding", + "plane_Zn":"free" + } + }, + "time":0.025, + "time_step_multiplier":0.3, + "results": + { + "print":50, + "fields":["all"] + }, + "nodal_point_load": [ [[0.5, 0.5, 1.0], [0.0, 0.0, -1.0]]], + "damping": + { + "type":"kinetic" + } + } + +The numerical results obtained with MPM were compared with the analytical solution. In general the numerical solution presents a good coincidence with the analytical solution, however, some diferences are observed due the discretization. The MPM formulation uses particles to represent the continuum's variables in a Lagrangian approach. This particles represents a portion of the domain, so they have an associated volume. The particles do not represent a particle located at the boundary of the body and some errors, in consequence some differences will be observed. This differences must to be reducing with the refinement of the computational mesh. + +!["Results comparison"](/manual/images/boussinesq-problem-verification.png){width=600} + +# Base acceleration example In this example we will show how to model the movement of an elastic body subjected to a dynamic boundary condition. The geometry of the body will be a regular cuboid with edge dimension \f$ l_x = 0.3\f$ m, \f$ l_y = 0.3 \f$ m, and \f$ l_z = 0.8 \f$ m in the \f$ xyz \f$ coordinate system. The lower coordinate point is located at \f$ p_{min} = (0.4, 0.4, 0.0) \f$ m. The dynamic boundary condition considered is a base acceleration defined as a function of time as \f$ \ddot{u} = A 2 \pi f cos ( 2 \pi f t + \alpha ) \f$. The total time of the simulation is 2 seconds, and the time step is \f$ \Delta t = 1e-4\f$ seconds. The material density considered is \f$ \rho = 2500 \f$ kg/m\f$^3\f$, and the elastic behavior is defined by Young's modulus\f$ E = 100e6 \f$ MPa and Poisson ratio equal to \f$ \nu = 0.25 \f$. The figure below shows the body in the space. -!["Geometry of the body"](/manual/images/geometry-body.png) +!["Geometry of the body"](/manual/images/geometry-body.png) {width=600} -### MPM-Model +## MPM-Model With these data we will to create an MPM model consisting in uniformly distributed particles inside the geometry of the body. For do so, we used the "body" and "cuboid" keywords. When body type is "cuboid" we can create a body with the lower and highest coordinate point P1 (lower) and P2 (hight) of the geometry. The material established using the "material_id" keyword. This material must to be correctly defined using the keyword "materials". When we create a body using uniformly distributed particles, eight in the case of a regular element mesh, the number of total particles in the body depends of the mesh grid cell dimension. In this case we will consider a uniform mesh consisting in elements of dimension \f$ \Delta x = \Delta y = \Delta z = 0.1 \f$ m. In a MPM model the mesh must to cover the whole domain, covering the complete amplitude of the body movement. For this example we will consider the same number of element in each direction \f$ n_x=12, n_y=12, n_z=15 \f$ to account from the origin of coordinate \f$ (0,0,0) \f$. @@ -76,8 +156,8 @@ Once we have the JSON input file, we can execute the simulator with the input fi In other to visualize the results, the "particleTimeSerie.pvd" can be open in the Paraview by "> File > Open > particleTimeSerie.pvd". And the mesh can be loaded by open the "> File > Open > eulerianGrid.vtu". -!["Particles and mesh of analyzed case"](/manual/images/mpm-model-particles-and-mesh.png) +!["Particles and mesh of analyzed case"](/manual/images/mpm-model-particles-and-mesh.png) {width=600} In order to validate the implementation of the dynamic boundary condition the velocity calculated from the input function used to created the base acceleration, \f$ \dot{u} = A sin ( 2 \pi f t + \alpha ) \f$ is compared with the velocity of a particle located at the base of the MPM model. The next figure shows this comparison. The velocities obtained with MPM at the base of the models coincides with the velocities obtained from the input record. -!["Verification of velocities obtained with MPM simulation"](/manual/images/velocity-base-verification.png) +!["Verification of velocities obtained with MPM simulation"](/manual/images/velocity-base-verification.png) {width=600} diff --git a/tests/boussinesq problem/boussinesq-problem.json b/tests/boussinesq problem/boussinesq-problem.json index e8723f5..14e7915 100644 --- a/tests/boussinesq problem/boussinesq-problem.json +++ b/tests/boussinesq problem/boussinesq-problem.json @@ -16,15 +16,15 @@ { "type":"elastic", "id":1, - "young":100e6, + "young":200e6, "density":1500, "poisson":0.25 } }, "mesh": { - "cells_dimension":[0.05,0.05,0.05], - "cells_number":[20,20,20], + "cells_dimension":[0.1,0.1,0.1], + "cells_number":[10,10,10], "origin":[0.0,0.0,0.0], "boundary_conditions": { @@ -37,14 +37,14 @@ } }, "time":0.025, - "time_step":1e-4, + "time_step_multiplier":0.3, "results": { "print":50, "fields":["all"] }, "nodal_point_load": [ - [[0.5, 0.5, 1], [0.0, 0.0, -1.0]] + [[0.5, 0.5, 1.0], [0.0, 0.0, -1.0]] ], "damping": {