00001 #ifndef _FIELD_ELEMS_H_ 00002 #define _FIELD_ELEMS_H_ 00003 00004 /*** CONSTANTS ***/ 00005 00006 #define APC_MAX_NUM_FIELD 10 /* maximal number of fields */ 00007 00008 /*** DATA TYPES ***/ 00009 00010 /* solution degrees of freedom structure (parallel to element structure) */ 00011 typedef struct { 00012 int pdeg; /* indicator of polynomial degrees */ 00013 /* for different types of elements: */ 00014 /* TETRA - pdeg = pdegxyz one for all directions */ 00015 /* PRISM - pdeg = 100*pdegz + pdegxy */ 00016 /* BRICK - pdeg = 100*pdegz + pdegy*10 + pdegx */ 00017 /* (pdeg = -1 - sol_* vectors not allocated) */ 00018 double *vec_dof_1; /* pointer to array of field dofs */ 00019 double *vec_dof_2; /* pointer to array of field dofs */ 00020 double *vec_dof_3; /* pointer to array of field dofs */ 00021 } apt_dg_dof_ent; 00022 00023 00024 /* discretization structure, including time and space discretization */ 00025 typedef struct { 00026 int mesh_id; /* identifier of the mesh associated with field */ 00027 int nreq; /* number of components in solution vector */ 00028 int nr_sol; /* number of solution vectors for each element */ 00029 int uniform; /* whether the pdeg is the same for all elements */ 00030 int base; /* type of shape functions: */ 00031 /* 1 (APC_TENSOR) - tensor product */ 00032 /* 2 (APC_COMPLETE) - complete polynomials */ 00033 /* ! for both types the order of the first four dofs */ 00034 /* ! as returned from apr_shape_fun_3D is: 1,x,y,z ! */ 00035 // int nr_dof_ent; /* number of dof entities */ 00036 apt_dg_dof_ent *dof_ents; /* pointer to structure with the vectors of dofs */ 00037 } apt_dg_field; 00038 00039 /* new structure */ 00040 typedef struct { 00041 //int node_id; 00042 double* vec_dof_1/*[3]*/; //Uwaga! 00043 double* vec_dof_2; 00044 double* vec_dof_3; 00045 int* constr; 00046 } apt_std_dof_ent; 00047 /* new discretization structure, including time and space discretization */ 00048 typedef struct { 00049 int mesh_id; 00050 int nreq; 00051 int nr_sol; 00052 int base; 00053 int pdeg; 00054 int constr; 00055 int uniform; 00056 int nr_nodes; 00057 int nmno_nodes; 00058 apt_std_dof_ent *dof_ents; 00059 } apt_std_field; 00060 00061 #endif /* _FIELD_ELEMS_H_ 00062 */