file: Hlib/src/Quad.c

/**************************************************************************/ // // // Author: T.Warburton // // Design: T.Warburton && S.Sherwin // // Date : 12/4/96 // // // // Copyright notice: This code shall not be replicated or used without // // the permission f the author. // // // /**************************************************************************/ #include <stdio.h> #include <stdarg.h> #include <string.h> #include <ctype.h> #include <math.h> #include <polylib.h> #include "veclib.h" #include "hotel.h" #include "nekstruct.h" double Quad_Penalty_Fac = 1.; Quad::Quad() : Element(){ //OVERLOAD CALL: Element: Element.c(Element), Element.c(Element), Element.c(Element) Nverts = 4; Nedges = 4; Nfaces = 1; } Quad::Quad(Element *E){ if(dparam("DPENFAC")) Quad_Penalty_Fac = dparam("DPENFAC"); //OVERLOAD CALL: Quad_Penalty_Fac: Boundary.c(?), Quad.c(?) if(!Quad_wk) Quad_work(); id = E->id; type = E->type; state = 'p'; Nverts = 4; Nedges = 4; Nfaces = 1; vert = (Vert *)calloc(Nverts,sizeof(Vert)); edge = (Edge *)calloc(Nedges,sizeof(Edge)); face = (Face *)calloc(Nfaces,sizeof(Face)); lmax = E->lmax; interior_l = E->interior_l; Nmodes = E->Nmodes; Nbmodes = E->Nbmodes; qa = E->qa; qb = E->qb; qc = 0; qtot = qa*qb; memcpy(vert,E->vert,Nverts*sizeof(Vert)); memcpy(edge,E->edge,Nedges*sizeof(Edge)); memcpy(face,E->face,Nfaces*sizeof(Face)); /* set memory */ vert[0].hj = (double*) 0; face[0].hj = (double**) 0; h = (double**) 0; curve = E->curve; curvX = E->curvX; geom = E->geom; dgL = E->dgL; } Quad::Quad(int i_d, char ty, int L, int Qa, int Qb, int Qc, Coord *X){ //OVERLOAD CALL: Coord: nekstruct.h(?), hotel.h(?) int i; if(!Quad_wk) Quad_work(); Qc = Qc; // compiler fix id = i_d; type = ty; state = 'p'; Nverts = 4; Nedges = 4; Nfaces = 1; vert = (Vert *)calloc(Nverts,sizeof(Vert)); edge = (Edge *)calloc(Nedges,sizeof(Edge)); face = (Face *)calloc(Nfaces,sizeof(Face)); lmax = L; interior_l = 0; Nmodes = Nverts + Nedges*(L-2) + Nfaces*(L-2)*(L-2); Nbmodes = Nmodes - (L-2)*(L-2); qa = Qa; qb = Qb; qc = 0; qtot = qa*qb; /* set vertex solve mask to 1 by default */ for(i = 0; i < Nverts; ++i){ vert[i].id = i; vert[i].eid = id; vert[i].solve = 1; vert[i].x = X->x[i]; vert[i].y = X->y[i]; } /* construct edge system */ for(i = 0; i < Nedges; ++i){ edge[i].id = i; edge[i].eid = id; edge[i].l = L-2; } /* construct face system */ for(i = 0; i < Nfaces; ++i){ face[i].id = i; face[i].eid = id; face[i].l = max(0,L-2); } /* set memory */ vert[0].hj = (double*) 0; face[0].hj = (double**) 0; h = (double**) 0; curve = (Curve*) calloc(1,sizeof(Curve)); curve->face = -1; curve->type = T_Straight; curvX = (Cmodes*)0; } Quad::Quad(int , char , int *, int *, Coord *){ //OVERLOAD CALL: Coord: nekstruct.h(?), hotel.h(?) }


Back to Source File Index


C++ to HTML Conversion by ctoohtml