Mka3D  1.0
Discrete Element method for solid mechanics
Public Member Functions | Data Fields
Particule Class Reference

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...
 
Particuleoperator= (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.
$ V_f = V_I + \Omega_{rot} \wedge \left( X_f - X_I \right). $ $ V_I $ -vitesse de la particule(Particule.u_half), $ X_I $ -centre de la particule(Particule.x0 + Particule.Dx), $ \Omega_{rot} $ -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. $ V_f = V_I + \Omega_{rot} \wedge \left( X_f - X_I \right). $
$ V_I $ -vitesse de la particule(Particule.u_half), $ X_I $ -centre de la particule(Particule.x0 + Particule.Dxprev), $ \Omega_{rot} $ -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< Facefaces
 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 $ Q_0 $ telle que la matrice d'inertie $ R $ s'écrit : $ R = Q_0 R_0 Q_0^{-1}$, avec $R_0=diag(I_1,I_2,I_3)$. 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...
 

Detailed Description

Définition de la classe Particule.

Constructor & Destructor Documentation

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.

Member Function Documentation

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).

Warning
Procédure spécifique au solide!
Returns
void
void Particule::Inertie ( const double &  rho)

Calcul d'inertie de la particule.

Warning
Procédure spécifique au solide!
Returns
void
Particule & Particule::operator= ( const Particule P)

opérateur =

Parameters
PParticule
Returns
Particule
void Particule::solve_position ( const double &  dt,
const bool &  flag_2d 
)

Calcul de la position de la particule.

Parameters
dtpas de temps
Warning
Utilisation de Particule.Ff et Particule.Mf (forces et moments fluides exercés sur le solide entre t et t+dt/2)
Particule.Ff et Particule.Mf paramètres spécifiques au couplage!
Returns
void
void Particule::solve_vitesse ( const double &  dt,
const bool &  flag_2d 
)

Calcul de la vitesse de la particule.

Parameters
dtpas de temps
Warning
Utilisation de Particule.Ff et Particule.Mf (forces et moments fluides exercés sur le solide entre t et t+dt/2)
Particule.Ff et Particule.Mf paramètres spécifiques au couplage!
Returns
void
Vector_3 Particule::vitesse_parois ( const Point_3 &  X_f)

Vitesse au centre de la parois au temps t.
$ V_f = V_I + \Omega_{rot} \wedge \left( X_f - X_I \right). $ $ V_I $ -vitesse de la particule(Particule.u_half), $ X_I $ -centre de la particule(Particule.x0 + Particule.Dx), $ \Omega_{rot} $ -rotation de la particule(Particule.omega_half).

Parameters
X_fcentre de la parois
Warning
Procédure spécifique au couplage!
Returns
Vector_3
Vector_3 Particule::vitesse_parois_prev ( const Point_3 &  X_f)

Vitesse au centre de la parois au temps t-dt. $ V_f = V_I + \Omega_{rot} \wedge \left( X_f - X_I \right). $
$ V_I $ -vitesse de la particule(Particule.u_half), $ X_I $ -centre de la particule(Particule.x0 + Particule.Dxprev), $ \Omega_{rot} $ -rotation de la particule(Particule.omega_half).

Parameters
X_fcentre de la parois
Warning
Procédure spécifique au couplage!
Returns
Vector_3
double Particule::volume ( )

Fonction auxilaire utile pour les tests. Calcul du volume de la particule.

Returns
double
void Particule::Volume_libre ( )

Calcul du volume libre.

Warning
Procédure spécifique au solide!
Returns
void

Field Documentation

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.

Warning
Paramètre spécifique au couplage!
Vector_3 Particule::Ffprev

Forces fluides exercées sur le solide entre t-dt/2 et t.

Warning
Paramètre spécifique au couplage!
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

Warning
Paramètre spécifique au couplage!
std::vector<bool> Particule::fluide_prev

=true si Particule.triangles_prev en contact avec le fluide

Warning
Paramètre spécifique au couplage!
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.

Warning
Paramètre spécifique au couplage!
Vector_3 Particule::Mfprev

Moments fluides exercés sur le solide entre t-dt/2 et t.

Warning
Paramètre spécifique au couplage!
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

Warning
Paramètre spécifique au couplage!
std::vector<Vector_3> Particule::normales_prev

normales extérieures aux Particule.triangles_prev

Warning
Paramètre spécifique au couplage!
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.

Warning
Paramètre spécifique au couplage!
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.

Warning
Paramètre spécifique au couplage!
std::vector< std::vector< std::vector<int> > > Particule::Position_Triangles_interface

index de la cellule où se trouve Triangles_interface au temps t

Warning
Paramètre spécifique au couplage!
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

Warning
Paramètre spécifique au couplage!
double Particule::rotref[3][3]

Matrice de rotation $ Q_0 $ telle que la matrice d'inertie $ R $ s'écrit : $ R = Q_0 R_0 Q_0^{-1}$, avec $R_0=diag(I_1,I_2,I_3)$.

Triangles Particule::triangles

Triangulation des faces de la particule au temps t.

Warning
Paramètre spécifique au couplage!
std::vector< std::vector<Triangle_3> > Particule::Triangles_interface

Triangulation des Particule.triangles au temps t.

Warning
Paramètre spécifique au couplage!
std::vector< std::vector<Triangle_3> > Particule::Triangles_interface_prev

Triangulation des Particule.triangles_prev au temps t.

Warning
Paramètre spécifique au couplage!
Triangles Particule::triangles_prev

Triangulation des faces de la particule au temps t-dt.

Warning
Paramètre spécifique au couplage!
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

Warning
Paramètre spécifique au couplage!
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.


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