Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/elmergrid/src/egmesh.h
3196 views
1
/* femknot.h -> egmesh.h */
2
/* This module includes utilities that operate on single knots. It builds
3
structures where the knots can be saved, it finds boundaries,
4
copies knots from structures to others and destroys structures that
5
become obsolete. The routines mostly operate on structures
6
FemType and BoundaryType. */
7
8
int GetElementDimension(int elementtype);
9
int GetMaxElementType(struct FemType *data);
10
int GetMinElementType(struct FemType *data);
11
12
int GetMaxBodyIndex(struct FemType *data);
13
int GetMaxBCIndex(struct BoundaryType *bound);
14
15
int GetMaxElementDimension(struct FemType *data);
16
int GetCoordinateDimension(struct FemType *data,int info);
17
void GetElementInfo(int element,struct FemType *data,
18
Real *globalcoord,int *ind,int *material);
19
void GetBoundaryElement(int sideind,struct BoundaryType *bound,struct FemType *data,int *ind,int *sideelemtype);
20
void GetElementSide(int element,int side,int normal,
21
struct FemType *data,int *ind,int *sideelemtype);
22
int GetElementFaces(int elemtype);
23
void NumberVariables(struct FemType *data,int variable);
24
int CalculateIndexwidth(struct FemType *data,int indxis,int *indx);
25
void InitializeKnots(struct FemType *data);
26
void AllocateKnots(struct FemType *data);
27
void CreateKnots(struct GridType *grid,struct CellType *cell,
28
struct FemType *data,int noknots,int info);
29
int CreateVariable(struct FemType *data,int variable,int unknowns,
30
Real value,const char *variablename,int eorder);
31
void DestroyKnots(struct FemType *data);
32
int CreateBoundary(struct CellType *cell,struct FemType *data,
33
struct BoundaryType *bound,int material1,int material2,
34
int solidmat,int boundarytype,int info);
35
int AllocateBoundary(struct BoundaryType *bound,int size);
36
int DestroyBoundary(struct BoundaryType *bound);
37
int CreateBoundaries(struct CellType *cell,struct FemType *data,
38
struct BoundaryType *boundaries,int info);
39
int CreatePoints(struct CellType *cell,struct FemType *data,
40
struct BoundaryType *bound,
41
int param1,int param2,int pointmode,int pointtype,int info);
42
int CreateNewNodes(struct FemType *data,int *order,int material,int newknots);
43
int SetDiscontinuousBoundary(struct FemType *data,struct BoundaryType *bound,
44
int boundtype,int endnodes,int info);
45
int SetConnectedNodes(struct FemType *data,struct BoundaryType *bound,
46
int bctype,int connecttype,int info);
47
int SetConnectedElements(struct FemType *data,int info);
48
int FindCorners(struct GridType *grid,struct CellType *cell,
49
struct FemType *data,int info);
50
51
int ConstantToBilinear(struct FemType *data,int var1,int var2);
52
int ElementsToTriangles(struct FemType *data,struct BoundaryType *bound,
53
Real critangle,int info);
54
int IncreaseElementOrder(struct FemType *data,int info);
55
int PolarCoordinates(struct FemType *data,Real rad,int info);
56
int CylinderCoordinates(struct FemType *data,int info);
57
int UniteMeshes(struct FemType *data1,struct FemType *data2,
58
struct BoundaryType *bound1,struct BoundaryType *bound2,
59
int nooverlap, int info);
60
int CloneMeshes(struct FemType *data,struct BoundaryType *bound,
61
int *ncopies,Real *meshsize,int diffmats,int info);
62
int MirrorMeshes(struct FemType *data,struct BoundaryType *bound,
63
int *symmaxis,int diffmats,Real *meshsize,int symmbound,int info);
64
void ReorderElements(struct FemType *data,struct BoundaryType *bound,
65
int manual,Real corder[],int info);
66
int RemoveUnusedNodes(struct FemType *data,int info);
67
void RenumberBoundaryTypes(struct FemType *data,struct BoundaryType *bound,
68
int renumber, int bcoffset, int info);
69
void RenumberMaterialTypes(struct FemType *data,struct BoundaryType *bound,int info);
70
void CreateKnotsExtruded(struct FemType *dataxy,struct BoundaryType *boundxy,
71
struct GridType *grid,
72
struct FemType *data,struct BoundaryType *bound,
73
int info);
74
void CylindricalCoordinateCurve(struct FemType *data,
75
Real zet,Real rad,Real angle);
76
void ReduceElementOrder(struct FemType *data,int matmin,int matmax);
77
void IsoparametricElements(struct FemType *data,struct BoundaryType *bound,
78
int bcstoo,int info);
79
void MergeElements(struct FemType *data,struct BoundaryType *bound,
80
int manual,Real corder[],Real eps,int mergebounds,int info);
81
void MergeBoundaries(struct FemType *data,struct BoundaryType *bound,int *doubles,int info);
82
void SeparateCartesianBoundaries(struct FemType *data,struct BoundaryType *bound,int info);
83
void ElementsToBoundaryConditions(struct FemType *data,
84
struct BoundaryType *bound,int retainorphans, int info);
85
int SideAndBulkMappings(struct FemType *data,struct BoundaryType *bound,struct ElmergridType *eg,int info);
86
int SideAndBulkBoundaries(struct FemType *data,struct BoundaryType *bound,struct ElmergridType *eg,int info);
87
void NodesToBoundaryChain(struct FemType *data,struct BoundaryType *bound,
88
int *bcinds,int *bctags,int nbc,int bccount,
89
int info);
90
int FindPeriodicNodes(struct FemType *data,int periodicdim[],int info);
91
int FindPeriodicParents(struct FemType *data,struct BoundaryType *bound,int info);
92
int FindNewBoundaries(struct FemType *data,struct BoundaryType *bound,
93
int *boundnodes,int suggesttype,int dimred,int info);
94
int FindBulkBoundary(struct FemType *data,int mat1,int mat2,
95
int *boundnodes,int *noboundnodes,int info);
96
int FindBoundaryBoundary(struct FemType *data,struct BoundaryType *bound,int mat1,int mat2,
97
int *boundnodes,int *noboundnodes,int info);
98
int CreateBoundaryLayer(struct FemType *data,struct BoundaryType *bound,
99
int nolayers, int *layerbounds, int *layernumber,
100
Real *layerratios, Real *layerthickness, int *layerparents,
101
int maxfilters, Real layereps, int info);
102
int CreateBoundaryLayerDivide(struct FemType *data,struct BoundaryType *bound,
103
int nolayers, int *layerbounds, int *layernumber,
104
Real *layerratios, Real *layerthickness, int *layerparents,int info);
105
int RotateTranslateScale(struct FemType *data,struct ElmergridType *eg,int info);
106
int RemoveLowerDimensionalBoundaries(struct FemType *data,struct BoundaryType *bound,int info);
107
int RemoveInternalBoundaries(struct FemType *data,struct BoundaryType *bound,int info);
108
int CreateNodalGraph(struct FemType *data,int full,int info);
109
int DestroyNodalGraph(struct FemType *data,int info);
110
int CreateDualGraph(struct FemType *data,int unconnected,int info);
111
int DestroyDualGraph(struct FemType *data,int info);
112
int CreateInverseTopology(struct FemType *data,int info);
113
int DestroyInverseTopology(struct FemType *data,int info);
114
int MeshTypeStatistics(struct FemType *data,int info);
115
int BoundingBox(struct FemType *data,int nomesh,int nomeshes,int info);
116
117