Changeset 23582
- Timestamp:
- 12/30/18 19:41:34 (6 years ago)
- Location:
- issm/trunk-jpl/src/c/modules/ModelProcessorx
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
r23559 r23582 422 422 vertices->common_recv_ids=common_recv_ids; 423 423 }/*}}}*/ 424 425 void CreateElementsVerticesAndMaterials(Elements* elements,Vertices* vertices,Materials* materials,IoModel* iomodel,const int nummodels,int solution_type){/*{{{*/426 427 CreateElements(elements,iomodel,nummodels);428 CreateMaterials(elements,materials,iomodel,nummodels);429 CreateVertices(elements,vertices,iomodel,solution_type);430 431 }/*}}}*/ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp
r23514 r23582 101 101 } 102 102 103 /*We might have vertex_pairing in which case, some vertices have to be cloned: 104 * penpair has 2 nodes that are poointing toward 2 vertices. 105 * The 2 vertices must be in the same cpu as the penpair*/ 106 int *vertex_pairing = NULL; 107 iomodel->FetchData(&vertex_pairing,&numvertex_pairing,NULL,"md.stressbalance.vertex_pairing"); 108 for(int i=0;i<numvertex_pairing;i++){ 109 if(my_vertices[vertex_pairing[2*i+0]-1] && !my_vertices[vertex_pairing[2*i+1]-1]){ 110 my_vertices[vertex_pairing[2*i+1]-1]=true; 103 /*We might have vertex_pairing in which case, some vertices have to be 104 * cloned: penpair has 2 nodes that are poointing toward 2 vertices. 105 * The 2 vertices must be in the same cpu as the penpair (only do this in non AMR mode, i.e. fid!=NULL)*/ 106 //if(!iomodel->dummy){ 107 int *vertex_pairing = NULL; 108 iomodel->FetchData(&vertex_pairing,&numvertex_pairing,NULL,"md.stressbalance.vertex_pairing"); 109 for(int i=0;i<numvertex_pairing;i++){ 110 if(my_vertices[vertex_pairing[2*i+0]-1] && !my_vertices[vertex_pairing[2*i+1]-1]){ 111 my_vertices[vertex_pairing[2*i+1]-1]=true; 112 } 111 113 } 112 }113 xDelete<int>(vertex_pairing);114 iomodel->FetchData(&vertex_pairing,&numvertex_pairing,NULL,"md.masstransport.vertex_pairing");115 for(int i=0;i<numvertex_pairing;i++){116 if(my_vertices[vertex_pairing[2*i+0]-1] && !my_vertices[vertex_pairing[2*i+1]-1]){117 my_vertices[vertex_pairing[2*i+1]-1]=true;114 xDelete<int>(vertex_pairing); 115 iomodel->FetchData(&vertex_pairing,&numvertex_pairing,NULL,"md.masstransport.vertex_pairing"); 116 for(int i=0;i<numvertex_pairing;i++){ 117 if(my_vertices[vertex_pairing[2*i+0]-1] && !my_vertices[vertex_pairing[2*i+1]-1]){ 118 my_vertices[vertex_pairing[2*i+1]-1]=true; 119 } 118 120 } 119 }120 xDelete<int>(vertex_pairing);121 xDelete<int>(vertex_pairing); 122 //} 121 123 122 124 /*Assign pointers to iomodel*/ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp
r23557 r23582 14 14 15 15 void ModelProcessorx(Elements** pelements, Nodes*** pnodes, Vertices** pvertices, Materials** pmaterials, Constraints*** pconstraints, Loads*** ploads, Parameters** pparameters,IoModel* iomodel,FILE* toolkitfile, char* rootpath,const int solution_enum,const int nummodels,const int* analysis_enum_list){ 16 _assert_(nummodels>0); 16 17 17 18 /*Set Verbosity once for all*/ … … 20 21 SetVerbosityLevel(verbose); 21 22 22 /*Some sanity checks*/ 23 _assert_(nummodels>0); 23 if(VerboseMProcessor()) _printf0_(" starting model processor \n"); 24 24 25 25 /*Initialize datasets*/ 26 Elements *elements = new Elements(); 27 Vertices *vertices = new Vertices(); 28 Materials *materials = new Materials(); 29 Parameters *parameters = new Parameters(); 30 26 Elements *elements = new Elements(); 27 Vertices *vertices = new Vertices(); 28 Materials *materials = new Materials(); 29 Parameters *parameters = new Parameters(); 31 30 Constraints **constraints = xNew<Constraints*>(nummodels); 32 for(int i=0;i<nummodels;i++) constraints[i] = new Constraints(); 33 Loads **loads = xNew<Loads*>(nummodels); 34 for(int i=0;i<nummodels;i++) loads[i] = new Loads(); 35 Nodes **nodes = xNew<Nodes*>(nummodels); 36 for(int i=0;i<nummodels;i++) nodes[i] = new Nodes(); 37 38 39 if(VerboseMProcessor()) _printf0_(" starting model processor \n"); 31 Loads **loads = xNew<Loads*>(nummodels); 32 Nodes **nodes = xNew<Nodes*>(nummodels); 33 for(int i = 0;i<nummodels;i++) constraints[i] = new Constraints(); 34 for(int i = 0;i<nummodels;i++) loads[i] = new Loads(); 35 for(int i = 0;i<nummodels;i++) nodes[i] = new Nodes(); 40 36 41 37 /*Partition Elements and Nodes*/ … … 43 39 44 40 /*Create elements, vertices and materials, independent of analysis_enum: */ 45 CreateElements VerticesAndMaterials(elements,vertices,materials,iomodel,nummodels,solution_enum);46 47 /*Create Parameters*/41 CreateElements(elements,iomodel,nummodels); 42 CreateMaterials(elements,materials,iomodel,nummodels); 43 CreateVertices(elements,vertices,iomodel,solution_enum); 48 44 CreateParameters(parameters,iomodel,rootpath,toolkitfile,solution_enum); 49 45 46 /*Update datasets based on each analysis (and add nodes, constrains and loads)*/ 50 47 for(int i=0;i<nummodels;i++){ 51 48 -
issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.h
r23576 r23582 12 12 13 13 /*Creation of fem datasets: general drivers*/ 14 void CreateElementsVerticesAndMaterials(Elements* elements,Vertices* vertices,Materials* materials, IoModel* iomodel,const int nummodels,int solution_type); 14 void CreateElements(Elements* elements,IoModel* iomodel,int nummodels); 15 void CreateMaterials(Elements* elements,Materials* materials,IoModel* iomodel,int nummodels); 16 void CreateVertices(Elements* elements,Vertices* vertices,IoModel* iomodel,int solution_type); 15 17 void CreateParameters(Parameters*parameters,IoModel* iomodel,char* rootpath,FILE* toolkitfile,const int solution_type); 16 18 void CreateParametersAutodiff(Parameters* parameters,IoModel* iomodel);
Note:
See TracChangeset
for help on using the changeset viewer.