femMesh.hpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
#ifndef __TRIANGUL_H
00035
#define __TRIANGUL_H
00036
00037
#include <femCommon.hpp>
00038
00039
namespace fem
00040 {
00041
00042
00052 class femMesh
00053 {
00054
public:
00055
00059
00061 typedef long integer;
00062
00064 typedef long logical;
00065
00067 typedef float femPoint[2];
00068
00070 typedef long femTriangle[3];
00071
00073
00076
femMesh();
00077
femMesh(
femMesh const& );
00079
00083
00084
int getNumberOfPoints()
const
00085
{
00086
return np;
00087 }
00088
00089
int getNumberOfCells()
const
00090
{
00091
return nt;
00092 }
00094
00098
00099
void setDimensions(
int,
int );
00100
00102
00106
00108 void Delete()
00109 {
00110
if (rp)
00111 {
00112
delete [] rp;
00113 rp = NULL;
00114 }
00115
if (tr)
00116 {
00117
delete [] tr;
00118 tr = NULL;
00119 }
00120
if (ng)
00121 {
00122
delete [] ng;
00123 ng = NULL;
00124 }
00125
if (ngt)
00126 {
00127
delete [] ngt;
00128 ngt = NULL;
00129 }
00130 }
00131
00133
void removeBdyT();
00134
00136
long create (
long nbs,
long nbsmax,
long nba,
00137
float *crbdy,
float *hbdy,
long *arete,
int *ngbdy,
long *sd,
long nbsd,
int* flag,
00138
int fflag);
00139
00141
int mshptg_(
float *cr,
float *h,
long *c,
long *nu,
long *nbs,
long nbsmx,
long *tri,
00142
long *arete,
long nba,
long *sd,
00143
long nbsd,
long *reft,
long *nbt,
float coef,
float puis,
long *err);
00144
00146
int check(
float*,
int ) const;
00147
00149 public:
00150 femPoint* rp;
00151 femTriangle* tr;
00152
int* ngt;
00153
int* ng;
00154
00155 private:
00156
00157
void swapWithNeibhor(
int );
00158
int renumerotate();
00159
00160
int mshrgl_ (
float *c,
long *nrfs,
long *nbs,
long *nu,
long *w1,
00161
long *w,
float omega,
long itermx,
float eps);
00162
int mshopt_ (
long *c,
long *nu,
long *t,
long a,
long *err);
00163
void mshvoi_ (
long *nu,
long *w1,
long *w,
long *nbt,
long *nbs);
00164
int msha1p_ (
long *t,
long *s,
long *c,
long *nu,
long *reft,
long *tete,
long *nbt,
00165
long *err);
00166
int mshtri_ (
float *cr,
long *c,
long *nbs,
long *tri,
long *nu,
float *trfri,
long *err);
00167
int mshcxi_ (
long *c,
long *nu,
long *tri,
long *nbs,
long *tete,
long *err);
00168
int mshfrt_ (
long *c,
long *nu,
long *nbs,
long *arete,
long nba,
long *sd,
00169
long nbsd,
long *reft,
long *w,
long *err);
00170
int mshgpt_ (
long *c,
float *cr,
long *nu,
float *h,
long *reft,
long *nbs,
00171
long nbsmx,
long *nbt,
float coef,
float puis,
float *trfri,
long *err);
00172
long mshlcl_ (
long *c,
long *nu,
long *tete,
long *s);
00173
int mshtr1_ (
long *criter,
long *record,
long *n);
00174
int mshcvx_ (
long direct,
long *c,
long *nu,
long *pfold,
long *err);
00175
int mshfr1_ (
long *c,
long *nu,
long *it1,
long *ita,
long *is1,
long *s2,
long *err);
00176
int mshfr2_ (
long *c,
long *nu,
long *lst,
long *nbac,
long *t,
long *ta,
00177
long *ss1,
long *ss2,
long *err);
00178
00179
int gibbs1_ (integer * n, integer * record, integer * ptvois);
00180
int gibbs2_ (integer * n, integer * record, integer * criter);
00181
int gibbsa_ (integer * n, integer * ptvois, integer * vois, integer * r, integer * m,
00182 integer * nv, integer * nx, integer * ny, integer * nn, integer * w1, integer * w2,
00183 integer * pfold, integer * pfnew, integer * impre, integer * nfout);
00184
int gibbsb_ (integer * x, integer * y, integer * n, integer * ptvois,
00185 integer * vois, integer * nx, integer * ny, integer * nv, integer * nn, integer * m,
00186 integer * wh, integer * wl, integer * r, integer * impre, integer * nfout);
00187
int gibbsc_ (integer * nz, integer * nv, integer * niveau, integer * n, integer *);
00188
int gibbsd_ (integer * racine, integer * n, integer * ptvois, integer *
00189 vois, integer * nv, integer * r, integer * niveau);
00190
int gibbst_ (integer * n, integer * p, integer * nv, integer * nn, integer * ptvois, integer * vois,
00191 integer * m, integer * r, integer * new_, integer * option,
00192 integer * pfnew, integer * impre, integer * nfout);
00193
int gibbsv (integer * ptvoi, integer * vois, integer * lvois, integer * w, integer * v);
00194
00195 private:
00196
long np, nt;
00197
00198 };
00199
00200 }
00201
00202 #endif
This is the FreeFEM reference manual
Provided by The KFEM project