Changeset 5209
- Timestamp:
- 08/12/10 15:41:58 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r5057 r5209 34 34 IoModelFetchData(&iomodel->spcvelocity,NULL,NULL,iomodel_handle,"spcvelocity"); 35 35 IoModelFetchData(&iomodel->gridonhutter,NULL,NULL,iomodel_handle,"gridonhutter"); 36 IoModelFetchData(&iomodel->gridonmacayeal,NULL,NULL,iomodel_handle,"gridonmacayeal"); 37 IoModelFetchData(&iomodel->gridonpattyn,NULL,NULL,iomodel_handle,"gridonpattyn"); 38 IoModelFetchData(&iomodel->vertices_type,NULL,NULL,iomodel_handle,"vertices_type"); 36 39 37 40 /*Initialize counter: */ … … 42 45 if(iomodel->my_vertices[i]){ 43 46 44 if ((int)iomodel->spcvelocity[6*i+0] || (int)iomodel->gridonhutter[i]){ 45 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. 46 count++; 47 /*Start with adding spcs of coupling: zero at the border macayeal/pattyn for the appropriate dofs*/ 48 if ((int)iomodel->vertices_type[2*i+0]==MacAyealPattynApproximationEnum){ 49 /*If grionmacayeal, spc pattyn dofs: 3 & 4*/ 50 if ((int)iomodel->gridonpattyn[i]){ 51 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. 52 count++; 53 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. 54 count++; 55 } 56 else if ((int)iomodel->gridonmacayeal[i]){ 57 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. 58 count++; 59 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. 60 count++; 61 } 62 else ISSMERROR("if vertices_type is MacAyealPattyn, you shoud have gridonpattyn or gridonmacayeal"); 47 63 } 48 49 if ((int)iomodel->spcvelocity[6*i+1] || (int)iomodel->gridonhutter[i]){ 50 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 2 to vy 51 count++; 64 /*Now add the regular spcs*/ 65 else{ 66 if ((int)iomodel->spcvelocity[6*i+0] || (int)iomodel->gridonhutter[i]){ 67 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. 68 count++; 69 } 70 71 if ((int)iomodel->spcvelocity[6*i+1] || (int)iomodel->gridonhutter[i]){ 72 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 2 to vy 73 count++; 74 } 52 75 } 53 76 } … … 57 80 xfree((void**)&iomodel->spcvelocity); 58 81 xfree((void**)&iomodel->gridonhutter); 82 xfree((void**)&iomodel->gridonmacayeal); 83 xfree((void**)&iomodel->gridonpattyn); 84 xfree((void**)&iomodel->vertices_type); 59 85 60 86 /*penalty loads: */
Note:
See TracChangeset
for help on using the changeset viewer.