source:
issm/oecreview/Archive/15392-16133/ISSM-15449-15450.diff
Last change on this file was 16134, checked in by , 12 years ago | |
---|---|
File size: 9.7 KB |
-
../trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp
10 10 11 11 void UpdateElementsDiagnosticHutter(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 12 12 13 int numberofelements;13 /*Fetch data needed: */ 14 14 bool ishutter; 15 16 /*Fetch data needed: */17 iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);18 15 iomodel->Constant(&ishutter,FlowequationIshutterEnum); 19 16 20 17 /*Now, is the flag hutter on? otherwise, do nothing: */ … … 24 21 25 22 /*Update elements: */ 26 23 int counter=0; 27 for(int i=0;i< numberofelements;i++){24 for(int i=0;i<iomodel->numberofelements;i++){ 28 25 if(iomodel->my_elements[i]){ 29 26 Element* element=(Element*)elements->GetObjectByOffset(counter); 30 27 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. -
../trunk-jpl/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp
10 10 11 11 void UpdateElementsEnthalpy(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 12 12 13 int numberofelements;14 15 /*Fetch parameters: */16 iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);17 18 13 /*Now, is the model 3d? otherwise, do nothing: */ 19 14 if(iomodel->dim==2)return; 20 15 … … 23 18 24 19 /*Update elements: */ 25 20 int counter=0; 26 for(int i=0;i< numberofelements;i++){21 for(int i=0;i<iomodel->numberofelements;i++){ 27 22 if(iomodel->my_elements[i]){ 28 23 Element* element=(Element*)elements->GetObjectByOffset(counter); 29 24 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. -
../trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
10 10 11 11 void UpdateElementsPrognostic(Elements* elements, IoModel* iomodel,int analysis_counter,int analysis_type){ 12 12 13 int numberofelements;14 13 int stabilization; 15 14 bool dakota_analysis; 16 15 bool issmbgradients; … … 18 17 bool isdelta18o; 19 18 20 19 /*Fetch data needed: */ 21 iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);22 20 iomodel->Constant(&stabilization,PrognosticStabilizationEnum); 23 21 iomodel->Constant(&dakota_analysis,QmuIsdakotaEnum); 24 22 iomodel->Constant(&ispdd,SurfaceforcingsIspddEnum); … … 27 25 28 26 /*Update elements: */ 29 27 int counter=0; 30 for(int i=0;i< numberofelements;i++){28 for(int i=0;i<iomodel->numberofelements;i++){ 31 29 if(iomodel->my_elements[i]){ 32 30 Element* element=(Element*)elements->GetObjectByOffset(counter); 33 31 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. -
../trunk-jpl/src/c/modules/ModelProcessorx/Control/UpdateElementsAndMaterialsControl.cpp
15 15 int counter; 16 16 Element *element = NULL; 17 17 Material *material = NULL; 18 int numberofelements;19 18 int num_control_type; 20 19 bool control_analysis; 21 20 22 21 /*Fetch parameters: */ 23 iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);24 22 iomodel->Constant(&control_analysis,InversionIscontrolEnum); 25 23 if(control_analysis) iomodel->Constant(&num_control_type,InversionNumControlParametersEnum); 26 24 … … 48 46 49 47 /*Update elements and materials: */ 50 48 counter=0; 51 for (i=0;i< numberofelements;i++){49 for (i=0;i<iomodel->numberofelements;i++){ 52 50 if(iomodel->my_elements[i]){ 53 51 element=(Element*)elements->GetObjectByOffset(counter); 54 52 element->InputUpdateFromIoModel(i,iomodel); //we need i to index into elements. -
../trunk-jpl/src/c/classes/Loads/Icefront.cpp
42 42 int element; 43 43 int numnodes; 44 44 int numvertices; 45 int numberofelements;46 45 47 46 /*icefront constructor data: */ 48 47 int icefront_eid; 49 48 int icefront_mparid; 50 int icefront_node_ids[NUMVERTICESQUA]; //initialize with largest size51 int icefront_vertex_ids[NUMVERTICESQUA]; //initialize with largest size52 49 int icefront_fill; 50 int *icefront_node_ids = NULL; 51 int *icefront_vertex_ids = NULL; 53 52 54 /*find parameters: */55 iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);56 57 53 /*First, retrieve element index and element type: */ 58 54 if(iomodel->dim==2){ 59 55 segment_width=4; … … 62 58 segment_width=6; 63 59 } 64 60 _assert_(iomodel->Data(DiagnosticIcefrontEnum)); 65 element=reCast<int,IssmDouble>( *(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+segment_width-2)-1); //element is in the penultimate column (node1 node2 ... elem fill)61 element=reCast<int,IssmDouble>(iomodel->Data(DiagnosticIcefrontEnum)[segment_width*i+segment_width-2]-1); 66 62 67 63 /*Build ids for hook constructors: */ 68 icefront_eid =reCast<int,IssmDouble>( *(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+segment_width-2)); //matlab indexing69 icefront_mparid =numberofelements+1; //matlab indexing64 icefront_eid = reCast<int,IssmDouble>(iomodel->Data(DiagnosticIcefrontEnum)[segment_width*i+segment_width-2]); //matlab indexing 65 icefront_mparid = iomodel->numberofelements+1; 70 66 71 67 if (in_icefront_type==MacAyeal2dIceFrontEnum || in_icefront_type==MacAyeal3dIceFrontEnum){ 68 numnodes = 2; 69 numvertices = 2; 70 icefront_node_ids = xNew<int>(numnodes); 71 icefront_vertex_ids = xNew<int>(numvertices); 72 72 icefront_node_ids[0]=iomodel->nodecounter+reCast<int>(*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+0)); 73 73 icefront_node_ids[1]=iomodel->nodecounter+reCast<int>(*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+1)); 74 74 icefront_vertex_ids[0]=reCast<int>(*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+0)); 75 75 icefront_vertex_ids[1]=reCast<int>(*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+1)); 76 76 } 77 77 else if (in_icefront_type==PattynIceFrontEnum || in_icefront_type==StokesIceFrontEnum){ 78 numnodes = 4; 79 numvertices = 4; 80 icefront_node_ids = xNew<int>(numnodes); 81 icefront_vertex_ids = xNew<int>(numvertices); 78 82 icefront_node_ids[0]=iomodel->nodecounter+reCast<int>(*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+0)); 79 83 icefront_node_ids[1]=iomodel->nodecounter+reCast<int>(*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+1)); 80 84 icefront_node_ids[2]=iomodel->nodecounter+reCast<int>(*(iomodel->Data(DiagnosticIcefrontEnum)+segment_width*i+2)); … … 86 90 } 87 91 else _error_("in_icefront_type " << EnumToStringx(in_icefront_type) << " not supported yet!"); 88 92 89 if (in_icefront_type==PattynIceFrontEnum || in_icefront_type==StokesIceFrontEnum){90 numnodes=4;91 numvertices=4;92 }93 else{94 numnodes=2;95 numvertices=2;96 }97 98 93 /*Fill*/ 99 94 icefront_fill=reCast<int>(iomodel->Data(DiagnosticIcefrontEnum)[segment_width*i+segment_width-1]); 100 95 … … 119 114 this->vertices = NULL; 120 115 this->element = NULL; 121 116 this->matpar = NULL; 117 118 /*Clean up*/ 119 xDelete<int>(icefront_node_ids); 120 xDelete<int>(icefront_vertex_ids); 122 121 } 123 124 122 /*}}}*/ 125 123 /*FUNCTION Icefront::Icefront(const char* element_type_in,Inputs* inputs_in,Matpar* matpar_in, int icefront_type, int in_analysis_type) {{{*/ 126 124 Icefront::Icefront(const char* element_type_in,Inputs* inputs_in,Matpar* matpar_in,int in_icefront_type, int in_analysis_type){ -
../trunk-jpl/src/c/classes/Loads/Riftfront.cpp
43 43 IssmDouble riftfront_friction; 44 44 IssmDouble riftfront_fractionincrement; 45 45 bool riftfront_shelf; 46 int numberofelements;47 46 int penalty_lock; 48 47 49 48 /*intermediary: */ … … 51 50 int node1 ,node2; 52 51 53 52 /*Fetch parameters: */ 54 iomodel->Constant(&numberofelements,MeshNumberofelementsEnum);55 53 iomodel->Constant(&penalty_lock,DiagnosticRiftPenaltyLockEnum); 56 54 57 55 /*Ok, retrieve all the data needed to add a penalty between the two nodes: */ … … 70 68 riftfront_node_ids[1]=iomodel->nodecounter+node2; 71 69 riftfront_elem_ids[0]=el1; 72 70 riftfront_elem_ids[1]=el2; 73 riftfront_matpar_id= numberofelements+1; //matlab indexing71 riftfront_matpar_id=iomodel->numberofelements+1; //matlab indexing 74 72 75 73 /*Hooks: */ 76 74 this->hnodes=new Hook(riftfront_node_ids,2); -
../trunk-jpl/src/c/classes/Elements/ElementHook.cpp
48 48 int material_id; 49 49 50 50 /*retrieve material_id: */ 51 iomodel->Constant(&matpar_id,MeshNumberofelementsEnum); matpar_id++;51 matpar_id = iomodel->numberofelements+1; 52 52 53 53 /*retrieve material_id*/ 54 54 material_id = element_id;
Note:
See TracBrowser
for help on using the repository browser.