Changeset 4025
- Timestamp:
- 06/06/10 21:19:16 (15 years ago)
- Location:
- issm/trunk/src/c
- Files:
-
- 1 added
- 1 deleted
- 42 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/Makefile.am
r4023 r4025 301 301 ./modules/ModelProcessorx/NodesPartitioning.cpp\ 302 302 ./modules/ModelProcessorx/SortDataSets.cpp\ 303 ./modules/ModelProcessorx/UpdateCounter .cpp\303 ./modules/ModelProcessorx/UpdateCounters.cpp\ 304 304 ./modules/ModelProcessorx/CreateDataSets.cpp\ 305 305 ./modules/ModelProcessorx/CreateParameters.cpp\ 306 306 ./modules/ModelProcessorx/CreateSingleNodeToElementConnectivity.cpp\ 307 307 ./modules/ModelProcessorx/CreateNumberNodeToElementConnectivity.cpp\ 308 ./modules/ModelProcessorx/CreateElements MaterialsAndVertices.cpp\308 ./modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp\ 309 309 ./modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp\ 310 310 ./modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp \ … … 770 770 ./modules/ModelProcessorx/Partitioning.cpp\ 771 771 ./modules/ModelProcessorx/SortDataSets.cpp\ 772 ./modules/ModelProcessorx/UpdateCounter .cpp\772 ./modules/ModelProcessorx/UpdateCounters.cpp\ 773 773 ./modules/ModelProcessorx/CreateDataSets.cpp\ 774 774 ./modules/ModelProcessorx/CreateParameters.cpp\ 775 775 ./modules/ModelProcessorx/CreateSingleNodeToElementConnectivity.cpp\ 776 776 ./modules/ModelProcessorx/CreateNumberNodeToElementConnectivity.cpp\ 777 ./modules/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp\ 777 ./modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp\ 778 ./modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp\ 778 779 ./modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp \ 779 780 ./modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp\ 781 ./modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp\ 780 782 ./modules/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp\ 781 783 ./modules/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp \ 782 784 ./modules/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp\ 785 ./modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp\ 783 786 ./modules/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp\ 784 787 ./modules/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp \ 785 788 ./modules/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp\ 789 ./modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp\ 786 790 ./modules/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp\ 787 791 ./modules/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp \ 788 792 ./modules/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp\ 793 ./modules/ModelProcessorx/DiagnosticStokes/CreateNodesDiagnosticStokes.cpp\ 789 794 ./modules/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp\ 790 795 ./modules/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp \ 791 796 ./modules/ModelProcessorx/SlopeCompute/CreateLoadsSlopeCompute.cpp\ 797 ./modules/ModelProcessorx/SlopeCompute/CreateNodesSlopeCompute.cpp\ 792 798 ./modules/ModelProcessorx/Control/CreateParametersControl.cpp\ 793 799 ./modules/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp\ 794 800 ./modules/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp\ 795 801 ./modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp\ 802 ./modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp\ 796 803 ./modules/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp\ 797 804 ./modules/ModelProcessorx/Melting/CreateConstraintsMelting.cpp\ 798 805 ./modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp\ 806 ./modules/ModelProcessorx/Melting/CreateNodesMelting.cpp\ 799 807 ./modules/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp\ 800 808 ./modules/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp\ 801 809 ./modules/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp\ 810 ./modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp\ 802 811 ./modules/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp\ 803 812 ./modules/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp\ 804 813 ./modules/ModelProcessorx/Prognostic2/CreateLoadsPrognostic2.cpp\ 814 ./modules/ModelProcessorx/Prognostic2/CreateNodesPrognostic2.cpp\ 805 815 ./modules/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp\ 806 816 ./modules/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp\ 807 817 ./modules/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp\ 818 ./modules/ModelProcessorx/Balancedthickness/CreateNodesBalancedthickness.cpp\ 808 819 ./modules/ModelProcessorx/Balancedthickness2/CreateElementsNodesAndMaterialsBalancedthickness2.cpp\ 809 820 ./modules/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp\ 810 821 ./modules/ModelProcessorx/Balancedthickness2/CreateLoadsBalancedthickness2.cpp\ 822 ./modules/ModelProcessorx/Balancedthickness2/CreateNodesBalancedthickness2.cpp\ 811 823 ./modules/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp\ 812 824 ./modules/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp\ 813 825 ./modules/ModelProcessorx/Balancedvelocities/CreateLoadsBalancedvelocities.cpp\ 826 ./modules/ModelProcessorx/Balancedvelocities/CreateNodesBalancedvelocities.cpp\ 814 827 ./modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp\ 815 828 ./modules/VerticesDofx/VerticesDofx.h\ -
issm/trunk/src/c/modules/Dux/Dux.cpp
r3967 r4025 11 11 #include "../SurfaceAreax/SurfaceAreax.h" 12 12 13 void Dux( Vec* pdu_g, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,14 13 void Dux( Vec* pdu_g, DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, 14 DataSet* materials, Parameters* parameters,int analysis_type,int sub_analysis_type){ 15 15 16 16 /*Intermediary*/ -
issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateNodesBalancedthickness.cpp
r4005 r4025 46 46 47 47 /*Add node to nodes dataset: */ 48 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel ));48 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,BalancedthicknessAnalysisEnum)); 49 49 50 50 } -
issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/UpdateElementsBalancedthickness.cpp
r4017 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void UpdateElementsBalancedthickness(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter ){15 void UpdateElementsBalancedthickness(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){ 16 16 17 17 /*Intermediary*/ … … 45 45 if(iomodel->my_elements[i]){ 46 46 element=(Element*)elements->GetObjectByOffset(counter); 47 element->Update(i,iomodel,analysis_counter ); //we need i to index into elements.47 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. 48 48 counter++; 49 49 } -
issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness2/CreateNodesBalancedthickness2.cpp
r4005 r4025 16 16 17 17 /*Intermediary*/ 18 int i ;18 int i,j; 19 19 bool continuous_galerkin=false; 20 int vertex_index; 21 int node_index; 20 22 21 23 /*DataSets: */ … … 58 60 59 61 /*Add node to nodes dataset: */ 60 nodes->AddObject(new Node(iomodel->nodecounter+i+1,vertex_index,node_index,iomodel ));62 nodes->AddObject(new Node(iomodel->nodecounter+i+1,vertex_index,node_index,iomodel,Balancedthickness2AnalysisEnum)); 61 63 62 64 } -
issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness2/UpdateElementsBalancedthickness2.cpp
r4017 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void UpdateElementsBalancedthickness2(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter ){15 void UpdateElementsBalancedthickness2(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){ 16 16 17 17 /*Intermediary*/ … … 42 42 if(iomodel->my_elements[i]){ 43 43 element=(Element*)elements->GetObjectByOffset(counter); 44 element->Update(i,iomodel,analysis_counter ); //we need i to index into elements.44 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. 45 45 counter++; 46 46 } -
issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/CreateNodesBalancedvelocities.cpp
r4005 r4025 46 46 47 47 /*Add node to nodes dataset: */ 48 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel ));48 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,BalancedvelocitiesAnalysisEnum)); 49 49 50 50 } -
issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/UpdateElementsBalancedvelocities.cpp
r4017 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void UpdateElementsBalancedvelocities(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter ){15 void UpdateElementsBalancedvelocities(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){ 16 16 17 17 /*Intermediary*/ … … 44 44 if(iomodel->my_elements[i]){ 45 45 element=(Element*)elements->GetObjectByOffset(counter); 46 element->Update(i,iomodel,analysis_counter ); //we need i to index into elements.46 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. 47 47 counter++; 48 48 } -
issm/trunk/src/c/modules/ModelProcessorx/Control/CreateParametersControl.cpp
r3913 r4025 12 12 #include "../ModelProcessorx.h" 13 13 14 void CreateParametersControl(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle ){14 void CreateParametersControl(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type){ 15 15 16 16 int i; -
issm/trunk/src/c/modules/ModelProcessorx/CreateDataSets.cpp
r4002 r4025 33 33 CreateConstraintsDiagnosticHoriz(pconstraints,iomodel,iomodel_handle); 34 34 CreateLoadsDiagnosticHoriz(ploads,iomodel,iomodel_handle); 35 UpdateElementsDiagnosticHoriz(elements,iomodel,iomodel_handle,analysis_counter );35 UpdateElementsDiagnosticHoriz(elements,iomodel,iomodel_handle,analysis_counter,analysis_type); 36 36 break; 37 37 … … 40 40 CreateConstraintsDiagnosticVert(pconstraints,iomodel,iomodel_handle); 41 41 CreateLoadsDiagnosticVert(ploads,iomodel,iomodel_handle); 42 UpdateElementsDiagnosticVert(elements,iomodel,iomodel_handle,analysis_counter );42 UpdateElementsDiagnosticVert(elements,iomodel,iomodel_handle,analysis_counter,analysis_type); 43 43 break; 44 44 … … 47 47 CreateConstraintsDiagnosticStokes(pconstraints,iomodel,iomodel_handle); 48 48 CreateLoadsDiagnosticStokes(ploads,iomodel,iomodel_handle); 49 UpdateElementsDiagnosticStokes(elements,iomodel,iomodel_handle,analysis_counter );49 UpdateElementsDiagnosticStokes(elements,iomodel,iomodel_handle,analysis_counter,analysis_type); 50 50 break; 51 51 … … 54 54 CreateConstraintsDiagnosticHutter(pconstraints,iomodel,iomodel_handle); 55 55 CreateLoadsDiagnosticHutter(ploads,iomodel,iomodel_handle); 56 UpdateElementsDiagnosticHutter(elements,iomodel,iomodel_handle,analysis_counter );56 UpdateElementsDiagnosticHutter(elements,iomodel,iomodel_handle,analysis_counter,analysis_type); 57 57 break; 58 58 59 case Slope computeAnalysisEnum:59 case SlopeComputeAnalysisEnum: 60 60 CreateNodesSlopeCompute(pnodes, iomodel,iomodel_handle); 61 61 CreateConstraintsSlopeCompute(pconstraints,iomodel,iomodel_handle); 62 62 CreateLoadsSlopeCompute(ploads,iomodel,iomodel_handle); 63 UpdateElementsSlopeCompute(elements,iomodel,iomodel_handle,analysis_counter );63 UpdateElementsSlopeCompute(elements,iomodel,iomodel_handle,analysis_counter,analysis_type); 64 64 break; 65 65 … … 68 68 CreateConstraintsThermal(pconstraints,iomodel,iomodel_handle); 69 69 CreateLoadsThermal(ploads,iomodel,iomodel_handle); 70 UpdateElementsThermal(elements,iomodel,iomodel_handle,analysis_counter );70 UpdateElementsThermal(elements,iomodel,iomodel_handle,analysis_counter,analysis_type); 71 71 break; 72 72 … … 75 75 CreateConstraintsMelting(pconstraints,iomodel,iomodel_handle); 76 76 CreateLoadsMelting(ploads,iomodel,iomodel_handle); 77 UpdateElementsMelting(elements,iomodel,iomodel_handle,analysis_counter );77 UpdateElementsMelting(elements,iomodel,iomodel_handle,analysis_counter,analysis_type); 78 78 break; 79 79 … … 82 82 CreateConstraintsPrognostic(pconstraints,iomodel,iomodel_handle); 83 83 CreateLoadsPrognostic(ploads,iomodel,iomodel_handle); 84 UpdateElementsPrognostic(elements,iomodel,iomodel_handle,analysis_counter );84 UpdateElementsPrognostic(elements,iomodel,iomodel_handle,analysis_counter,analysis_type); 85 85 break; 86 86 … … 89 89 CreateConstraintsPrognostic2(pconstraints,iomodel,iomodel_handle); 90 90 CreateLoadsPrognostic2(ploads,iomodel,iomodel_handle); 91 UpdateElementsPrognostic2(elements,iomodel,iomodel_handle,analysis_counter );91 UpdateElementsPrognostic2(elements,iomodel,iomodel_handle,analysis_counter,analysis_type); 92 92 break; 93 93 … … 96 96 CreateConstraintsBalancedthickness(pconstraints,iomodel,iomodel_handle); 97 97 CreateLoadsBalancedthickness(ploads,iomodel,iomodel_handle); 98 UpdateElementsBalancedthickness(elements,iomodel,iomodel_handle,analysis_counter );98 UpdateElementsBalancedthickness(elements,iomodel,iomodel_handle,analysis_counter,analysis_type); 99 99 break; 100 100 … … 103 103 CreateConstraintsBalancedthickness2(pconstraints,iomodel,iomodel_handle); 104 104 CreateLoadsBalancedthickness2(ploads,iomodel,iomodel_handle); 105 UpdateElementsBalancedthickness2(elements,iomodel,iomodel_handle,analysis_counter );105 UpdateElementsBalancedthickness2(elements,iomodel,iomodel_handle,analysis_counter,analysis_type); 106 106 break; 107 107 case BalancedvelocitiesAnalysisEnum: … … 109 109 CreateConstraintsBalancedvelocities(pconstraints,iomodel,iomodel_handle); 110 110 CreateLoadsBalancedvelocities(ploads,iomodel,iomodel_handle); 111 UpdateElementsBalancedvelocities(elements,iomodel,iomodel_handle,analysis_counter );111 UpdateElementsBalancedvelocities(elements,iomodel,iomodel_handle,analysis_counter,analysis_type); 112 112 break; 113 113 default: … … 116 116 117 117 /*Generate objects that are not dependent on any analysis_type: */ 118 CreateParameters(pparameters,iomodel,iomodel_handle );118 CreateParameters(pparameters,iomodel,iomodel_handle,analysis_type); 119 119 120 120 /*Sort datasets: */ 121 SortDataSets( elements,nodes,vertices, loads, materials, constraints,parameters);121 SortDataSets(pelements,pnodes,pvertices, ploads, pmaterials, pconstraints, pparameters); 122 122 123 123 /*Update counters, because we have created more nodes, loads and constraints, and ids for objects created in next call to CreateDataSets -
issm/trunk/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp
r4002 r4025 3 3 */ 4 4 5 #include "../../ ../DataSet/DataSet.h"6 #include "../../ ../toolkits/toolkits.h"7 #include "../../ ../io/io.h"8 #include "../../ ../EnumDefinitions/EnumDefinitions.h"9 #include "../../ ../objects/objects.h"10 #include "../../ ../shared/shared.h"11 #include "../ ../MeshPartitionx/MeshPartitionx.h"12 #include "../../ ../include/include.h"13 #include ". ./ModelProcessorx.h"5 #include "../../DataSet/DataSet.h" 6 #include "../../toolkits/toolkits.h" 7 #include "../../io/io.h" 8 #include "../../EnumDefinitions/EnumDefinitions.h" 9 #include "../../objects/objects.h" 10 #include "../../shared/shared.h" 11 #include "../MeshPartitionx/MeshPartitionx.h" 12 #include "../../include/include.h" 13 #include "./ModelProcessorx.h" 14 14 15 15 void CreateElementsVerticesAndMaterials(DataSet** pelements,DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle,int nummodels){ … … 31 31 materials = new DataSet(MaterialsEnum); 32 32 33 /*Partition elements and vertices and nodes: */34 Partitioning(&iomodel->my_elements, &iomodel->my_vertices, &iomodel->my_nodes, &iomodel->my_bordervertices, iomodel, iomodel_handle);35 36 33 /*First, partition elements and vertices. Nodes will partitioned on a per analysis_type basis. If partitining already done, ignore: */ 37 34 ElementsAndVerticesPartitioning(&iomodel->my_elements, &iomodel->my_vertices, &iomodel->my_bordervertices, iomodel, iomodel_handle); -
issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp
r4002 r4025 10 10 #include "../MeshPartitionx/MeshPartitionx.h" 11 11 #include "../../io/io.h" 12 #include "./ModelProcessorx.h" 12 13 13 void CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle ){14 void CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type){ 14 15 15 16 int i; … … 32 33 if (iomodel->dim==2) parameters->AddObject(new IntParam(DimEnum,2)); 33 34 else parameters->AddObject(new IntParam(DimEnum,3)); 34 parameters->AddObject(new IntParam(AnalysisTypeEnum,iomodel->analysis_type));35 parameters->AddObject(new IntParam(SubAnalysisTypeEnum,iomodel->sub_analysis_type));36 35 parameters->AddObject(new StringParam(OutputFileNameEnum,iomodel->outputfilename)); 37 36 parameters->AddObject(new BoolParam(IsHutterEnum,iomodel->ishutter)); … … 68 67 /*Deal with more complex parameters*/ 69 68 if ( 70 iomodel->analysis_type==Prognostic2AnalysisEnum ||71 iomodel->analysis_type==Balancedthickness2AnalysisEnum69 analysis_type==Prognostic2AnalysisEnum || 70 analysis_type==Balancedthickness2AnalysisEnum 72 71 ) 73 72 parameters->AddObject(new IntParam(NumberOfNodesEnum,3*iomodel->numberofelements)); 74 73 else parameters->AddObject(new IntParam(NumberOfNodesEnum,iomodel->numberofvertices)); 75 74 76 DistributeNumDofs(&numberofdofspernode, iomodel->analysis_type,iomodel->sub_analysis_type);75 DistributeNumDofs(&numberofdofspernode,analysis_type); 77 76 parameters->AddObject(new IntParam(NumberOfDofsPerNodeEnum,numberofdofspernode)); 78 77 … … 116 115 117 116 /*Before returning, create parameters in case we are running Qmu or control types runs: */ 118 CreateParametersControl(¶meters,iomodel,iomodel_handle );119 CreateParametersQmu(¶meters,iomodel,iomodel_handle );117 CreateParametersControl(¶meters,iomodel,iomodel_handle,analysis_type); 118 CreateParametersQmu(¶meters,iomodel,iomodel_handle,analysis_type); 120 119 121 120 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r4008 r4025 79 79 count++; 80 80 81 constraints->AddObject(new Rgb(iomodel->constraintcounter+count+1,node1,node2,2 ),DiagnosticHorizAnalysisEnum); //add count'th Rgb on dof 1 between node1 and node281 constraints->AddObject(new Rgb(iomodel->constraintcounter+count+1,node1,node2,2,DiagnosticHorizAnalysisEnum)); //add count'th Rgb on dof 1 between node1 and node2 82 82 83 83 } -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp
r4005 r4025 68 68 xfree((void**)&iomodel->uppernodes); 69 69 70 /*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these 71 * datasets, it will not be redone: */ 72 nodes->Presort(); 70 cleanup_and_return: 73 71 74 72 /*Assign output pointer: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
r4016 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void UpdateElementsDiagnosticHoriz(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter ){15 void UpdateElementsDiagnosticHoriz(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){ 16 16 17 17 /*Intermediary*/ … … 55 55 if(iomodel->my_elements[i]){ 56 56 element=(Element*)elements->GetObjectByOffset(counter); 57 element->Update(i,iomodel,analysis_counter ); //we need i to index into elements.57 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. 58 58 } 59 59 } 60 cleanup_and_return: 60 61 61 62 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp
r4005 r4025 52 52 53 53 /*Add node to nodes dataset: */ 54 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel ));54 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,DiagnosticHutterAnalysisEnum)); 55 55 56 56 } -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp
r4017 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void UpdateElementsDiagnosticHutter(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter ){15 void UpdateElementsDiagnosticHutter(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){ 16 16 17 17 /*Intermediary*/ … … 30 30 IoModelFetchData(&iomodel->gridonsurface,NULL,NULL,iomodel_handle,"gridonsurface"); 31 31 IoModelFetchData(&iomodel->gridonbed,NULL,NULL,iomodel_handle,"gridonbed"); 32 IoModelFetchData(&iomodel->uppergrids,NULL,NULL,iomodel_handle,"uppergrids");33 32 IoModelFetchData(&iomodel->drag_coefficient,NULL,NULL,iomodel_handle,"drag_coefficient"); 34 33 IoModelFetchData(&iomodel->rheology_B,NULL,NULL,iomodel_handle,"rheology_B"); … … 47 46 if(iomodel->my_elements[i]){ 48 47 element=(Element*)elements->GetObjectByOffset(counter); 49 element->Update(i,iomodel,analysis_counter ); //we need i to index into elements.48 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. 50 49 counter++; 51 50 } 52 51 } 52 cleanup_and_return: 53 53 54 54 /*Free data: */ … … 59 59 xfree((void**)&iomodel->gridonsurface); 60 60 xfree((void**)&iomodel->gridonbed); 61 xfree((void**)&iomodel->uppergrids);62 61 xfree((void**)&iomodel->drag_coefficient); 63 62 xfree((void**)&iomodel->rheology_B); -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp
r4006 r4025 61 61 62 62 /*Create and add load: */ 63 loads->AddObject(new Icefront(iomodel->loadcounter+count er+1,i,iomodel,DiagnosticStokesAnalysisEnum));63 loads->AddObject(new Icefront(iomodel->loadcounter+count+1,i,iomodel,DiagnosticStokesAnalysisEnum)); 64 64 count++; 65 65 … … 85 85 if ((iomodel->gridonbed[i]) && (iomodel->gridonicesheet[i]) && (iomodel->gridonstokes[i])){ 86 86 87 loads->AddObject(new Pengrid(iomodel->loadcounter+count er+1,i,iomodel,DiagnosticStokesAnalysisEnum));87 loads->AddObject(new Pengrid(iomodel->loadcounter+count+1,i,iomodel,DiagnosticStokesAnalysisEnum)); 88 88 count++; 89 89 } -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateNodesDiagnosticStokes.cpp
r4005 r4025 50 50 51 51 /*Add node to nodes dataset: */ 52 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel ));52 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,DiagnosticStokesAnalysisEnum)); 53 53 54 54 } -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/UpdateElementsDiagnosticStokes.cpp
r4000 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void UpdateElementsDiagnosticHoriz(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter ){15 void UpdateElementsDiagnosticHoriz(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){ 16 16 17 17 /*Intermediary*/ … … 55 55 56 56 element=(Element*)elements->GetObjectByOffset(i); 57 element->Update(i omodel,analysis_counter);57 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. 58 58 59 59 } 60 61 cleanup_and_return: 60 62 61 63 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp
r4005 r4025 47 47 48 48 /*Add node to nodes dataset: */ 49 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel ));49 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,DiagnosticVertAnalysisEnum)); 50 50 51 51 } -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp
r4017 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void UpdateElementsDiagnosticVert(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter ){15 void UpdateElementsDiagnosticVert(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){ 16 16 17 17 /*Intermediary*/ … … 44 44 if(iomodel->my_elements[i]){ 45 45 element=(Element*)elements->GetObjectByOffset(counter); 46 element->Update(i,iomodel,analysis_counter ); //we need i to index into elements.46 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. 47 47 counter++; 48 48 } 49 49 } 50 cleanup_and_return: 50 51 51 52 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp
r4005 r4025 46 46 47 47 /*Add node to nodes dataset: */ 48 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel ));48 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,MeltingAnalysisEnum)); 49 49 50 50 } -
issm/trunk/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp
r4017 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void UpdateElementsMelting(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter ){15 void UpdateElementsMelting(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){ 16 16 17 17 /*Intermediary*/ … … 39 39 IoModelFetchData(&iomodel->rheology_n,NULL,NULL,iomodel_handle,"rheology_n"); 40 40 IoModelFetchData(&iomodel->accumulation_rate,NULL,NULL,iomodel_handle,"accumulation_rate"); 41 IoModelFetchData(&iomodel->melting_rate x,NULL,NULL,iomodel_handle,"melting_rate");41 IoModelFetchData(&iomodel->melting_rate,NULL,NULL,iomodel_handle,"melting_rate"); 42 42 IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,"pressure"); 43 43 IoModelFetchData(&iomodel->upperelements,NULL,NULL,iomodel_handle,"upperelements"); … … 49 49 if(iomodel->my_elements[i]){ 50 50 element=(Element*)elements->GetObjectByOffset(counter); 51 element->Update(i,iomodel,analysis_counter ); //we need i to index into elements.51 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. 52 52 counter++; 53 53 } 54 54 } 55 55 56 cleanup_and_return: 56 57 /*Free data: */ 57 58 xfree((void**)&iomodel->elements); -
issm/trunk/src/c/modules/ModelProcessorx/ModelProcessorx.h
r4009 r4025 16 16 void CreateDataSets(DataSet** pelements,DataSet** pnodes,DataSet** pvertices, DataSet** pmaterials, DataSet** pconstraints, DataSet** ploads,Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type,int nummodels,int analysis_counter); 17 17 void CreateElementsVerticesAndMaterials(DataSet** pelements,DataSet** pvertices,DataSet** pmaterials, IoModel* iomodel,ConstDataHandle iomodel_handle,int nummodels); 18 void CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle );19 void CreateParametersControl(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle );20 void CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle );18 void CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type); 19 void CreateParametersControl(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type); 20 void CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type); 21 21 22 22 /*Creation of fem datasets: specialised drivers: */ … … 26 26 void CreateConstraintsDiagnosticHoriz(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle); 27 27 void CreateLoadsDiagnosticHoriz(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle); 28 void UpdateElementsDiagnosticHoriz(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle );28 void UpdateElementsDiagnosticHoriz(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 29 29 30 30 /*diagnostic vertical*/ 31 31 void CreateNodesDiagnosticVert(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle); 32 32 void CreateConstraintsDiagnosticVert(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle); 33 void CreateLoadsDiagnosticVert(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);34 void UpdateElements (DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);33 void CreateLoadsDiagnosticVert(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle); 34 void UpdateElementsDiagnosticVert(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 35 35 36 36 /*diagnostic hutter*/ 37 37 void CreateNodesDiagnosticHutter(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle); 38 38 void CreateConstraintsDiagnosticHutter(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle); 39 void CreateLoadsDiagnosticHutter(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);40 void UpdateElements (DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);39 void CreateLoadsDiagnosticHutter(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle); 40 void UpdateElementsDiagnosticHutter(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 41 41 42 42 /*diagnostic stokes*/ 43 43 void CreateNodesDiagnosticStokes(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle); 44 44 void CreateConstraintsDiagnosticStokes(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle); 45 void CreateLoadsDiagnosticStokes(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);46 void UpdateElements (DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);45 void CreateLoadsDiagnosticStokes(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle); 46 void UpdateElementsDiagnosticStokes(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 47 47 48 48 /*slope compute*/ 49 49 void CreateNodesSlopeCompute(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle); 50 50 void CreateConstraintsSlopeCompute(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle); 51 void CreateLoadsSlopeCompute(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);52 void UpdateElements (DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);51 void CreateLoadsSlopeCompute(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle); 52 void UpdateElementsSlopeCompute(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 53 53 54 54 /*thermal:*/ 55 55 void CreateNodesThermal(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle); 56 56 void CreateConstraintsThermal(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle); 57 void CreateLoadsThermal(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);58 void UpdateElements (DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);57 void CreateLoadsThermal(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle); 58 void UpdateElementsThermal(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 59 59 60 60 /*melting:*/ 61 61 void CreateNodesMelting(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle); 62 62 void CreateConstraintsMelting(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle); 63 void CreateLoadsMelting(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);64 void UpdateElements (DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);63 void CreateLoadsMelting(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle); 64 void UpdateElementsMelting(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 65 65 66 66 /*prognostic:*/ 67 67 void CreateNodesPrognostic(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle); 68 68 void CreateConstraintsPrognostic(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle); 69 void CreateLoadsPrognostic(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);70 void UpdateElements (DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);69 void CreateLoadsPrognostic(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle); 70 void UpdateElementsPrognostic(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 71 71 72 72 /*prognostic2:*/ 73 73 void CreateNodesPrognostic2(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle); 74 74 void CreateConstraintsPrognostic2(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle); 75 void CreateLoadsPrognostic2(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);76 void UpdateElements (DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);75 void CreateLoadsPrognostic2(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle); 76 void UpdateElementsPrognostic2(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 77 77 78 78 /*balancedthickness:*/ 79 79 void CreateNodesBalancedthickness(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle); 80 80 void CreateConstraintsBalancedthickness(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle); 81 void CreateLoadsBalancedthickness(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);82 void UpdateElements (DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);81 void CreateLoadsBalancedthickness(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle); 82 void UpdateElementsBalancedthickness(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 83 83 84 84 void CreateNodesBalancedthickness2(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle); 85 85 void CreateConstraintsBalancedthickness2(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle); 86 void CreateLoadsBalancedthickness2(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);87 void UpdateElements (DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);86 void CreateLoadsBalancedthickness2(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle); 87 void UpdateElementsBalancedthickness2(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 88 88 89 89 /*balancedvelocities:*/ 90 90 void CreateNodesBalancedvelocities(DataSet** pnodes,IoModel* iomodel_handle,ConstDataHandle iomodel_handle); 91 91 void CreateConstraintsBalancedvelocities(DataSet** pconstraints,IoModel* iomodel,ConstDataHandle iomodel_handle); 92 void CreateLoadsBalancedvelocities(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle);93 void UpdateElements (DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle);92 void CreateLoadsBalancedvelocities(DataSet** ploads, IoModel* iomodel, ConstDataHandle iomodel_handle); 93 void UpdateElementsBalancedvelocities(DataSet* elements,IoModel* iomodel_handle,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type); 94 94 95 95 /*partitioning: */ … … 103 103 /*Diverse: */ 104 104 void SortDataSets(DataSet** pelements,DataSet** pnodes,DataSet** pvertices, DataSet** ploads, DataSet** pmaterials, DataSet** pconstraints, Parameters** pparameters); 105 void UpdateCounter (IoModel* iomodel,DataSet** pnodes,DataSet** ploads, DataSet** pconstraints);105 void UpdateCounters(IoModel* iomodel,DataSet** pnodes,DataSet** ploads, DataSet** pconstraints); 106 106 107 107 #endif -
issm/trunk/src/c/modules/ModelProcessorx/NodesPartitioning.cpp
r3984 r4025 18 18 #include "../ModelProcessorx/ModelProcessorx.h" 19 19 20 void DiscontinuousGalerkinNodesPartitioning(bool* pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle);20 void DiscontinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle); 21 21 void ContinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle); 22 22 … … 27 27 28 28 /*Now, depending on whether we are running galerkin discontinous or continuous elements, carry out a different partition of the nodes: */ 29 if(continuous==true) {29 if(continuous==true) 30 30 ContinuousGalerkinNodesPartitioning(pmy_nodes,my_elements, my_vertices, my_bordervertices, iomodel, iomodel_handle); 31 31 else … … 48 48 49 49 50 void DiscontinuousGalerkinNodesPartitioning(bool* pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle){50 void DiscontinuousGalerkinNodesPartitioning(bool** pmy_nodes,bool* my_elements, bool* my_vertices, bool* my_bordervertices, IoModel* iomodel, ConstDataHandle iomodel_handle){ 51 51 52 52 /*each element has it own nodes (as many as vertices) + additional nodes from neighbouring elements for each edge. This yields to a very different partition for -
issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp
r4005 r4025 46 46 47 47 /*Add node to nodes dataset: */ 48 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel ));48 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,PrognosticAnalysisEnum)); 49 49 50 50 } -
issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
r4017 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void UpdateElementsPrognostic(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter ){15 void UpdateElementsPrognostic(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){ 16 16 17 17 /*Intermediary*/ … … 46 46 if(iomodel->my_elements[i]){ 47 47 element=(Element*)elements->GetObjectByOffset(counter); 48 element->Update(i,iomodel,analysis_counter ); //we need i to index into elements.48 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. 49 49 counter++; 50 50 } -
issm/trunk/src/c/modules/ModelProcessorx/Prognostic2/CreateNodesPrognostic2.cpp
r4005 r4025 16 16 17 17 /*Intermediary*/ 18 int i ;18 int i,j; 19 19 int vertex_index; 20 20 int node_index; … … 59 59 60 60 /*Add node to nodes dataset: */ 61 nodes->AddObject(new Node(iomodel->nodecounter+node_index+1,vertex_index,node_index,iomodel ));61 nodes->AddObject(new Node(iomodel->nodecounter+node_index+1,vertex_index,node_index,iomodel,Prognostic2AnalysisEnum)); 62 62 63 63 } -
issm/trunk/src/c/modules/ModelProcessorx/Prognostic2/UpdateElementsPrognostic2.cpp
r4017 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void UpdateElementsPrognostic2(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter ){15 void UpdateElementsPrognostic2(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){ 16 16 17 17 /*Intermediary*/ … … 41 41 if(iomodel->my_elements[i]){ 42 42 element=(Element*)elements->GetObjectByOffset(counter); 43 element->Update(i,iomodel,analysis_counter ); //we need i to index into elements.43 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. 44 44 counter++; 45 45 } -
issm/trunk/src/c/modules/ModelProcessorx/Qmu/CreateParametersQmu.cpp
r3913 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle ){15 void CreateParametersQmu(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_type){ 16 16 17 17 int i,j,k; … … 126 126 127 127 /*Partition elements and vertices and nodes: */ 128 Partitioning(&iomodel->my_elements, &iomodel->my_vertices, &iomodel->my_nodes, &iomodel->my_bordervertices, iomodel,iomodel_handle);128 ElementsAndVerticesPartitioning(&iomodel->my_elements,&iomodel->my_vertices, &iomodel->my_bordervertices, iomodel,iomodel_handle); 129 129 130 130 dpart=(double*)xmalloc(iomodel->numberofvertices*sizeof(double)); -
issm/trunk/src/c/modules/ModelProcessorx/SlopeCompute/UpdateElementsSlopeCompute.cpp
r4017 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void UpdateElementsSlopeCompute(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter ){15 void UpdateElementsSlopeCompute(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){ 16 16 17 17 /*Intermediary*/ … … 37 37 if(iomodel->my_elements[i]){ 38 38 element=(Element*)elements->GetObjectByOffset(counter); 39 element->Update(i,iomodel,analysis_counter ); //we need i to index into elements.39 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. 40 40 counter++; 41 41 } -
issm/trunk/src/c/modules/ModelProcessorx/SortDataSets.cpp
r4002 r4025 18 18 void SortDataSets(DataSet** pelements,DataSet** pnodes,DataSet** pvertices, DataSet** ploads, DataSet** pmaterials, DataSet** pconstraints, Parameters** pparameters){ 19 19 20 DataSet* elements=NULL; 21 DataSet* nodes=NULL; 22 DataSet* vertices=NULL; 23 DataSet* loads=NULL; 24 DataSet* materials=NULL; 25 DataSet* constraints=NULL; 26 Parameters* parameters=NULL; 27 28 /*Recover pointers: */ 29 elements=*pelements; 30 nodes=*pnodes; 31 vertices=*pvertices; 32 loads=*ploads; 33 materials=*pmaterials; 34 constraints=*pconstraints; 35 parameters=*pparameters; 36 20 37 /*All our datasets are already ordered by ids. Set presort flag so that later on, when sorting is requested on these 21 38 * datasets, it will not be redone: */ 22 39 23 if( *pelements)*pelements->Presort();24 if( *pnodes)*pnodes->Presort();25 if( *pvertices)*pvertices->Presort();26 if( *pmaterials)*pmaterials->Presort();27 if( *ploads)*ploads->Presort();28 if( *pconstraints)*pconstraints->Presort();29 if( *pparameters)*pparameters->Presort();40 if(elements)elements->Presort(); 41 if(nodes)nodes->Presort(); 42 if(vertices)vertices->Presort(); 43 if(loads)loads->Presort(); 44 if(materials)materials->Presort(); 45 if(constraints)constraints->Presort(); 46 if(parameters)parameters->Presort(); 30 47 31 48 } -
issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp
r4005 r4025 46 46 47 47 /*Add node to nodes dataset: */ 48 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel ));48 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,iomodel,ThermalAnalysisEnum)); 49 49 50 50 } -
issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp
r4017 r4025 13 13 #include "../ModelProcessorx.h" 14 14 15 void UpdateElementsThermal(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter ){15 void UpdateElementsThermal(DataSet* elements, IoModel* iomodel,ConstDataHandle iomodel_handle,int analysis_counter,int analysis_type){ 16 16 17 17 /*Intermediary*/ … … 50 50 if(iomodel->my_elements[i]){ 51 51 element=(Element*)elements->GetObjectByOffset(counter); 52 element->Update(i,iomodel,analysis_counter ); //we need i to index into elements.52 element->Update(i,iomodel,analysis_counter,analysis_type); //we need i to index into elements. 53 53 counter++; 54 54 } 55 55 } 56 57 cleanup_and_return: 56 58 57 59 /*Free data: */ … … 67 69 xfree((void**)&iomodel->elementonsurface); 68 70 xfree((void**)&iomodel->elementonwater); 69 xfree((void**)&iomodel->element ons_type);71 xfree((void**)&iomodel->elements_type); 70 72 xfree((void**)&iomodel->rheology_B); 71 73 xfree((void**)&iomodel->rheology_n); -
issm/trunk/src/c/modules/ModelProcessorx/UpdateCounters.cpp
r4002 r4025 15 15 #include "./ModelProcessorx.h" 16 16 17 void UpdateCounter (IoModel* iomodel,DataSet** pnodes,DataSet** ploads, DataSet** pconstraints){17 void UpdateCounters(IoModel* iomodel,DataSet** pnodes,DataSet** ploads, DataSet** pconstraints){ 18 18 19 19 DataSet* nodes=NULL; … … 24 24 nodes=*pnodes; 25 25 loads=*ploads; 26 co sntraints=*pconstraints;26 constraints=*pconstraints; 27 27 28 28 -
issm/trunk/src/c/objects/Elements/Beam.cpp
r4021 r4025 29 29 delete inputs; 30 30 this->parameters=NULL; 31 } 32 /*}}}*/ 33 /*FUNCTION void Beam::Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type);{{{1*/ 34 void Beam::Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type){ 35 ISSMERROR(" not supported yet!"); 31 36 } 32 37 /*}}}*/ -
issm/trunk/src/c/objects/Elements/Beam.h
r4021 r4025 40 40 Beam(); 41 41 ~Beam(); 42 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type); 42 43 /*}}}*/ 43 44 /*object management: {{{1*/ -
issm/trunk/src/c/objects/Elements/Element.h
r4004 r4025 49 49 virtual void PatchSize(int* pnumrows, int* pnumvertices,int* pnumnodes,int enum_type)=0; 50 50 virtual void PatchFill(int* pcount, double* patches,int numcols,int max_vertices,int enum_type)=0; 51 virtual void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type)=0; 51 52 52 53 /*Implementation: */ -
issm/trunk/src/c/objects/Elements/Penta.h
r4021 r4025 43 43 Penta(); 44 44 Penta(int penta_id,int i, IoModel* iomodel,int nummodels); 45 void Update(int index,IoModel* iomodel,int analysis_counter,int analysis_type);45 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type); 46 46 ~Penta(); 47 47 /*}}}*/ -
issm/trunk/src/c/objects/Elements/Sing.cpp
r4021 r4025 29 29 delete inputs; 30 30 this->parameters=NULL; 31 } 32 /*}}}*/ 33 /*FUNCTION void Sing::Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type);{{{1*/ 34 void Sing::Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type){ 35 ISSMERROR(" not supported yet!"); 31 36 } 32 37 /*}}}*/ -
issm/trunk/src/c/objects/Elements/Sing.h
r4021 r4025 40 40 Sing(); 41 41 ~Sing(); 42 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type); 42 43 /*}}}*/ 43 44 /*object management: {{{1*/
Note:
See TracChangeset
for help on using the changeset viewer.