- Modification relatives à LoadingInteraction (voir modifs
Metafor)
- Suppression de la définition du Set
"températures initiales": Set Tini(TO|AB); domain.dom_add(Tini);
(voir modifs Metafor)

Nettoyage des Interactions
: suppression de TmConvectionInteraction, TmFluxInteraction
et TractionInteraction pour remplacer toutes ces classes par une
seule: LoadingInteraction. La syntaxe est la même et tout
est unifié. Jetez un oeil à
la doc que j'ai mis à jour.
Suppression
de la définition du Set "températures
initiales" dans les cas tests .e.
- Remplacement des 3.141592 qui trainaient par M_PI (cette
variable nous embête à la compilation, autant l'utiliser). Certains
tests de la batterie (aube, etc) sont légèrement modifiés
suite à ce changement vu l'augmentation de précision.
- Refactoring des mailleurs transfinis 2D, 3D (à poursuivre...).
- ALE: ajout d'une méthode de sub stepping pour la
convection qui évite les instabilités dues à de trop
grands pas Lagrangiens. La méthode est accessible via metafor.get_alemethod().setSubStepping(1);
ou le parametre est le CFL max autorisé. Le cas test ale_extru.e
a été modifié pour tester cette nouvelle méthode
(et passe maintenant en 53 pas de temps au lieu de plus de 2400).
- Suppression de Metafor::setDomain() et ajout
d'un paramètre Domain dans le constructeur. L'analyse n'est
donc plus jamais dans un état "instable" où le pointeur
vers le Domain n'est pas défini. A ce propos, je pense qu'il
faudrait généraliser dans tout le code cette manière
de faire: lorsqu'une classe définit un pointeur vers un objet qui est
NULL au départ, il faut définir également
une fonction membre de type "get" pour accéder à ce
pointeur. Cette fonctions "get" teste si le pointeur est NULL,
l'assigne si nécessaire et renvoie une référence vers
l'objet. Ainsi, en utilisant toujours cette methode pour accéder à
l'objet pointé (même à l'intérieur de la classe),
il n'est plus jamais nécessaire d'initialiser ce pointeur et on travaille
toujours avec une référence (qui ne sera donc jamais nulle!).
Bref, que des avantages. Je conseille de faire ça aussi pour tous les
get_properties en définissant des petites fonctions membres
du type getPositionSet(), getElementSet(), etc
- ALE: nettoyage en profondeur des classes. Le but ici est
de séparer totalement les concepts de convection (classes Convection
et dérivées), de création de maillage (classes MeshBuilder
et dérivées), de rezoning (classes ReZoner et dérivées).
- Correction d'un bug dans la gestion des Arcs
de cercle "inversés" en 2D: la routine de projection merde
lorsque le point est proche de l'abscisse reduite s=0. Une tolérence
a été introduite.
- ALE: ajout d'une méthode RT_SPLINE pour
les Wires.
- Correction de Wire::idvertex() pour le cas des
contours ouverts à 2 côtés
- Loading, LoadingSet, LoadingDriver, etc : refactoring complet
(passage de Vararray à std::vector, suppression
du code coupé/collé)
- Ajout de la classe Solid et du set associé SolidSet:
le Solid est un ensemble de Volumes. j'en ai besoin
pour pouvoir gérer mes volumes finis en ALE qui sont des ensembles
d'autres volumes. C'est par exemple cette classe qui permettra de boucler
sur les faces externes du Solid en négligeant les faces
internes.
- Ajout des classes PolyCurve, PolySide, PolyVolume: Ces
classes vont permettre de créer par exemple une Curve à
partir d'un Wire et permettre d'avoir accès à toutes
les fonctions topologiques Curve::vertex1(), Curve::vertex2()
ainsi qu'à l'interface ElementContainer de Curve. Même
raisonnement pour PolySide qui sera une Skin (on pourra
par exemple extraire le contour d'une Skin définie par des
faces adjacentes. Et, en 3D, même chose pour PolyVolume qui
sera un Solid particulier (Solid dont tous les volumes
sont adjacents et pour lesquels on pourra par exemple extraire une Skin
externe). L'interface est créée et commitée, reste à
la remplir.
- Ajout de CurveAuxMeshBuilder, CurveVelMeshBuilder: création
automatique des volumes finis nécessaires à une convection 1D
(à programmer). Ceci sera utile à la convection du frottement,
de la densité de maillage et au transport géométrique
au second ordre de rugosités par ALE.
- Ajout des cas tests
- qs_e.d/ale_uzi.e : cas test d'usinage ALE à la O.Pantale
(teste RT_SPLINE, le sub stepping et les cercles 2D "inversés")
- qs_e.d/ale_planage.e : planage ALE (teste la même chose)
- Nettoyages divers...
Fichiers ajoutés:
A apps.d/qs_e.d/ale_planage.e
A apps.d/qs_e.d/ale_uzi.e
A oo_ale/AuxiliaryMeshBuilder2.cpp
A oo_ale/AuxiliaryMeshBuilder2.h
A oo_ale/CurveAuxMeshBuilder.cpp
A oo_ale/CurveAuxMeshBuilder.h
A oo_ale/CurveVelMeshBuilder.cpp
A oo_ale/CurveVelMeshBuilder.h
A oo_ale/NullMeshBuilder.cpp
A oo_ale/NullMeshBuilder.h
A oo_elements/LoadingInteraction.cpp
A oo_elements/LoadingInteraction.h
A oo_elements/i_/I_LoadingInteraction.cpp
A oo_elements/i_/I_LoadingInteraction.h
A oo_geo/mtGeoPolyCurve.cpp
A oo_geo/mtGeoPolyCurve.h
A oo_geo/mtGeoPolySide.cpp
A oo_geo/mtGeoPolySide.h
A oo_geo/mtGeoPolyVolume.cpp
A oo_geo/mtGeoPolyVolume.h
A oo_geo/mtGeoSolid.cpp
A oo_geo/mtGeoSolid.h
A oo_geo/mtGeoSolidSet.cpp
A oo_geo/mtGeoSolidSet.h
A toolbox.d/shortcuts.d/metat_iso2.e
Fichiers retirés:
R oo_elements/TmConvectionInteraction.cpp
R oo_elements/TmConvectionInteraction.h
R oo_elements/TmFluxInteraction.cpp
R oo_elements/TmFluxInteraction.h
R oo_elements/TractionInteraction.cpp
R oo_elements/TractionInteraction.h
R oo_elements/i_/I_TmConvectionInteraction.cpp
R oo_elements/i_/I_TmConvectionInteraction.h
R oo_elements/i_/I_TmFluxInteraction.cpp
R oo_elements/i_/I_TmFluxInteraction.h
R oo_elements/i_/I_TractionInteraction.cpp
R oo_elements/i_/I_TractionInteraction.h