00001 /* 00002 File: qen2delem.cpp 00003 Author: Tomas Koudelka, 3.2011 00004 Purpose: Fictious general 2D element for HERMES adaptivity 00005 */ 00006 00007 #include "globalt.h" 00008 #include "gen2delem.h" 00009 #include "genfile.h" 00010 #include "globmatt.h" 00011 00012 gen2delem::gen2delem (void) 00013 { 00014 long i; 00015 00016 // number of nodes on element 00017 nne=1; 00018 // number of edges 00019 ned=0; 00020 // number of nodes on one edge 00021 nned=0; 00022 // geometrical dimension 00023 ncomp=2; 00024 00025 // number of transported variables 00026 ntm=Tp->ntm; 00027 00028 00029 nip = new long* [ntm]; 00030 for (i=0;i<ntm;i++){ 00031 nip[i] = new long [ntm]; 00032 } 00033 00034 00035 switch (Tp->tmatt){ 00036 case nomedium:{ break; } 00037 case onemedium:{ 00038 nip[0][0]=1; 00039 ndofe=1; 00040 break; 00041 } 00042 case twomediacoup:{ 00043 if (Tp->savemode==0){ 00044 nip[0][0]=1; nip[0][1]=1; nip[1][0]=1; nip[1][1]=1; 00045 } 00046 if (Tp->savemode==1){ 00047 nip[0][0]=1; nip[0][1]=0; nip[1][0]=0; nip[1][1]=0; 00048 } 00049 ndofe=2; 00050 break; 00051 } 00052 case threemediacoup:{ 00053 if (Tp->savemode==0){ 00054 nip[0][0]=1; nip[0][1]=1; nip[0][2]=1; 00055 nip[1][0]=1; nip[1][1]=1; nip[1][2]=1; 00056 nip[2][0]=1; nip[2][1]=1; nip[2][2]=1; 00057 } 00058 if (Tp->savemode==1){ 00059 nip[0][0]=1; nip[0][1]=0; nip[0][2]=0; 00060 nip[1][0]=0; nip[1][1]=0; nip[1][2]=0; 00061 nip[2][0]=0; nip[2][1]=0; nip[2][2]=0; 00062 } 00063 ndofe=3; 00064 break; 00065 } 00066 case fourmediacoup:{ 00067 if (Tp->savemode==0){ 00068 nip[0][0]=1; nip[0][1]=1; nip[0][2]=1; nip[0][3]=1; 00069 nip[1][0]=1; nip[1][1]=1; nip[1][2]=1; nip[1][3]=1; 00070 nip[2][0]=1; nip[2][1]=1; nip[2][2]=1; nip[2][3]=1; 00071 nip[3][0]=1; nip[3][1]=1; nip[3][2]=1; nip[3][3]=1; 00072 } 00073 if (Tp->savemode==1){ 00074 nip[0][0]=1; nip[0][1]=0; nip[0][2]=0; nip[0][3]=0; 00075 nip[1][0]=0; nip[1][1]=0; nip[1][2]=0; nip[1][3]=0; 00076 nip[2][0]=0; nip[2][1]=0; nip[2][2]=0; nip[2][3]=0; 00077 nip[3][0]=0; nip[3][1]=0; nip[3][2]=0; nip[3][3]=0; 00078 } 00079 ndofe=4; 00080 break; 00081 } 00082 default:{ 00083 print_err("unknown number of transported matters is required",__FILE__,__LINE__,__func__); 00084 } 00085 } 00086 } 00087 00088 gen2delem::~gen2delem (void) 00089 { 00090 long i; 00091 00092 for (i=0;i<ntm;i++){ 00093 delete [] nip[i]; 00094 } 00095 delete [] nip; 00096 } 00097