1 // Project MULTIPR, IOLS WP1.2.1 - EDF/CS
2 // Partitioning/decimation module for the SALOME v3.2 platform
5 * \file MULTIPR_API.hxx
7 * \brief Main header of the high level MULTIPR API.
9 * \author Olivier LE ROUX - CS, Virtual Reality Dpt
14 #ifndef MULTIPR_API_HXX
15 #define MULTIPR_API_HXX
27 }; // enum Partitionner
31 * \fn const char* getVersion()
32 * \brief returns the current version of the MULTIPR API.
33 * \return the current version of the MULTIPR API.
35 const char* getVersion();
39 * \fn int partitionneDomaine(const char* medFilename, const char* meshName)
40 * \brief creates a distributed MED file (v2.3) by extracting all the groups from the mesh of a sequential MED file.
42 * - the file is in MED format and can be read using MED file v2.3.
43 * - the file is sequential (not a distributed MED).
44 * - the file only contains TETRA10 elements (dimension of space and mesh is 3).
45 * - the file have no profil.
46 * \param medFilename filename of any valid sequential MED file with TETRA10 elements only.
47 * \param meshName name of the mesh to be distributed.
48 * \throw RuntimeException if any error occurs.
50 void partitionneDomaine(
51 const char* medFilename,
52 const char* meshName);
56 * \fn int partitionneGrain(const char* medFilename, const char* groupName, int nbParts, int partitionner)
57 * \brief creates a distributed MED file (V2.3) by splitting a group of a MED file previously created by partitionneDomaine.
59 * - the file is a distributed MED file, previously created by partitionneDomaine()
60 * (=> each part only contain 1 mesh, TETRA10 elements only)
62 * \param medFilename filename of any valid distributed MED file previously created by partitionneDomaine().
63 * \param partName name of the part to be splitted.
64 * \param nbParts number of parts; must be > 1.
65 * \param partitionner use value MULTIPR_METIS for Metis or MULTIPR_SCOTCH for Scotch.
66 * \throw RuntimeException if any error occurs.
68 void partitionneGrain(
69 const char* medFilename,
72 int partitionner=MULTIPR_METIS);
76 * \fn int decimePartition(const char* medFilename, const char* partName, const char* fieldName, int fieldIt, const char* filterName, double tmed, double tlow, double radius);
77 * \brief creates 3 resolutions of the given part of a distributed MED file (V2.3).
79 * - the file is a distributed MED file, previously created by partitionneDomaine() or partitionneGrain()
80 * (=> each part only contain 1 mesh, TETRA10 elements only)
81 * \param medFilename filename of any valid distributed MED file previously created by partitionneDomaine or partitionneGrain.
82 * \param partName name of the part to be decimated.
83 * \param fieldName name of the field used for decimation.
84 * \param fieldIt iteration (time step) of the field.
85 * \param filterName name of the filter to be used.
86 * \param tmed threshold used for medium resolution.
87 * \param tlow threshold used for low resolution; tmed must be less than tlow
88 * \param radius radius used to determine the neighbourhood.
89 * \param boxing number of cells along each axis; must be >= 1; e.g. if 100 then acceleration grid will have 100*100*100 = 10**6 cells.
90 * \throw RuntimeException if any error occurs.
93 const char* medFilename,
95 const char* fieldName,
97 const char* filterName,
103 } // namespace MULTIPR
106 #endif // MULTIPR_API_HXX