Changeset 6141
- Timestamp:
- 10/04/10 11:17:37 (14 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r6130 r6141 83 83 MacAyealApproximationEnum, 84 84 MacAyealPattynApproximationEnum, 85 MacAyealStokesApproximationEnum, 85 86 NoneApproximationEnum, 86 87 PattynApproximationEnum, … … 250 251 VzObsEnum, 251 252 VzOldEnum, 253 VzMacAyealEnum, 252 254 VzPattynEnum, 253 255 VzStokesEnum, -
issm/trunk/src/c/EnumDefinitions/EnumToString.cpp
r6130 r6141 73 73 case MacAyealApproximationEnum : return "MacAyealApproximation"; 74 74 case MacAyealPattynApproximationEnum : return "MacAyealPattynApproximation"; 75 case MacAyealStokesApproximationEnum : return "MacAyealStokesApproximation"; 75 76 case NoneApproximationEnum : return "NoneApproximation"; 76 77 case PattynApproximationEnum : return "PattynApproximation"; … … 224 225 case VzObsEnum : return "VzObs"; 225 226 case VzOldEnum : return "VzOld"; 227 case VzMacAyealEnum : return "VzMacAyeal"; 226 228 case VzPattynEnum : return "VzPattyn"; 227 229 case VzStokesEnum : return "VzStokes"; -
issm/trunk/src/c/EnumDefinitions/StringToEnum.cpp
r6130 r6141 71 71 else if (strcmp(name,"MacAyealApproximation")==0) return MacAyealApproximationEnum; 72 72 else if (strcmp(name,"MacAyealPattynApproximation")==0) return MacAyealPattynApproximationEnum; 73 else if (strcmp(name,"MacAyealStokesApproximation")==0) return MacAyealStokesApproximationEnum; 73 74 else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum; 74 75 else if (strcmp(name,"PattynApproximation")==0) return PattynApproximationEnum; … … 222 223 else if (strcmp(name,"VzObs")==0) return VzObsEnum; 223 224 else if (strcmp(name,"VzOld")==0) return VzOldEnum; 225 else if (strcmp(name,"VzMacAyeal")==0) return VzMacAyealEnum; 224 226 else if (strcmp(name,"VzPattyn")==0) return VzPattynEnum; 225 227 else if (strcmp(name,"VzStokes")==0) return VzStokesEnum; -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r5995 r6141 122 122 } 123 123 else ISSMERROR("if vertices_type is PattynStokes, you shoud have gridonpattyn or gridonstokes"); 124 } 125 /*Also add spcs of coupling: zero at the border pattyn/stokes for the appropriate dofs*/ 126 else if ((int)iomodel->vertices_type[i]==MacAyealStokesApproximationEnum){ 127 /*If grion,pattyn spc stokes dofs: 3 4 & 5*/ 128 if ((int)iomodel->gridonpattyn[i]){ 129 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,3,0,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 130 count++; 131 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,4,0,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 132 count++; 133 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,5,0,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 134 count++; 135 if ((int)iomodel->spcvelocity[6*i+0]){ 136 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,*(iomodel->spcvelocity+6*i+3)/iomodel->yts,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 137 count++; 138 } 139 if ((int)iomodel->spcvelocity[6*i+1]){ 140 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,*(iomodel->spcvelocity+6*i+4)/iomodel->yts,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 141 count++; 142 } 143 144 } 145 else if ((int)iomodel->gridonstokes[i]){ //spc pattyn grids: 1 & 2 146 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,1,0,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 147 count++; 148 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,2,0,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 149 count++; 150 if ((int)iomodel->spcvelocity[6*i+0]){ 151 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,3,*(iomodel->spcvelocity+6*i+3)/iomodel->yts,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 152 count++; 153 } 154 if ((int)iomodel->spcvelocity[6*i+1]){ 155 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,4,*(iomodel->spcvelocity+6*i+4)/iomodel->yts,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 156 count++; 157 } 158 if ((int)iomodel->spcvelocity[6*i+2]){ 159 constraints->AddObject(new Spc(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,5,*(iomodel->spcvelocity+6*i+5)/iomodel->yts,DiagnosticHorizAnalysisEnum)); //add count'th spc, on node i+1, setting dof 1 to vx. 160 count++; 161 } 162 } 163 else ISSMERROR("if vertices_type is MacAyealStokes, you shoud have gridonpattyn or gridonstokes"); 124 164 } 125 165 /*Now add the regular spcs*/ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
r5715 r6141 88 88 count++; 89 89 } 90 90 else if ((int)*(iomodel->elements_type+element)==(MacAyealStokesApproximationEnum)){ 91 loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,MacAyeal3dIceFrontEnum,DiagnosticHorizAnalysisEnum)); 92 count++; 93 loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,StokesIceFrontEnum,DiagnosticHorizAnalysisEnum)); 94 count++; 95 } 91 96 } 92 97 … … 102 107 IoModelFetchData(&iomodel->gridonstokes,NULL,NULL,iomodel_handle,"gridonstokes"); 103 108 IoModelFetchData(&iomodel->elements,NULL,NULL,iomodel_handle,"elements"); 109 IoModelFetchData(&iomodel->spcvelocity,NULL,NULL,iomodel_handle,"spcvelocity"); 110 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type"); 104 111 CreateSingleNodeToElementConnectivity(iomodel); 105 112 … … 108 115 if(iomodel->my_vertices[i]==1 && iomodel->singlenodetoelementconnectivity[i]!=0){ 109 116 110 if ((iomodel->gridonbed[i]) && (iomodel->gridonicesheet[i]) && (iomodel->gridonstokes[i])){ 117 //if ((iomodel->gridonbed[i]) && (iomodel->gridonicesheet[i]) && ((int)iomodel->vertices_type[i]==StokesApproximationEnum || (int)iomodel->vertices_type[i]==PattynStokesApproximationEnum)){ 118 if ((iomodel->gridonbed[i]) && (iomodel->gridonstokes[i])){ 119 //if ((iomodel->gridonbed[i]) && (iomodel->gridonicesheet[i]) && (iomodel->gridonstokes[i])){ 111 120 112 121 loads->AddObject(new Pengrid(iomodel->loadcounter+count+1,i,iomodel,DiagnosticHorizAnalysisEnum)); … … 120 129 xfree((void**)&iomodel->gridonicesheet); 121 130 xfree((void**)&iomodel->elements); 131 xfree((void**)&iomodel->spcvelocity); 132 xfree((void**)&iomodel->vertices_type); 122 133 xfree((void**)&iomodel->singlenodetoelementconnectivity); 123 134 -
issm/trunk/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp
r5596 r6141 51 51 doftype[5]=StokesApproximationEnum; 52 52 } 53 else if (vertices_type[0]==MacAyealStokesApproximationEnum){ 54 numdofs=6; 55 doftype=(int*)xmalloc(numdofs*sizeof(int)); 56 doftype[0]=MacAyealApproximationEnum; 57 doftype[1]=MacAyealApproximationEnum; 58 doftype[2]=StokesApproximationEnum; 59 doftype[3]=StokesApproximationEnum; 60 doftype[4]=StokesApproximationEnum; 61 doftype[5]=StokesApproximationEnum; 62 } 53 63 else ISSMERROR("Approximationtype %i (%s) not implemented yet for DiagnosticHoriz",(int)*vertices_type,EnumToString((int)*vertices_type)); 54 64 } -
issm/trunk/src/c/objects/Elements/Penta.cpp
r6130 r6141 1863 1863 } 1864 1864 } 1865 if(*(iomodel->elements_type+index)==MacAyealStokesApproximationEnum){ 1866 /*Create VzMacAyeal and VzStokes Enums*/ 1867 if(iomodel->vz && iomodel->gridonstokes){ 1868 for(i=0;i<6;i++) nodeinputs[i]=iomodel->vz[penta_vertex_ids[i]-1]/iomodel->yts*iomodel->gridonstokes[penta_vertex_ids[i]-1]; 1869 this->inputs->AddInput(new PentaVertexInput(VzStokesEnum,nodeinputs)); 1870 for(i=0;i<6;i++) nodeinputs[i]=iomodel->vz[penta_vertex_ids[i]-1]/iomodel->yts*(1-iomodel->gridonstokes[penta_vertex_ids[i]-1]); 1871 this->inputs->AddInput(new PentaVertexInput(VzMacAyealEnum,nodeinputs)); 1872 } 1873 else{ 1874 for(i=0;i<6;i++)nodeinputs[i]=0; 1875 this->inputs->AddInput(new PentaVertexInput(VzStokesEnum,nodeinputs)); 1876 this->inputs->AddInput(new PentaVertexInput(VzMacAyealEnum,nodeinputs)); 1877 } 1878 } 1865 1879 break; 1866 1880 -
issm/trunk/src/c/objects/Node.cpp
r6032 r6141 98 98 } 99 99 if (iomodel->vertices_type[io_index]==MacAyealPattynApproximationEnum && iomodel->gridonmacayeal[io_index]){ 100 if(!iomodel->gridonbed[io_index]){ 101 for(k=1;k<=gsize;k++) this->FreezeDof(k); 102 } 103 } 104 if (iomodel->vertices_type[io_index]==MacAyealStokesApproximationEnum && iomodel->gridonmacayeal[io_index]){ 100 105 if(!iomodel->gridonbed[io_index]){ 101 106 for(k=1;k<=gsize;k++) this->FreezeDof(k);
Note:
See TracChangeset
for help on using the changeset viewer.