Changeset 19117
- Timestamp:
- 02/18/15 11:19:14 (10 years ago)
- Location:
- issm/trunk-jpl/src/c/modules/IoModelToConstraintsx
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
r18170 r19117 29 29 xDelete<IssmDouble>(spcdata); 30 30 } 31 32 void IoModelToConstraintsx(Constraints* constraints,IoModel* iomodel,IssmDouble* spcdata,int M,int N,int analysis_type,int finite_element,int dof){ 31 void IoModelToDynamicConstraintsx(Constraints* constraints,IoModel* iomodel,int vector_enum,int analysis_type,int finite_element,int dof){ 32 33 /*intermediary: */ 34 int code,vector_layout; 35 IssmDouble *spcdata = NULL; 36 int M,N; 37 38 /*First of, find the record for the enum, and get code of data type: */ 39 iomodel->SetFilePointerToData(&code, &vector_layout,vector_enum); 40 if(code!=7)_error_("expecting a IssmDouble vector for constraints with enum " << EnumToStringx(vector_enum)); 41 if(vector_layout!=1)_error_("expecting a nodal vector for constraints with enum " << EnumToStringx(vector_enum)); 42 43 /*Fetch vector:*/ 44 iomodel->FetchData(&spcdata,&M,&N,vector_enum); 45 46 /*Call IoModelToConstraintsx*/ 47 IoModelToDynamicConstraintsx(constraints,iomodel,spcdata,M,N,analysis_type,finite_element,dof); 48 49 /*Clean up*/ 50 xDelete<IssmDouble>(spcdata); 51 } 52 53 void IoModelToConstraintsx(Constraints* constraints,IoModel* iomodel,IssmDouble* spcdata,int M,int N,int analysis_type,int finite_element,int dof){/*{{{*/ 33 54 34 55 /*intermediary: */ … … 537 558 xDelete<bool>(my_faces); 538 559 xDelete<bool>(boundaryedge); 539 } 560 }/*}}}*/ 561 void IoModelToDynamicConstraintsx(Constraints* constraints,IoModel* iomodel,IssmDouble* spcdata,int M,int N,int analysis_type,int finite_element,int dof){/*{{{*/ 562 563 /*intermediary: */ 564 int i,count; 565 566 switch(finite_element){ 567 case P1Enum: 568 /*Nothing else to do*/ 569 break; 570 default: 571 _error_("Finite element "<<EnumToStringx(finite_element)<<" not supported yet"); 572 } 573 574 count=0; 575 if(M==iomodel->numberofvertices){ 576 switch(finite_element){ 577 case P1Enum: 578 for(i=0;i<iomodel->numberofvertices;i++){ 579 if((iomodel->my_vertices[i])){ 580 if (!xIsNan<IssmDouble>(spcdata[i])){ 581 constraints->AddObject(new SpcDynamic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,analysis_type)); 582 count++; 583 } 584 } 585 } 586 break; 587 default: 588 _error_("Finite element "<<EnumToStringx(finite_element)<<" not supported yet"); 589 } 590 } 591 else{ 592 _error_("Size of spc field not supported"); 593 } 594 }/*}}}*/ -
issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.h
r17600 r19117 10 10 void IoModelToConstraintsx(Constraints* constraints,IoModel* iomodel,int vector_enum,int analysis_type,int finite_element,int dof=0); 11 11 void IoModelToConstraintsx(Constraints* constraints,IoModel* iomodel,IssmDouble* spcdata,int M,int N,int analysis_type,int finite_element,int dof=0); 12 void IoModelToDynamicConstraintsx(Constraints* constraints,IoModel* iomodel,int vector_enum,int analysis_type,int finite_element,int dof=0); 13 void IoModelToDynamicConstraintsx(Constraints* constraints,IoModel* iomodel,IssmDouble* spcdata,int M,int N,int analysis_type,int finite_element,int dof=0); 12 14 13 15 #endif /* _IOMODELTOELEMENTINPUTX_H */
Note:
See TracChangeset
for help on using the changeset viewer.