#include "cs_defs.h"#include <stdarg.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>#include <math.h>#include <mpi.h>#include "bft_error.h"#include "bft_mem.h"#include "bft_printf.h"#include "cs_mesh.h"#include "cs_mesh_connect.h"#include "cs_parall.h"#include "cs_prototypes.h"#include "cs_selector.h"#include "cs_timer.h"#include "fvm_defs.h"#include "fvm_nodal_from_desc.h"#include "cs_medcoupling_mesh.hxx"#include "cs_paramedmem_remapper.h"#include <MEDLoader.hxx>#include <MEDCoupling_version.h>#include <MEDFileField.hxx>#include <MEDFileFieldMultiTS.hxx>#include <MEDFileMesh.hxx>#include <MEDCouplingUMesh.hxx>#include <MEDCouplingField.hxx>#include <MEDCouplingFieldDouble.hxx>#include <ParaFIELD.hxx>#include <ParaMESH.hxx>#include <OverlapDEC.hxx>#include <ParaMEDFileMesh.hxx> Include dependency graph for cs_paramedmem_remapper.cxx:
 Include dependency graph for cs_paramedmem_remapper.cxx:| Functions | |
| static _mesh_transformation_t * | _cs_paramedmem_create_transformation (int type, const cs_real_t center[3], const cs_real_t vector[3], const cs_real_t angle) | 
| Create a mesh transformation (rotation or translation)  More... | |
| static void | _cs_paramedmem_reset_transformations (void) | 
| Reset all mesh transformations.  More... | |
| static void | _cs_paramedmem_apply_transformations (MEDCouplingFieldDouble *field, cs_paramedmem_remapper_t *r) | 
| Apply the different mesh transformations and update the bounding sphere.  More... | |
| static int * | _cs_paramedmem_get_mpi_comm_world_ranks (void) | 
| Returns an array containing the ranks of code_saturne processes in MPI_COMM_WORLD.  More... | |
| static cs_paramedmem_remapper_t * | _cs_paramedmem_overlap_create (const char *name) | 
| Create the parallel remapper structure based on ParaMEDMEM OverlapDEC.  More... | |
| static void | _cs_paramedmem_remapper_target_mesh (cs_paramedmem_remapper_t *r, const char *name, const char *select_criteria) | 
| Set the target mesh for interpolation.  More... | |
| static void | _cs_paramedmem_load_paramesh (cs_paramedmem_remapper_t *r, char *file_name, char *mesh_name) | 
| Load the mesh parts on each process.  More... | |
| static void | _cs_paramedmem_remapper_destroy (cs_paramedmem_remapper_t *r) | 
| Destroy a remapper.  More... | |
| cs_paramedmem_remapper_t * | cs_paramedmem_remapper_create (char *name, const char *sel_criteria, char *file_name, char *mesh_name, cs_real_t center[3], cs_real_t radius) | 
| Creates a new cs_paramedmem_remapper_t instance.  More... | |
| cs_paramedmem_remapper_t * | cs_paramedmem_remapper_by_name_try (const char *name) | 
| get a remapper by its name  More... | |
| cs_real_t * | cs_paramedmem_remap_field_one_time (cs_paramedmem_remapper_t *r, char *field_name, cs_real_t default_val, int dt, int it) | 
| Remaps a field from the med file to the local mesh for a given time.  More... | |
| cs_real_t * | cs_paramedmem_remap_field (cs_paramedmem_remapper_t *r, char *field_name, cs_real_t default_val, int time_choice, double tval) | 
| Interpolate a given field on the local mesh for a given time.  More... | |
| void | cs_paramedmem_remapper_translate (cs_paramedmem_remapper_t *r, cs_real_t translation[3]) | 
| translate the mesh using a given vector  More... | |
| void | cs_paramedmem_remapper_rotate (cs_paramedmem_remapper_t *r, cs_real_t invariant[3], cs_real_t axis[3], cs_real_t angle) | 
| Rotate the mesh using a center point, axis and angle.  More... | |
| void | cs_paramedmem_remapper_destroy_all (void) | 
| Destroy all remappers.  More... | |
| Variables | |
| static int | _n_remappers = 0 | 
| static cs_paramedmem_remapper_t ** | _remapper = NULL | 
| static int | _n_transformations = 0 | 
| static _mesh_transformation_t ** | _transformations = NULL | 
| static bool | _transformations_applied = false | 
| 
 | static | 
Apply the different mesh transformations and update the bounding sphere.
| 
 | static | 
Create a mesh transformation (rotation or translation)
| 
 | static | 
Returns an array containing the ranks of code_saturne processes in MPI_COMM_WORLD.
| 
 | static | 
Load the mesh parts on each process.
| [in] | r | pointer to cs_paramedmem_remapper_t struct | 
| [in] | file_name | name of med file containing the data | 
| [in] | mesh_name | name of the mesh to read in the med file | 
| 
 | static | 
Create the parallel remapper structure based on ParaMEDMEM OverlapDEC.
| [in] | name | name of the remapper | 
| 
 | static | 
Destroy a remapper.
| [in] | r | remapper to destroy | 
| 
 | static | 
Set the target mesh for interpolation.
| [in] | r | pointer to cs_paramedmem_remapper_t struct | 
| [in] | name | mesh name | 
| [in] | select_criteria | selection criteria for needed cells | 
| 
 | static | 
Reset all mesh transformations.
| cs_real_t* cs_paramedmem_remap_field | ( | cs_paramedmem_remapper_t * | r, | 
| char * | field_name, | ||
| cs_real_t | default_val, | ||
| int | time_choice, | ||
| double | tval | ||
| ) | 
Interpolate a given field on the local mesh for a given time.
| [in] | r | pointer to cs_paramedmem_remapper_t struct | 
| [in] | field_name | name of the field to remap from the file | 
| [in] | default_val | default value for unmapped elements | 
| [in] | time_choice | Choice of the time interpolation. 0: Value of field interpolated at t=tval from the med file. 1: Returns field values for the first time step in the file. tval is then ignored. 2: Returns field values for the last time step in the file. tval is then ignored. | 
| [in] | tval | requested time instant. If time choice is 0 and tval outside of the file time bounds, return value will be at the the first time step (if tval < tmin) or last time step (if tval > tmax) | 
| cs_real_t* cs_paramedmem_remap_field_one_time | ( | cs_paramedmem_remapper_t * | r, | 
| char * | field_name, | ||
| cs_real_t | default_val, | ||
| int | dt, | ||
| int | it | ||
| ) | 
Remaps a field from the med file to the local mesh for a given time.
| [in] | r | pointer to cs_paramedmem_remapper_t struct | 
| [in] | field_name | name of the field to remap from the file | 
| [in] | default_val | default value for unmapped elements | 
| [in] | dt | time value to use from the file | 
| [in] | it | time iteration to use from the file | 
| cs_paramedmem_remapper_t* cs_paramedmem_remapper_by_name_try | ( | const char * | name | ) | 
get a remapper by its name
| [in] | name | name of the remapper | 
| cs_paramedmem_remapper_t* cs_paramedmem_remapper_create | ( | char * | name, | 
| const char * | sel_criteria, | ||
| char * | file_name, | ||
| char * | mesh_name, | ||
| cs_real_t | center[3], | ||
| cs_real_t | radius | ||
| ) | 
Creates a new cs_paramedmem_remapper_t instance.
| [in] | name | name of the remapper | 
| [in] | sel_criteria | cells selection criteria | 
| [in] | file_name | med file name | 
| [in] | mesh_name | name of the mesh in the med file | 
| [in] | center | center of bounding sphere | 
| [in] | radius | radius of bounding sphere | 
| void cs_paramedmem_remapper_destroy_all | ( | void | ) | 
Destroy all remappers.
| void cs_paramedmem_remapper_rotate | ( | cs_paramedmem_remapper_t * | r, | 
| cs_real_t | invariant[3], | ||
| cs_real_t | axis[3], | ||
| cs_real_t | angle | ||
| ) | 
Rotate the mesh using a center point, axis and angle.
| [in] | r | pointer to the cs_paramedmem_remapper_t struct | 
| [in] | invariant | coordinates of the invariant point | 
| [in] | axis | rotation axis vector | 
| [in] | angle | rotation angle in radians | 
| void cs_paramedmem_remapper_translate | ( | cs_paramedmem_remapper_t * | r, | 
| cs_real_t | translation[3] | ||
| ) | 
translate the mesh using a given vector
| [in] | r | pointer to the cs_paramedmem_remapper_t struct | 
| [in] | translation | translation vector | 
| 
 | static | 
| 
 | static | 
| 
 | static | 
| 
 | static | 
| 
 | static |