19 |
|
|
20 |
#include "Finley.h" |
#include "Finley.h" |
21 |
#include "ReferenceElements.h" |
#include "ReferenceElements.h" |
22 |
|
#include "DataC.h" |
23 |
|
|
24 |
struct Finley_ElementFile { |
struct Finley_ElementFile { |
25 |
|
|
60 |
mesh. */ |
mesh. */ |
61 |
index_t minColor; /* minimum color */ |
index_t minColor; /* minimum color */ |
62 |
index_t maxColor; /* maximum color */ |
index_t maxColor; /* maximum color */ |
63 |
index_t *Color; /* assigns each element a color. elements with the same color */ |
index_t *Color; /* assigns each element a color. elements with the same color */ |
64 |
/* are don't share a node so they can be processed simultaneously */ |
/* are don't share a node so they can be processed simultaneously */ |
65 |
/* at anytime Color must provide a valid value. In any case one can set */ |
/* at anytime Color must provide a valid value. In any case one can set */ |
66 |
/* Color[e]=e for all e */ |
/* Color[e]=e for all e */ |
67 |
index_t order; /* order of the element */ |
index_t order; /* order of the element */ |
68 |
|
|
69 |
|
bool_t volume_is_valid; /* true if volume and DvDV are valid */ |
70 |
|
double* volume; /* local volume */ |
71 |
|
double* DvDV; /* inverse jacobean of element parametrization at quadrature points*/ |
72 |
|
bool_t DSDV_is_valid; /* true is DSDV is valid */ |
73 |
|
double* DSDV; /* derivatives of shape functions in global coordinates at quadrature points*/ |
74 |
|
bool_t DSLinearDV_is_valid; /* true if DSLinearDV is valid */ |
75 |
|
double* DSLinearDV; /* derivatives of linear shape functions in gloabl coordinates at quadrature points*/ |
76 |
|
bool_t X_is_valid; /* true if X is valid */ |
77 |
|
double* X; /* global coordniates of quadrature points */ |
78 |
}; |
}; |
79 |
|
|
80 |
typedef struct Finley_ElementFile Finley_ElementFile; |
typedef struct Finley_ElementFile Finley_ElementFile; |
81 |
|
|
82 |
Finley_ElementFile* Finley_ElementFile_alloc(ElementTypeId,dim_t); |
Finley_ElementFile* Finley_ElementFile_alloc(ElementTypeId,dim_t); |
83 |
void Finley_ElementFile_dealloc(Finley_ElementFile*); |
void Finley_ElementFile_dealloc(Finley_ElementFile*); |
84 |
|
void Finley_ElementFile_setCoordinates(Finley_ElementFile*,escriptDataC*); |
85 |
void Finley_ElementFile_improveColoring(Finley_ElementFile* in,dim_t numNodes,dim_t* degreeOfFreedom); |
void Finley_ElementFile_improveColoring(Finley_ElementFile* in,dim_t numNodes,dim_t* degreeOfFreedom); |
86 |
void Finley_ElementFile_optimizeDistribution(Finley_ElementFile** in); |
void Finley_ElementFile_optimizeDistribution(Finley_ElementFile** in); |
87 |
void Finley_ElementFile_setNodeRange(dim_t*,dim_t*,Finley_ElementFile*); |
void Finley_ElementFile_setNodeRange(dim_t*,dim_t*,Finley_ElementFile*); |