Lecteur des fichiers de maillage au format Vtk historique (legacy). Plus de détails...
Classes | |
class | VtkMesh |
class | VtkStructuredGrid |
Types publics | |
enum | eMeshType { VTK_MT_Unknown , VTK_MT_StructuredGrid , VTK_MT_UnstructuredGrid } |
Fonctions membres publiques | |
VtkMeshIOService (ITraceMng *tm) | |
void | build () |
bool | readMesh (IPrimaryMesh *mesh, const String &file_name, const String &dir_name, bool use_internal_partition) |
Permet de débuter la lecture d'un fichier vtk. | |
Fonctions membres publiques hérités de Arccore::TraceAccessor | |
TraceAccessor (ITraceMng *m) | |
Construit un accesseur via le gestionnaire de trace m. | |
TraceAccessor (const TraceAccessor &rhs) | |
Constructeur par recopie. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () const |
Gestionnaire de trace. | |
TraceMessage | info () const |
Flot pour un message d'information. | |
TraceMessage | pinfo () const |
Flot pour un message d'information en parallèle. | |
TraceMessage | info (char category) const |
Flot pour un message d'information d'une catégorie donnée. | |
TraceMessage | pinfo (char category) const |
Flot pour un message d'information parallèle d'une catégorie donnée. | |
TraceMessage | info (bool v) const |
Flot pour un message d'information. | |
TraceMessage | warning () const |
Flot pour un message d'avertissement. | |
TraceMessage | pwarning () const |
TraceMessage | error () const |
Flot pour un message d'erreur. | |
TraceMessage | perror () const |
TraceMessage | log () const |
Flot pour un message de log. | |
TraceMessage | plog () const |
Flot pour un message de log. | |
TraceMessage | logdate () const |
Flot pour un message de log précédé de la date. | |
TraceMessage | fatal () const |
Flot pour un message d'erreur fatale. | |
TraceMessage | pfatal () const |
Flot pour un message d'erreur fatale en parallèle. | |
TraceMessageDbg | debug (Trace::eDebugLevel=Trace::Medium) const |
Flot pour un message de debug. | |
Trace::eDebugLevel | configDbgLevel () const |
Niveau debug du fichier de configuration. | |
TraceMessage | info (Int32 verbose_level) const |
Flot pour un message d'information d'un niveau donné | |
TraceMessage | linfo () const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
TraceMessage | linfo (Int32 relative_level) const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
void | fatalMessage (const StandaloneTraceMessage &o) const |
Fonctions membres privées | |
bool | _readStructuredGrid (IPrimaryMesh *mesh, VtkFile &, bool use_internal_partition) |
Permet de lire un fichier vtk contenant une STRUCTURED_GRID. | |
bool | _readUnstructuredGrid (IPrimaryMesh *mesh, VtkFile &vtk_file, bool use_internal_partition) |
Permet de lire un fichier vtk contenant une UNSTRUCTURED_GRID. | |
void | _readCellVariable (IMesh *mesh, VtkFile &vtk_file, const String &name_str, Integer nb_cell) |
Permet de créer une variable aux mailles à partir des infos du fichier vtk. | |
void | _readItemGroup (IMesh *mesh, VtkFile &vtk_file, const String &name_str, Integer nb_item, eItemKind ik, ConstArrayView< Int32 > local_id) |
Permet de créer un groupe d'item. | |
void | _readNodeGroup (IMesh *mesh, VtkFile &vtk_file, const String &name, Integer nb_item) |
Permet de créer un groupe de node. | |
void | _createFaceGroup (IMesh *mesh, const String &name, Int32ConstArrayView faces_lid) |
Permet de créer un groupe de face de nom "name" et composé des faces ayant les ids inclus dans "faces_lid". | |
bool | _readData (IMesh *mesh, VtkFile &vtk_file, bool use_internal_partition, eItemKind cell_kind, Int32ConstArrayView local_id, Integer nb_node) |
Permet de lire les données complémentaires (POINT_DATA / CELL_DATA). | |
void | _readNodesUnstructuredGrid (IMesh *mesh, VtkFile &vtk_file, Array< Real3 > &node_coords) |
Lecture des noeuds et de leur coordonnées. | |
void | _readCellsUnstructuredGrid (IMesh *mesh, VtkFile &vtk_file, Array< Integer > &cells_nb_node, Array< ItemTypeId > &cells_type, Array< Int64 > &cells_connectivity) |
Lecture des mailles et de leur connectivité. | |
void | _readFacesMesh (IMesh *mesh, const String &file_name, const String &dir_name, bool use_internal_partition) |
Permet de lire le fichier truc.vtkfaces.vtk (s'il existe). | |
bool | _readMetadata (IMesh *mesh, VtkFile &vtk_file) |
Lecture des metadata. | |
Membres hérités additionnels | |
Fonctions membres protégées hérités de Arccore::TraceAccessor | |
void | _setLocalVerboseLevel (Int32 v) |
Int32 | _localVerboseLevel () const |
Lecteur des fichiers de maillage au format Vtk historique (legacy).
Il s'agit d'une version préliminaire qui ne supporte que les DATASET de type STRUCTURED_GRID ou UNSTRUCTURED_GRID. De plus, le lecteur et l'écrivain n'ont été que partiellement testés.
L'en-tête du fichier vtk doit être:
Où X.X est la version du fichier VTK (support des fichiers VTK <= 4.2).
Il est possible de spécifier un ensemble de variables dans le fichier. Dans ce cas, leurs valeurs sont lues en même temps que le maillage et servent à initialiser les variables. Actuellement, seules les valeurs aux mailles sont supportées.
Comme Vtk ne supporte pas la notion de groupe, il est possible de spécifier un groupe comme étant une variable (CELL_DATA). Par convention, si la variable commence par la chaine 'GROUP_', alors il s'agit d'un groupe. La variable doit être déclarée comme suit: \begincode CELL_DATA n SCALARS GROUP_m int 1 LOOKUP_TABLE default avec n le nombre de mailles, et m le nom du groupe. Une maille appartient au groupe si la valeur de la donnée est différente de 0.
Actuellement, on NE peut PAS spécifier de groupes de points.
Pour spécifier des groupes de faces, il faut un fichier vtk additionnel, identique au fichier d'origine mais contenant la description des faces au lieu des mailles. Par convention, si le fichier courant lu s'appelle 'toto.vtk', le fichier décrivant les faces sera 'toto.vtkfaces.vtk'. Ce fichier est optionnel.
Définition à la ligne 102 du fichier VtkMeshIOService.cc.
enum Arcane::VtkMeshIOService::eMeshType |
Définition à la ligne 117 du fichier VtkMeshIOService.cc.
|
inlineexplicit |
Définition à la ligne 107 du fichier VtkMeshIOService.cc.
|
private |
Permet de créer un groupe de face de nom "name" et composé des faces ayant les ids inclus dans "faces_lid".
mesh | Le maillage à remplir |
name | Le nom du groupe à créer |
faces_lid | Les ids des faces à inclure dans le groupe |
Définition à la ligne 1724 du fichier VtkMeshIOService.cc.
Références Arcane::IMeshBase::faceFamily(), et Arccore::TraceAccessor::info().
Référencé par _readStructuredGrid().
|
private |
Lecture des mailles et de leur connectivité.
En retour, remplit cells_nb_node, cells_type et cells_connectivity.
mesh | Le maillage à remplir |
vtk_file | Référence vers un objet VtkFile |
cells_nb_node | Nombre de nodes de chaque cell |
cells_type | Type de chaque cell |
cells_connectivity | Connectivités entre les cells |
Définition à la ligne 1041 du fichier VtkMeshIOService.cc.
Références _readMetadata(), et ARCANE_THROW.
Référencé par _readFacesMesh(), et _readUnstructuredGrid().
|
private |
Permet de créer une variable aux mailles à partir des infos du fichier vtk.
mesh | Le maillage à remplir |
vtk_file | Référence vers un objet VtkFile |
var_name | Le nom de la variable à créer |
nb_cell | Le nombre de cells |
Définition à la ligne 1744 du fichier VtkMeshIOService.cc.
Références _readMetadata(), Arccore::TraceAccessor::info(), et Arcane::IMesh::variableMng().
Référencé par _readData().
|
private |
Permet de lire les données complémentaires (POINT_DATA / CELL_DATA).
mesh | Le maillage à remplir |
file_name | Le nom du fichier vtk (avec l'extension) |
use_internal_partition | Doit-on utiliser le partitionneur interne ou non |
cell_kind | Type des cells du maillage |
local_id | Tableau contenant les local_id des cells |
nb_node | Nombre de nodes |
Définition à la ligne 1448 du fichier VtkMeshIOService.cc.
Références _readCellVariable(), _readItemGroup(), _readNodeGroup(), Arcane::IParallelMng::broadcastMemoryBuffer(), Arcane::IParallelMng::commRank(), Arccore::Array< T >::copy(), Arccore::TraceAccessor::debug(), Arccore::TraceAccessor::error(), Arccore::TraceAccessor::fatal(), Arcane::IK_Cell, Arccore::TraceAccessor::info(), Arcane::VtkFile::isEqualString(), Arcane::IMeshBase::itemFamily(), Arcane::IXmlDocumentHolder::loadFromBuffer(), Arcane::IMeshBase::nbItem(), Arcane::IMeshBase::nodeFamily(), Arcane::IMesh::parallelMng(), Arccore::Array< T >::resize(), Arccore::AbstractArray< T >::size(), Arccore::TraceAccessor::traceMng(), Arccore::String::utf8(), et Arcane::IMesh::variableMng().
Référencé par _readFacesMesh(), _readStructuredGrid(), et _readUnstructuredGrid().
|
private |
Permet de lire le fichier truc.vtkfaces.vtk (s'il existe).
mesh | Le maillage à remplir |
file_name | Le nom du fichier vtk (avec l'extension) |
dir_name | Le chemin du fichier |
use_internal_partition | Doit-on utiliser le partitionneur interne ou non |
Définition à la ligne 1345 du fichier VtkMeshIOService.cc.
Références _readCellsUnstructuredGrid(), _readData(), _readNodesUnstructuredGrid(), Arcane::IParallelMng::commRank(), Arccore::TraceAccessor::error(), Arcane::IK_Face, Arccore::TraceAccessor::info(), Arcane::VtkFile::isEqualString(), Arcane::IMesh::parallelMng(), et Arcane::IMesh::utilities().
Référencé par readMesh().
|
private |
Permet de créer un groupe d'item.
mesh | Le maillage à remplir |
vtk_file | Référence vers un objet VtkFile |
name | Le nom du groupe à créer |
nb_item | Nombre d'items à lire et à inclure dans le groupe |
ik | Type des items lus |
local_id | Tableau contenant les local_id des cells |
Définition à la ligne 1773 du fichier VtkMeshIOService.cc.
Références _readMetadata(), Arccore::TraceAccessor::info(), et Arcane::IMeshBase::itemFamily().
Référencé par _readData().
Lecture des metadata.
mesh | Le maillage à remplir |
vtk_file | Référence vers un objet VtkFile |
Définition à la ligne 1129 du fichier VtkMeshIOService.cc.
Référencé par _readCellsUnstructuredGrid(), _readCellVariable(), _readItemGroup(), _readNodeGroup(), _readNodesUnstructuredGrid(), et _readStructuredGrid().
|
private |
Permet de créer un groupe de node.
mesh | Le maillage à remplir |
vtk_file | Référence vers un objet VtkFile |
name | Le nom du groupe à créer |
nb_item | Nombre d'items à lire et à inclure dans le groupe |
Définition à la ligne 1804 du fichier VtkMeshIOService.cc.
Références _readMetadata(), Arcane::IK_Node, Arccore::TraceAccessor::info(), et Arcane::IMeshBase::itemFamily().
Référencé par _readData().
|
private |
Lecture des noeuds et de leur coordonnées.
mesh | Le maillage à remplir |
vtk_file | Référence vers un objet VtkFile |
node_coords | L'array à remplir de coordonnées de nodes |
Définition à la ligne 969 du fichier VtkMeshIOService.cc.
Références _readMetadata(), et Arccore::TraceAccessor::info().
Référencé par _readFacesMesh(), et _readUnstructuredGrid().
|
private |
Permet de lire un fichier vtk contenant une STRUCTURED_GRID.
mesh | Le maillage à remplir |
vtk_file | Référence vers un objet VtkFile |
use_internal_partition | Doit-on utiliser le partitionneur interne ou non |
Définition à la ligne 690 du fichier VtkMeshIOService.cc.
Références _createFaceGroup(), _readData(), _readMetadata(), Arcane::IMeshBase::allFaces(), Arcane::IMeshBase::allNodes(), Arcane::IPrimaryMesh::allocateCells(), ARCANE_FATAL, Arcane::IPrimaryMesh::endAllocate(), ENUMERATE_FACE, ENUMERATE_NODE, Arccore::TraceAccessor::error(), Arcane::IK_Cell, Arccore::TraceAccessor::info(), Arcane::Item::localId(), Arcane::ItemWithNodes::nodes(), Arcane::IPrimaryMesh::nodesCoordinates(), Arcane::IMesh::parallelMng(), Arcane::IPrimaryMesh::setDimension(), et Arcane::Item::uniqueId().
Référencé par readMesh().
|
private |
Permet de lire un fichier vtk contenant une UNSTRUCTURED_GRID.
mesh | Le maillage à remplir |
vtk_file | Référence vers un objet VtkFile |
use_internal_partition | Doit-on utiliser le partitionneur interne ou non |
Définition à la ligne 1237 du fichier VtkMeshIOService.cc.
Références _readCellsUnstructuredGrid(), _readData(), _readNodesUnstructuredGrid(), Arcane::IMeshBase::allNodes(), ARCANE_FATAL, Arccore::TraceAccessor::debug(), ENUMERATE_NODE, Arcane::IK_Cell, Arcane::IMesh::itemTypeMng(), Arcane::IPrimaryMesh::nodesCoordinates(), Arcane::IMesh::parallelMng(), Arcane::IPrimaryMesh::setDimension(), et Arcane::Item::uniqueId().
Référencé par readMesh().
|
inline |
Définition à la ligne 113 du fichier VtkMeshIOService.cc.
bool Arcane::VtkMeshIOService::readMesh | ( | IPrimaryMesh * | mesh, |
const String & | file_name, | ||
const String & | dir_name, | ||
bool | use_internal_partition | ||
) |
Permet de débuter la lecture d'un fichier vtk.
mesh | Le maillage à remplir |
file_name | Le nom du fichier vtk (avec l'extension) |
dir_name | Le chemin du fichier |
use_internal_partition | Doit-on utiliser le partitionneur interne ou non |
Définition à la ligne 591 du fichier VtkMeshIOService.cc.
Références _readFacesMesh(), _readStructuredGrid(), _readUnstructuredGrid(), Arccore::TraceAccessor::debug(), Arccore::TraceAccessor::error(), Arccore::TraceAccessor::info(), Arcane::VtkFile::isEqualString(), et Arccore::String::localstr().