3#ifndef __GRAPE_HMESH_H__
4#define __GRAPE_HMESH_H__
16#include "grapecommon.hh"
20enum { MAX_NAME_LENGTH = 32 };
22typedef struct dune_elem DUNE_ELEM;
23typedef struct dune_fdata DUNE_FDATA;
24typedef struct dune_dat DUNE_DAT;
26typedef void evalDof_t (DUNE_ELEM *, DUNE_FDATA *,
int ,
double *);
27typedef void evalCoord_t (DUNE_ELEM *, DUNE_FDATA *,
const double *,
double * );
38 , level_of_interest(-1)
49 for(
int i=0; i<MAX_EL_DOF; ++i)
52 vpointer[i] = (
double *) coordinates[i];
53 for(
int j=0; j<3; ++j)
58 for(
int i=0; i<MAX_EL_FACE; ++i)
69 double * vpointer [MAX_EL_DOF];
70 double coordinates [MAX_EL_DOF][3];
71 int vindex [MAX_EL_DOF] ;
72 int bnd [MAX_EL_FACE] ;
75 int level_of_interest;
101 static std::set<DUNE_FDATA*>& dataList ()
103 static std::set<DUNE_FDATA*> dList;
123 , setGridPartIterators(0)
132 dataList().insert(
this);
138 dataList().erase(
this);
148 evalCoord_t * evalCoord;
152 const void *discFunc;
155 const void *indexSet;
184 void (*setGridPartIterators)(DUNE_DAT * ,
void * gridPart);
201 void (*getMinMaxValues)(DUNE_FDATA *,
double * min,
double * max );
218 , setIterationModus(0)
221 , partitionIteratorType(-1)
225 , free_stackentry(0) {}
228 int (* first_macro)(DUNE_ELEM *) ;
229 int (* next_macro)(DUNE_ELEM *) ;
232 void (* delete_iter)(DUNE_ELEM *) ;
235 int (* first_child)(DUNE_ELEM *) ;
236 int (* next_child)(DUNE_ELEM *) ;
238 void * (* copy)(
const void *) ;
240 int (* check_inside)(DUNE_ELEM *,
const double * ) ;
241 int (* wtoc)(DUNE_ELEM *,
const double *,
double * ) ;
242 void (* ctow)(DUNE_ELEM *,
const double *,
double * ) ;
246 void (* setIterationModus)(DUNE_DAT *, DUNE_FDATA *);
255 int partitionIteratorType;
263 void * (*get_stackentry)(DUNE_DAT * );
265 void (*free_stackentry)(DUNE_DAT * ,
void *);
269extern void *setupHmesh(
const int noe,
const int nov,
270 const int maxlev, DUNE_DAT * dune);
273extern void deleteHmesh(
void * hmesh );
274extern void deleteFunctions(
void * hmesh );
277extern void handleMesh (
void *hmesh,
bool gridMode );
279extern DUNE_FDATA * extractData (
void *hmesh ,
int num );
282extern void timeSceneInit(INFO *info,
const int n_info,
const int procs);
283extern void addDataToHmesh(
void *hmesh, DUNE_FDATA * data);
285extern void addHmeshToTimeScene(
void * timescene,
double time,
void *hmesh ,
int proc);
287extern void addHmeshToGlobalTimeScene(
double time,
void *hmesh ,
int proc);
288extern void tsc_timebar(
void *timescene,
double t_start,
double t_end);
289extern void colorBarMinMax(
const double min,
const double max);