file: Hlib/src/Pyr.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 of 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" // done Pyr::Pyr(){ Nverts = NPyr_verts; Nedges = NPyr_edges; Nfaces = NPyr_faces; } Pyr::Pyr(Element *E){ int i; if(!Pyr_wk) Pyr_work(); id = E->id; type = E->type; state = 'p'; Nverts = NPyr_verts; Nedges = NPyr_edges; Nfaces = NPyr_faces; vert = (Vert *)calloc(NPyr_verts,sizeof(Vert)); edge = (Edge *)calloc(NPyr_edges,sizeof(Edge)); face = (Face *)calloc(NPyr_faces,sizeof(Face)); lmax = E->lmax; interior_l = E->interior_l; Nmodes = E->Nmodes; Nbmodes = E->Nbmodes; qa = E->qa; qb = E->qb; qc = E->qc; qtot = qa*qb*qc; memcpy(vert,E->vert,NPyr_verts*sizeof(Vert)); memcpy(edge,E->edge,NPyr_edges*sizeof(Edge)); memcpy(face,E->face,NPyr_faces*sizeof(Face)); /* set memory */ for(i=0;i<NPyr_verts;++i) vert[i].hj = (double*) 0; for(i=0;i<NPyr_edges;++i) edge[i].hj = (double*) 0; for(i=0;i<NPyr_faces;++i) face[i].hj = (double**) 0; h = (double**) 0; h_3d = (double***) 0; hj_3d = (double***) 0; curve = E->curve; curvX = E->curvX; geom = E->geom; dgL = E->dgL; } Pyr::Pyr(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(!Pyr_wk) Pyr_work(); id = i_d; type = ty; state = 'p'; Nverts = NPyr_verts; Nedges = NPyr_edges; Nfaces = NPyr_faces; vert = (Vert *)calloc(NPyr_verts,sizeof(Vert)); edge = (Edge *)calloc(NPyr_edges,sizeof(Edge)); face = (Face *)calloc(NPyr_faces,sizeof(Face)); lmax = L; interior_l = max(0,L-3); Nbmodes = 5 + 8*(L-2) + 4*(L-3)*(L-2)/2 + (L-2)*(L-2); Nmodes = Nbmodes + ((L-3)*(L-2)*(L-1)/6); // interior qa = Qa; qb = Qb; qc = Qc; qtot = qa*qb*qc; /* set vertex solve mask to 1 by default */ for(i = 0; i < NPyr_verts; ++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]; vert[i].z = X->z[i]; vert[i].hj = (double*)0; } /* construct edge system */ for(i = 0; i < NPyr_edges; ++i){ edge[i].id = i; edge[i].eid = id; edge[i].l = L-2; edge[i].hj = (double*)0; } /* construct face system */ for(i = 0; i < NPyr_faces; ++i){ face[i].id = i; face[i].eid = id; face[i].hj = (double**)0; } face[0].l = max(0,L-2); face[2].l = face[4].l = face[1].l = face[3].l = max(0,L-3); h = (double**)0; h_3d = (double***)0; hj_3d = (double***)0; curve = (Curve*) malloc(sizeof(Curve)); curve->face = -1; curve->type = T_Straight; curvX = (Cmodes*)0; // curve = (Curve*)NULL; // curvX = (Cmodes*)NULL; } Pyr::Pyr(int , char , int *, int *, Coord *){ //OVERLOAD CALL: Coord: nekstruct.h(?), hotel.h(?) }


Back to Source File Index


C++ to HTML Conversion by ctoohtml