|
| Membrane (double radius, double height) |
| Constructs a new Membrane object with the given radius and height.
|
|
| Membrane (double radius, double height, double mesh_size) |
| Constructs a new Membrane object with the given radius, height, and element size.
|
|
| Membrane (double radius, double height, double mesh_size, double center_x, double center_y, double center_z) |
| Constructs a new Membrane object with the given radius, height, element size, and center.
|
|
void | Remesh (double ele_size) |
| Remeshes the membrane.
|
|
void | Init () |
| Initializes the membrane.
|
|
void | SetBCNodalVelocity (int nid, double vx, double vy, double vz, bool use_prescribed_vx, bool use_prescribed_vy, bool use_prescribed_vz) |
| Sets the nodal velocity and boundary condition for a given node.
|
|
void | Solve (double dt) |
| Solves the membrane motion for a given timestep.
|
|
void | SaveAsVTK (std::string const &file_name) |
| Saves the current state of the membrane as a VTK file.
|
|
| ~Membrane () |
| Destroys the Membrane object.
|
|
|
double | radius {0.25} |
| The radius of the membrane.
|
|
double | height {1.0} |
| The height of the membrane.
|
|
double | mesh_size {0.1} |
| The size of the elements in the mesh used to represent the membrane.
|
|
Vec3d | center {0, 0, 0} |
| The center of the membrane.
|
|
double | neo_k {6.94e5} |
| Material properties of the membrane (neo-Hookean material model).
|
|
double | neo_mu {5.21e5} |
| Material properties of the membrane (neo-Hookean material model).
|
|
double | density {500.0} |
| Material properties of the membrane.
|
|
double | thickness {0.3e-3} |
| Material properties of the membrane.
|
|
double | damp_coef {0.7} |
| Damping coefficient for the membrane motion.
|
|
double | timestep {1.0e-4} |
| Timestep for the simulation.
|
|
VecXT< Vec3d > | nodes |
| Triangle mesh representing the membrane: nodes.
|
|
VecXT< Vec3i > | elements |
| Triangle mesh representing the membrane: elements.
|
|
VecXT< Vec3d > | elemental_stress |
| Elemental stress tensor for each element in the mesh.
|
|
VecXT< double > | nodal_vols |
| Nodal volumes for each node in the mesh (used for updating motion using a lumped mass approach).
|
|
VecXT< Vec3d > | nodal_vels |
| Nodal velocities for each node in the mesh (used for updating motion using a lumped mass approach).
|
|
VecXT< double > | bc_facet_pressure |
| Facet pressures for the boundary conditions.
|
|
VecXT< Vec3d > | bc_facet_forces |
| Facet forces for the boundary conditions.
|
|
VecXT< VecNT< double, 6 > > | bc_nodal_vels |
| Nodal velocities for the boundary conditions. The last three elements indicate if prescribed velocities are used.
|
|
A class that simulates a membrane.
The Membrane
class is responsible for simulating a membrane. It provides functionality to initialize the membrane, set up boundary conditions, remesh the membrane, and solve the simulation using a lumped mass approach.
Membrane::Membrane |
( |
double | radius, |
|
|
double | height, |
|
|
double | mesh_size ) |
Constructs a new Membrane
object with the given radius, height, and element size.
This constructor creates a new Membrane
object with the given radius, height, and element size, and initializes the center to the origin.
- Parameters
-
radius | The radius of the membrane. |
height | The height of the membrane. |
mesh_size | The size of the elements in the mesh used to represent the membrane. |
Membrane::Membrane |
( |
double | radius, |
|
|
double | height, |
|
|
double | mesh_size, |
|
|
double | center_x, |
|
|
double | center_y, |
|
|
double | center_z ) |
Constructs a new Membrane
object with the given radius, height, element size, and center.
This constructor creates a new Membrane
object with the given radius, height, element size, and center.
- Parameters
-
radius | The radius of the membrane. |
height | The height of the membrane. |
mesh_size | The size of the elements in the mesh used to represent the membrane. |
center_x | The x-coordinate of the center of the membrane. |
center_y | The y-coordinate of the center of the membrane. |
center_z | The z-coordinate of the center of the membrane. |
void Membrane::SetBCNodalVelocity |
( |
int | nid, |
|
|
double | vx, |
|
|
double | vy, |
|
|
double | vz, |
|
|
bool | use_prescribed_vx, |
|
|
bool | use_prescribed_vy, |
|
|
bool | use_prescribed_vz ) |
Sets the nodal velocity and boundary condition for a given node.
This function sets the nodal velocity and boundary condition for the given node. The nodal velocity is specified using vx
, vy
, and vz
. The last three arguments (use_prescribed_vx
, use_prescribed_vy
, and use_prescribed_vz
) indicate whether prescribed velocities are used in each respective dimension.
- Parameters
-
nid | The index of the node to set the boundary condition for. |
vx | The x-component of the nodal velocity. |
vy | The y-component of the nodal velocity. |
vz | The z-component of the nodal velocity. |
use_prescribed_vx | Whether prescribed velocities are used in the x-dimension. |
use_prescribed_vy | Whether prescribed velocities are used in the y-dimension. |
use_prescribed_vz | Whether prescribed velocities are used in the z-dimension. |
double netdem::Membrane::neo_k {6.94e5} |
Material properties of the membrane (neo-Hookean material model).
The material properties are based on Qu et al., "A continuum model for
simulation of 3D cell migration with realistic biophysical constraints", Computer Graphics Forum, vol. 38, no. 6, pp. 283-294, 2019.