Changeset 5596
- Timestamp:
- 08/26/10 13:22:42 (15 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r5585 r5596 89 89 NoneApproximationEnum, 90 90 PattynApproximationEnum, 91 PattynStokesApproximationEnum, 91 92 StokesApproximationEnum, 92 93 /*}}}*/ -
issm/trunk/src/c/EnumDefinitions/EnumToString.cpp
r5585 r5596 79 79 case NoneApproximationEnum : return "NoneApproximation"; 80 80 case PattynApproximationEnum : return "PattynApproximation"; 81 case PattynStokesApproximationEnum : return "PattynStokesApproximation"; 81 82 case StokesApproximationEnum : return "StokesApproximation"; 82 83 case ObjectEnum : return "Object"; -
issm/trunk/src/c/EnumDefinitions/StringToEnum.cpp
r5585 r5596 77 77 else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum; 78 78 else if (strcmp(name,"PattynApproximation")==0) return PattynApproximationEnum; 79 else if (strcmp(name,"PattynStokesApproximation")==0) return PattynStokesApproximationEnum; 79 80 else if (strcmp(name,"StokesApproximation")==0) return StokesApproximationEnum; 80 81 else if (strcmp(name,"Object")==0) return ObjectEnum; -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r5579 r5596 83 83 else ISSMERROR("if vertices_type is MacAyealPattyn, you shoud have gridonpattyn or gridonmacayeal"); 84 84 } 85 /*Also add spcs of coupling: zero at the border pattyn/stokes for the appropriate dofs*/ 86 else if ((int)iomodel->vertices_type[i]==PattynStokesApproximationEnum){ 87 /*If grionmacayeal, spc pattyn dofs: 3 & 4*/ 88 if ((int)iomodel->gridonpattyn[i]){ 89 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. 90 count++; 91 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. 92 count++; 93 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. 94 count++; 95 if ((int)iomodel->spcvelocity[6*i+0]){ 96 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. 97 count++; 98 } 99 if ((int)iomodel->spcvelocity[6*i+1]){ 100 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. 101 count++; 102 } 103 104 } 105 else if ((int)iomodel->gridonstokes[i]){ 106 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. 107 count++; 108 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. 109 count++; 110 if ((int)iomodel->spcvelocity[6*i+0]){ 111 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. 112 count++; 113 } 114 if ((int)iomodel->spcvelocity[6*i+1]){ 115 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. 116 count++; 117 } 118 if ((int)iomodel->spcvelocity[6*i+2]){ 119 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. 120 count++; 121 } 122 } 123 else ISSMERROR("if vertices_type is PattynStokes, you shoud have gridonpattyn or gridonstokes"); 124 } 85 125 /*Now add the regular spcs*/ 86 126 else{ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
r5579 r5596 76 76 count++; 77 77 loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,PattynIceFrontEnum,DiagnosticHorizAnalysisEnum)); 78 count++; 79 } 80 else if ((int)*(iomodel->elements_type+element)==(PattynStokesApproximationEnum)){ 81 loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,PattynIceFrontEnum,DiagnosticHorizAnalysisEnum)); 82 count++; 83 loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,StokesIceFrontEnum,DiagnosticHorizAnalysisEnum)); 78 84 count++; 79 85 } -
issm/trunk/src/c/modules/ModelProcessorx/DistributeNumDofs.cpp
r5579 r5596 41 41 doftype[3]=PattynApproximationEnum; 42 42 } 43 else if (vertices_type[0]==PattynStokesApproximationEnum){ 44 numdofs=6; 45 doftype=(int*)xmalloc(numdofs*sizeof(int)); 46 doftype[0]=PattynApproximationEnum; 47 doftype[1]=PattynApproximationEnum; 48 doftype[2]=StokesApproximationEnum; 49 doftype[3]=StokesApproximationEnum; 50 doftype[4]=StokesApproximationEnum; 51 doftype[5]=StokesApproximationEnum; 52 } 43 53 else ISSMERROR("Approximationtype %i (%s) not implemented yet for DiagnosticHoriz",(int)*vertices_type,EnumToString((int)*vertices_type)); 44 54 } -
issm/trunk/src/c/objects/Elements/Penta.cpp
r5590 r5596 795 795 CreateKMatrixCouplingMacAyealPattyn( Kgg); 796 796 } 797 else if(approximation==PattynStokesApproximationEnum){ 798 CreateKMatrixDiagnosticPattyn( Kgg); 799 CreateKMatrixDiagnosticStokes( Kgg); 800 //CreateKMatrixCouplingPattynStokes( Kgg); 801 } 797 802 else ISSMERROR("Approximation %s not supported yet",EnumToString(approximation)); 798 803 } … … 876 881 CreatePVectorDiagnosticMacAyeal( pg); 877 882 CreatePVectorDiagnosticPattyn( pg); 883 } 884 else if(approximation==PattynStokesApproximationEnum){ 885 CreatePVectorDiagnosticPattyn( pg); 886 CreatePVectorDiagnosticStokes( pg); 887 //CreatePVectorDiagnosticPattynStokes( pg); 878 888 } 879 889 else ISSMERROR("Approximation %s not supported yet",EnumToString(approximation)); … … 3006 3016 /* Get node coordinates and dof list: */ 3007 3017 GetVerticesCoordinates(&xyz_list[0][0], nodes, numgrids); 3008 GetDofList(&doflist );3018 GetDofList(&doflist,StokesApproximationEnum); 3009 3019 3010 3020 /* Get gaussian points and weights. Penta is an extrusion of a Tria, we therefore … … 4182 4192 /* Get node coordinates and dof list: */ 4183 4193 GetVerticesCoordinates(&xyz_list[0][0], nodes, numgrids); 4184 GetDofList(&doflist );4194 GetDofList(&doflist,StokesApproximationEnum); 4185 4195 4186 4196 /* Get gaussian points and weights. Penta is an extrusion of a Tria, we therefore -
issm/trunk/src/c/objects/Loads/Icefront.cpp
r5585 r5596 705 705 706 706 /* Get dof list and node coordinates: */ 707 GetDofList(&doflist );707 GetDofList(&doflist,StokesApproximationEnum); 708 708 GetVerticesCoordinates(&xyz_list[0][0], nodes, numgrids); 709 709 -
issm/trunk/src/c/objects/Loads/Penpair.cpp
r5579 r5596 231 231 switch(approximation1){ 232 232 case StokesApproximationEnum: PenaltyCreateKMatrixDiagnosticStokes(Kgg,kmax); break; 233 case NoneApproximationEnum: PenaltyCreateKMatrixDiagnosticStokes(Kgg,kmax); break; 234 default: ISSMERROR("not supported yet"); 235 } 236 break; 237 case NoneApproximationEnum: 238 switch(approximation1){ 239 case StokesApproximationEnum: PenaltyCreateKMatrixDiagnosticStokes(Kgg,kmax); break; 240 case NoneApproximationEnum: PenaltyCreateKMatrixDiagnosticStokes(Kgg,kmax); break; 233 241 default: ISSMERROR("not supported yet"); 234 242 } … … 351 359 Ke[5][5]=kmax*pow((double)10.0,penalty_offset); 352 360 353 //Ke[2][2]=kmax*pow((double)10.0,penalty_offset);354 //Ke[2][6]=-kmax*pow((double)10.0,penalty_offset);355 //Ke[6][2]=-kmax*pow((double)10.0,penalty_offset);356 //Ke[6][6]=kmax*pow((double)10.0,penalty_offset);357 358 //Ke[3][3]=kmax*pow((double)10.0,penalty_offset);359 //Ke[3][7]=-kmax*pow((double)10.0,penalty_offset);360 //Ke[7][3]=-kmax*pow((double)10.0,penalty_offset);361 //Ke[7][7]=kmax*pow((double)10.0,penalty_offset);361 Ke[2][2]=kmax*pow((double)10.0,penalty_offset); 362 Ke[2][6]=-kmax*pow((double)10.0,penalty_offset); 363 Ke[6][2]=-kmax*pow((double)10.0,penalty_offset); 364 Ke[6][6]=kmax*pow((double)10.0,penalty_offset); 365 366 Ke[3][3]=kmax*pow((double)10.0,penalty_offset); 367 Ke[3][7]=-kmax*pow((double)10.0,penalty_offset); 368 Ke[7][3]=-kmax*pow((double)10.0,penalty_offset); 369 Ke[7][7]=kmax*pow((double)10.0,penalty_offset); 362 370 363 371 /*Add Ke to global matrix Kgg: */
Note:
See TracChangeset
for help on using the changeset viewer.