Mka3D
1.0
Discrete Element method for solid mechanics
|
Définition de la classe Particule. More...
#include <solide.hpp>
Public Member Functions | |
Particule () | |
Constructeur par défaut. 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) | |
Particule (const 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, const std::vector< Face > &F) | |
~Particule () | |
Destructeur. More... | |
Particule & | operator= (const Particule &P) |
opérateur = More... | |
void | Affiche () |
Fonction auxiliaire utile pour les tests. More... | |
double | volume () |
Fonction auxilaire utile pour les tests. Calcul du volume de la particule. More... | |
void | CompVolumeIntegrals (double &T1, double &Tx, double &Ty, double &Tz, double &Txx, double &Tyy, double &Tzz, double &Txy, double &Tyz, double &Tzx) |
Calcul des intégrales de volume. More... | |
void | Inertie (const double &rho) |
Calcul d'inertie de la particule. More... | |
void | Volume_libre () |
Calcul du volume libre. More... | |
void | solve_position (const double &dt, const bool &flag_2d) |
Calcul de la position de la particule. More... | |
void | solve_vitesse (const double &dt, const bool &flag_2d) |
Calcul de la vitesse de la particule. More... | |
Vector_3 | vitesse_parois (const Point_3 &X_f) |
Vitesse au centre de la parois au temps t. -vitesse de la particule(Particule.u_half), -centre de la particule(Particule.x0 + Particule.Dx), -rotation de la particule(Particule.omega_half). More... | |
Vector_3 | vitesse_parois_prev (const Point_3 &X_f) |
Vitesse au centre de la parois au temps t-dt. -vitesse de la particule(Particule.u_half), -centre de la particule(Particule.x0 + Particule.Dxprev), -rotation de la particule(Particule.omega_half). More... | |
Data Fields | |
bool | cube |
= true si la particule est un cube, false sinon More... | |
Bbox | bbox |
std::vector< Face > | faces |
liste de faces de la particule More... | |
std::vector< Point_3 > | vertices |
liste des sommets de la particule More... | |
Triangles | triangles |
Triangulation des faces de la particule au temps t. More... | |
Triangles | triangles_prev |
Triangulation des faces de la particule au temps t-dt. More... | |
std::vector< Vector_3 > | normales |
normales extérieures aux Particule.triangles More... | |
std::vector< Vector_3 > | normales_prev |
normales extérieures aux Particule.triangles_prev More... | |
std::vector< bool > | vide |
=true si Particule.triangles en contact avec le fluide More... | |
std::vector< bool > | fluide |
=true si Particule.triangles en contact avec le fluide More... | |
std::vector< bool > | fluide_prev |
=true si Particule.triangles_prev en contact avec le fluide More... | |
std::vector< std::vector< Point_3 > > | Points_interface |
Liste de points d'intersections de Particule.triangles avec la grille fluide au temps t. More... | |
std::vector< std::vector< Point_3 > > | Points_interface_prev |
Liste de points d'intersections de Particule.triangles_prev avec la grille fluide au temps t-dt. More... | |
std::vector< std::vector< Triangle_3 > > | Triangles_interface |
Triangulation des Particule.triangles au temps t. More... | |
std::vector< std::vector< std::vector< int > > > | Position_Triangles_interface |
index de la cellule où se trouve Triangles_interface au temps t More... | |
std::vector< std::vector< Triangle_3 > > | Triangles_interface_prev |
Triangulation des Particule.triangles_prev au temps t. More... | |
std::vector< std::vector< std::vector< int > > > | Position_Triangles_interface_prev |
index de la cellule où se trouve Triangles_interface au temps t-dt More... | |
int | fixe |
=true si la particule est fixée, false sinon More... | |
double | m |
Masse de la particule. More... | |
double | V |
Volume de la particule. More... | |
double | Vl |
Volume libre de la particule (pour le calcul d'epsilon) More... | |
double | epsilon |
Déformation volumique globale de la particule. More... | |
double | I [3] |
Moments d'inertie de la particule. More... | |
double | rotref [3][3] |
Matrice de rotation telle que la matrice d'inertie s'écrit : , avec . More... | |
Point_3 | x0 |
Position du centre de la particule à t=0. More... | |
Vector_3 | Dx |
Déplacement du centre de la particule en t. More... | |
Vector_3 | Dxprev |
Déplacement du centre de la particule en t-dt. More... | |
Vector_3 | Fi |
Forces intérieures du solide. More... | |
Vector_3 | Ff |
Forces fluides exercées sur le solide entre t et t+dt/2. More... | |
Vector_3 | Ffprev |
Forces fluides exercées sur le solide entre t-dt/2 et t. More... | |
Vector_3 | Mi |
Moments intérieurs du solide. More... | |
Vector_3 | Mf |
Moments fluides exercés sur le solide entre t et t+dt/2. More... | |
Vector_3 | Mfprev |
Moments fluides exercés sur le solide entre t-dt/2 et t. More... | |
Vector_3 | u |
Vitesse de la particule au temps t. More... | |
Vector_3 | u_half |
Vitesse de la particule au temps t-dt/2. More... | |
Vector_3 | omega |
Vecteur rotation au temps t. More... | |
Vector_3 | omega_half |
Vecteur rotation au temps t-dt/2. More... | |
Vector_3 | e |
Vecteur de rotation de la particule au temps t. More... | |
Vector_3 | eref |
Vector_3 | eprev |
Vecteur de rotation de la particule au temps t-dt. More... | |
Aff_transformation_3 | mvt_t |
Transformation affine de la particule au temps t. More... | |
Aff_transformation_3 | mvt_tprev |
Transformation affine de la particule au temps t-dt. More... | |
Définition de la classe Particule.
Particule::Particule | ( | ) |
Constructeur par défaut.
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 | ||
) |
Particule::Particule | ( | const 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, | ||
const std::vector< Face > & | F | ||
) |
Particule::~Particule | ( | ) |
Destructeur.
void Particule::Affiche | ( | ) |
Fonction auxiliaire utile pour les tests.
void Particule::CompVolumeIntegrals | ( | double & | T1, |
double & | Tx, | ||
double & | Ty, | ||
double & | Tz, | ||
double & | Txx, | ||
double & | Tyy, | ||
double & | Tzz, | ||
double & | Txy, | ||
double & | Tyz, | ||
double & | Tzx | ||
) |
Calcul des intégrales de volume.
Utilisation de la fonction décrite par Brian Mirtich 1996(cf www.cs.berkeley.edu/~jfc/mirtich/code/volumeIntegration.tar).
void Particule::Inertie | ( | const double & | rho | ) |
Calcul d'inertie de la particule.
void Particule::solve_position | ( | const double & | dt, |
const bool & | flag_2d | ||
) |
Calcul de la position de la particule.
dt | pas de temps |
void Particule::solve_vitesse | ( | const double & | dt, |
const bool & | flag_2d | ||
) |
Calcul de la vitesse de la particule.
dt | pas de temps |
Vector_3 Particule::vitesse_parois | ( | const Point_3 & | X_f | ) |
Vitesse au centre de la parois au temps t.
-vitesse de la particule(Particule.u_half), -centre de la particule(Particule.x0 + Particule.Dx), -rotation de la particule(Particule.omega_half).
X_f | centre de la parois |
Vector_3 Particule::vitesse_parois_prev | ( | const Point_3 & | X_f | ) |
Vitesse au centre de la parois au temps t-dt.
-vitesse de la particule(Particule.u_half), -centre de la particule(Particule.x0 + Particule.Dxprev), -rotation de la particule(Particule.omega_half).
X_f | centre de la parois |
double Particule::volume | ( | ) |
Fonction auxilaire utile pour les tests. Calcul du volume de la particule.
void Particule::Volume_libre | ( | ) |
Calcul du volume libre.
Bbox Particule::bbox |
bool Particule::cube |
= true si la particule est un cube, false sinon
Vector_3 Particule::Dx |
Déplacement du centre de la particule en t.
Vector_3 Particule::Dxprev |
Déplacement du centre de la particule en t-dt.
Vector_3 Particule::e |
Vecteur de rotation de la particule au temps t.
Vector_3 Particule::eprev |
Vecteur de rotation de la particule au temps t-dt.
double Particule::epsilon |
Déformation volumique globale de la particule.
Vector_3 Particule::eref |
std::vector<Face> Particule::faces |
liste de faces de la particule
Vector_3 Particule::Ff |
Forces fluides exercées sur le solide entre t et t+dt/2.
Vector_3 Particule::Ffprev |
Forces fluides exercées sur le solide entre t-dt/2 et t.
Vector_3 Particule::Fi |
Forces intérieures du solide.
int Particule::fixe |
=true si la particule est fixée, false sinon
std::vector<bool> Particule::fluide |
=true si Particule.triangles en contact avec le fluide
std::vector<bool> Particule::fluide_prev |
=true si Particule.triangles_prev en contact avec le fluide
double Particule::I[3] |
Moments d'inertie de la particule.
double Particule::m |
Masse de la particule.
Vector_3 Particule::Mf |
Moments fluides exercés sur le solide entre t et t+dt/2.
Vector_3 Particule::Mfprev |
Moments fluides exercés sur le solide entre t-dt/2 et t.
Vector_3 Particule::Mi |
Moments intérieurs du solide.
Aff_transformation_3 Particule::mvt_t |
Transformation affine de la particule au temps t.
Aff_transformation_3 Particule::mvt_tprev |
Transformation affine de la particule au temps t-dt.
std::vector<Vector_3> Particule::normales |
normales extérieures aux Particule.triangles
std::vector<Vector_3> Particule::normales_prev |
normales extérieures aux Particule.triangles_prev
Vector_3 Particule::omega |
Vecteur rotation au temps t.
Vector_3 Particule::omega_half |
Vecteur rotation au temps t-dt/2.
std::vector< std::vector<Point_3> > Particule::Points_interface |
Liste de points d'intersections de Particule.triangles avec la grille fluide au temps t.
std::vector< std::vector<Point_3> > Particule::Points_interface_prev |
Liste de points d'intersections de Particule.triangles_prev avec la grille fluide au temps t-dt.
std::vector< std::vector< std::vector<int> > > Particule::Position_Triangles_interface |
index de la cellule où se trouve Triangles_interface au temps t
std::vector< std::vector<std::vector<int> > > Particule::Position_Triangles_interface_prev |
index de la cellule où se trouve Triangles_interface au temps t-dt
double Particule::rotref[3][3] |
Matrice de rotation telle que la matrice d'inertie s'écrit : , avec .
Triangles Particule::triangles |
Triangulation des faces de la particule au temps t.
std::vector< std::vector<Triangle_3> > Particule::Triangles_interface |
Triangulation des Particule.triangles au temps t.
std::vector< std::vector<Triangle_3> > Particule::Triangles_interface_prev |
Triangulation des Particule.triangles_prev au temps t.
Triangles Particule::triangles_prev |
Triangulation des faces de la particule au temps t-dt.
Vector_3 Particule::u |
Vitesse de la particule au temps t.
Vector_3 Particule::u_half |
Vitesse de la particule au temps t-dt/2.
double Particule::V |
Volume de la particule.
std::vector<Point_3> Particule::vertices |
liste des sommets de la particule
std::vector<bool> Particule::vide |
=true si Particule.triangles en contact avec le fluide
double Particule::Vl |
Volume libre de la particule (pour le calcul d'epsilon)
Point_3 Particule::x0 |
Position du centre de la particule à t=0.