CELIA3D
1.0
Fluid-structure interaction using cut-cells
|
#include <solide.hpp>
Public Member Functions | |
Particule () | |
Default constructor. More... | |
Particule (const double x_min, const double y_min, const double z_min, const double x_max, const double y_max, const double z_max) | |
Constructor overload. More... | |
Particule (Point_3 c, const double x_min, const double y_min, const double z_min, const double x_max, const double y_max, const double z_max, std::vector< Face > &F) | |
Constructor overload. More... | |
~Particule () | |
Destructor. More... | |
Particule & | operator= (const Particule &P) |
Operator = overload. More... | |
void | Affiche () |
Test display function. More... | |
double | volume () |
Test function to check the conservation of the volume of the particle. More... | |
void | CompVolumeIntegrals (double &T1, double &Tx, double &Ty, double &Tz, double &Txx, double &Tyy, double &Tzz, double &Txy, double &Tyz, double &Tzx) |
Computation of volume integrals. More... | |
void | Inertie () |
Computation of the particle inertia matrix. More... | |
void | Volume_libre () |
Computation of the free volume. More... | |
void | solve_position (double dt) |
Time-integration of the particle position. More... | |
void | solve_vitesse (double dt) |
Time-integration of the particle velocity. More... | |
Vector_3 | vitesse_parois (const Point_3 &X_f) |
Velocity of the solid at the interface elements center at time t. . More... | |
Vector_3 | vitesse_parois_prev (const Point_3 &X_f) |
Velocity at the interface elements center at time t-dt. is the particle velocity (Particule.u_half), is the particle center (Particule.x0 + Particule.Dxprev), is the particle rotation (Particule.omega_half). More... | |
Data Fields | |
bool | cube |
= true if the particle is a cube, false otherwise More... | |
Bbox | bbox |
Bounding box of the particle. More... | |
std::vector< Face > | faces |
List of the particle's faces. More... | |
std::vector< Point_3 > | vertices |
List of the particle's vertices. More... | |
Triangles | triangles |
Triangulation of the particle faces at time t. More... | |
Triangles | triangles_prev |
Triangulation of the particle faces at time t-dt. More... | |
std::vector< Vector_3 > | normales |
Exterior normals to Particule.triangles. More... | |
std::vector< Vector_3 > | normales_prev |
Exterior normals to Particule.triangles_prev. More... | |
std::vector< bool > | vide |
=true if Particule.triangles is in contact with void More... | |
std::vector< bool > | fluide |
=true if Particule.triangles is in contact with fluid More... | |
std::vector< bool > | fluide_prev |
=true if Particule.triangles_prev is in contact with fluid More... | |
std::vector< std::vector< Point_3 > > | Points_interface |
Listof intersection points of Particule.triangles with the fluid grid at time t. More... | |
std::vector< std::vector< Point_3 > > | Points_interface_prev |
List of intersection points of Particule.triangles_prev with the fluid grid at time t-dt. More... | |
std::vector< std::vector< Triangle_3 > > | Triangles_interface |
Triangulation of Particule.triangles at time t. More... | |
std::vector< std::vector< std::vector< int > > > | Position_Triangles_interface |
Index of the cell where Triangles_interface is located at time t. More... | |
std::vector< std::vector< Triangle_3 > > | Triangles_interface_prev |
Triangulation of Particule.triangles_prev at time t-dt. More... | |
std::vector< std::vector< std::vector< int > > > | Position_Triangles_interface_prev |
Index of the cell where Triangles_interface is located at time t-dt. More... | |
int | fixe |
=1 if the particle is fixed, 0 otherwise More... | |
double | m |
Particle mass. More... | |
double | V |
Particle volume. More... | |
double | Vl |
Free Volume of the particle (for the computation of epsilon) More... | |
double | epsilon |
Volumetric deformation of the particle. More... | |
double | I [3] |
Inertia matrix of the particle. More... | |
double | rotref [3][3] |
Rotation matrix such that the inertia matrix in the reference frame can be written : , with . More... | |
Point_3 | x0 |
Position of the particle center at t=0. More... | |
Vector_3 | Dx |
Displacement of the particle center at time t. More... | |
Vector_3 | Dxprev |
Displacement of the particle center at time t-dt. More... | |
Vector_3 | Fi |
Solid internal forces. More... | |
Vector_3 | Ff |
Fluid forces applied on the solid between times t and t+dt/2. More... | |
Vector_3 | Ffprev |
Fluid forces applied on the solide between times t-dt/2 and t. More... | |
Vector_3 | Mi |
Interior torques of the solid. More... | |
Vector_3 | Mf |
Fluid torques applied on the solid between times t and t+dt/2. More... | |
Vector_3 | Mfprev |
FLuid torques applied on the solid between times t-dt/2 and t. More... | |
Vector_3 | u |
Particle velocity at time t. More... | |
Vector_3 | u_half |
Particle velocity at time t-dt/2. More... | |
Vector_3 | omega |
Angular velocity at time t. More... | |
Vector_3 | omega_half |
Angular velocity at time t-dt/2. More... | |
Vector_3 | e |
Rotation vector at time t. More... | |
Vector_3 | eprev |
Rotation vector at time t-dt. More... | |
Aff_transformation_3 | mvt_t |
Affine transformation associated with the rigid body movement of the particle at time t. More... | |
Aff_transformation_3 | mvt_tprev |
Affine transformation associated with the rigid body movement of the particle at time t-dt. More... | |
Particule class.
Particule::Particule | ( | ) |
Default constructor.
Particule::Particule | ( | const double | x_min, |
const double | y_min, | ||
const double | z_min, | ||
const double | x_max, | ||
const double | y_max, | ||
const double | z_max | ||
) |
Constructor overload.
(x_min,y_min,z_min),(x_max,y_max,z_max) | bounding box coordinates |
Particule::~Particule | ( | ) |
Destructor.
void Particule::Affiche | ( | ) |
Test display function.
void Particule::CompVolumeIntegrals | ( | double & | T1, |
double & | Tx, | ||
double & | Ty, | ||
double & | Tz, | ||
double & | Txx, | ||
double & | Tyy, | ||
double & | Tzz, | ||
double & | Txy, | ||
double & | Tyz, | ||
double & | Tzx | ||
) |
void Particule::Inertie | ( | ) |
Computation of the particle inertia matrix.
void Particule::solve_position | ( | double | dt | ) |
Time-integration of the particle position.
dt | Time-step |
void Particule::solve_vitesse | ( | double | dt | ) |
Time-integration of the particle velocity.
dt | Time-step |
Velocity of the solid at the interface elements center at time t.
.
is the particle velocity (Particule.u_half), is the particle center (Particule.x0 + Particule.Dx), is the particle rotation (Particule.omega_half).
X_f | interface element center |
Velocity at the interface elements center at time t-dt.
is the particle velocity (Particule.u_half), is the particle center (Particule.x0 + Particule.Dxprev), is the particle rotation (Particule.omega_half).
X_f | interface element center |
double Particule::volume | ( | ) |
Test function to check the conservation of the volume of the particle.
void Particule::Volume_libre | ( | ) |
Computation of the free volume.
Bbox Particule::bbox |
Bounding box of the particle.
bool Particule::cube |
= true if the particle is a cube, false otherwise
Vector_3 Particule::Dx |
Displacement of the particle center at time t.
Vector_3 Particule::Dxprev |
Displacement of the particle center at time t-dt.
Vector_3 Particule::e |
Rotation vector at time t.
Vector_3 Particule::eprev |
Rotation vector at time t-dt.
double Particule::epsilon |
Volumetric deformation of the particle.
std::vector<Face> Particule::faces |
List of the particle's faces.
Vector_3 Particule::Ff |
Fluid forces applied on the solid between times t and t+dt/2.
Vector_3 Particule::Ffprev |
Fluid forces applied on the solide between times t-dt/2 and t.
Vector_3 Particule::Fi |
Solid internal forces.
int Particule::fixe |
=1 if the particle is fixed, 0 otherwise
std::vector<bool> Particule::fluide |
=true if Particule.triangles is in contact with fluid
std::vector<bool> Particule::fluide_prev |
=true if Particule.triangles_prev is in contact with fluid
double Particule::I[3] |
Inertia matrix of the particle.
double Particule::m |
Particle mass.
Vector_3 Particule::Mf |
Fluid torques applied on the solid between times t and t+dt/2.
Vector_3 Particule::Mfprev |
FLuid torques applied on the solid between times t-dt/2 and t.
Vector_3 Particule::Mi |
Interior torques of the solid.
Aff_transformation_3 Particule::mvt_t |
Affine transformation associated with the rigid body movement of the particle at time t.
Aff_transformation_3 Particule::mvt_tprev |
Affine transformation associated with the rigid body movement of the particle at time t-dt.
std::vector<Vector_3> Particule::normales |
Exterior normals to Particule.triangles.
std::vector<Vector_3> Particule::normales_prev |
Exterior normals to Particule.triangles_prev.
Vector_3 Particule::omega |
Angular velocity at time t.
Vector_3 Particule::omega_half |
Angular velocity at time t-dt/2.
std::vector< std::vector<Point_3> > Particule::Points_interface |
Listof intersection points of Particule.triangles with the fluid grid at time t.
std::vector< std::vector<Point_3> > Particule::Points_interface_prev |
List of intersection points of Particule.triangles_prev with the fluid grid at time t-dt.
std::vector< std::vector< std::vector<int> > > Particule::Position_Triangles_interface |
Index of the cell where Triangles_interface is located at time t.
std::vector< std::vector<std::vector<int> > > Particule::Position_Triangles_interface_prev |
Index of the cell where Triangles_interface is located at time t-dt.
double Particule::rotref[3][3] |
Rotation matrix such that the inertia matrix in the reference frame can be written : , with .
Triangles Particule::triangles |
Triangulation of the particle faces at time t.
std::vector< std::vector<Triangle_3> > Particule::Triangles_interface |
Triangulation of Particule.triangles at time t.
std::vector< std::vector<Triangle_3> > Particule::Triangles_interface_prev |
Triangulation of Particule.triangles_prev at time t-dt.
Triangles Particule::triangles_prev |
Triangulation of the particle faces at time t-dt.
Vector_3 Particule::u |
Particle velocity at time t.
Vector_3 Particule::u_half |
Particle velocity at time t-dt/2.
double Particule::V |
Particle volume.
std::vector<Point_3> Particule::vertices |
List of the particle's vertices.
std::vector<bool> Particule::vide |
=true if Particule.triangles is in contact with void
double Particule::Vl |
Free Volume of the particle (for the computation of epsilon)
Point_3 Particule::x0 |
Position of the particle center at t=0.