Changeset 4006
- Timestamp:
- 06/03/10 07:56:16 (15 years ago)
- Location:
- issm/trunk/src/c/modules/ModelProcessorx
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp
r3913 r4006 11 11 #include "../ModelProcessorx.h" 12 12 13 14 13 void CreateLoadsBalancedthickness(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){ 15 14 15 /*DataSet*/ 16 16 DataSet* loads = NULL; 17 17 18 /*Create loads: */ 19 loads = new DataSet(LoadsEnum); 18 /*Recover pointer: */ 19 loads=*ploads; 20 21 /*Create loads if they do not exist yet*/ 22 if(!loads) loads = new DataSet(LoadsEnum); 20 23 21 /*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these22 * datasets, it will not be redone: */23 loads->Presort();24 25 cleanup_and_return:26 27 24 /*Assign output pointer: */ 28 25 *ploads=loads; 29 30 26 } -
issm/trunk/src/c/modules/ModelProcessorx/Balancedthickness2/CreateLoadsBalancedthickness2.cpp
r3913 r4006 19 19 DataSet* loads=NULL; 20 20 21 /*Create loads: */ 22 loads = new DataSet(LoadsEnum); 21 /*Recover pointer: */ 22 loads=*ploads; 23 24 /*Create loads if they do not exist yet*/ 25 if(!loads) loads = new DataSet(LoadsEnum); 23 26 24 27 /*Get edges and elements*/ … … 29 32 /*First load data:*/ 30 33 for (i=0;i<iomodel->numberofedges;i++){ 31 loads->AddObject(new Numericalflux(i +1,i,iomodel));34 loads->AddObject(new Numericalflux(iomodel->loadcounter+i+1,i,iomodel,Balancedthickness2AnalysisEnum)); 32 35 } 33 36 … … 37 40 xfree((void**)&iomodel->thickness); 38 41 39 /*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these40 * datasets, it will not be redone: */41 loads->Presort();42 43 42 /*Assign output pointer: */ 44 43 *ploads=loads; 45 46 44 } -
issm/trunk/src/c/modules/ModelProcessorx/Balancedvelocities/CreateLoadsBalancedvelocities.cpp
r3913 r4006 11 11 #include "../ModelProcessorx.h" 12 12 13 14 13 void CreateLoadsBalancedvelocities(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){ 15 14 16 DataSet* loads = NULL; 15 /*DataSet*/ 16 DataSet* loads=NULL; 17 17 18 /*Create loads: */ 19 loads = new DataSet(LoadsEnum); 20 21 /*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these 22 * datasets, it will not be redone: */ 23 loads->Presort(); 18 /*Recover pointer: */ 19 loads=*ploads; 24 20 25 cleanup_and_return: 21 /*Create loads if they do not exist yet*/ 22 if(!loads) loads = new DataSet(LoadsEnum); 26 23 27 24 /*Assign output pointer: */ 28 25 *ploads=loads; 29 30 26 } -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
r4003 r4006 13 13 void CreateLoadsDiagnosticHoriz(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){ 14 14 15 /*DataSets*/ 15 16 DataSet* loads = NULL; 16 17 Icefront* icefront = NULL; 17 18 Riftfront* riftfront= NULL; 18 19 20 /*Intermediary*/ 19 21 int segment_width; 20 22 int element; … … 96 98 /*Assign output pointer: */ 97 99 *ploads=loads; 98 99 100 } -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp
r3913 r4006 13 13 void CreateLoadsDiagnosticHutter(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){ 14 14 15 DataSet* loads = NULL; 15 /*DataSet*/ 16 DataSet* loads=NULL; 16 17 17 /* Create loads: */18 loads = new DataSet(LoadsEnum);18 /*Recover pointer: */ 19 loads=*ploads; 19 20 20 /*Now, is the flag ishutter on? otherwise, do nothing: */ 21 if (!iomodel->ishutter)goto cleanup_and_return; 22 23 cleanup_and_return: 21 /*Create loads if they do not exist yet*/ 22 if(!loads) loads = new DataSet(LoadsEnum); 24 23 25 24 /*Assign output pointer: */ 26 25 *ploads=loads; 27 28 26 } -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp
r3913 r4006 13 13 void CreateLoadsDiagnosticStokes(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){ 14 14 15 /*Intermediary*/ 15 16 int i; 17 int segment_width; 18 int element; 16 19 20 /*DataSet*/ 17 21 DataSet* loads = NULL; 18 22 Pengrid* pengrid = NULL; 19 23 20 int segment_width;21 int element;22 23 24 /*pengrid intermediary data: */ 24 25 int numberofpressureloads; 25 int count er=1;26 int count; 26 27 27 /*Create loads: */ 28 loads = new DataSet(LoadsEnum); 28 /*Recover pointer: */ 29 loads=*ploads; 30 31 /*Create loads if they do not exist yet*/ 32 if(!loads) loads = new DataSet(LoadsEnum); 29 33 30 34 /*Now, is the flag ishutter on? otherwise, do nothing: */ 31 if (!iomodel->isstokes) goto cleanup_and_return;35 if (!iomodel->isstokes) goto cleanup_and_return; 32 36 33 37 /*Create pressure loads as boundary conditions. Pay attention to the partitioning if we are running in parallel (the grids … … 37 41 IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness"); 38 42 IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed"); 43 44 /*Initialize counter: */ 45 count=0; 39 46 40 47 /*First load data:*/ … … 54 61 55 62 /*Create and add load: */ 56 loads->AddObject(new Icefront( counter,i,iomodel));57 count er++;63 loads->AddObject(new Icefront(iomodel->loadcounter+counter+1,i,iomodel,DiagnosticStokesAnalysisEnum)); 64 count++; 58 65 59 66 } … … 78 85 if ((iomodel->gridonbed[i]) && (iomodel->gridonicesheet[i]) && (iomodel->gridonstokes[i])){ 79 86 80 loads->AddObject(new Pengrid( counter,i,iomodel));81 count er++;87 loads->AddObject(new Pengrid(iomodel->loadcounter+counter+1,i,iomodel,DiagnosticStokesAnalysisEnum)); 88 count++; 82 89 } 83 90 } //if((iomodel->my_vertices[i]==1)) … … 90 97 xfree((void**)&iomodel->singlenodetoelementconnectivity); 91 98 92 /*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these93 * datasets, it will not be redone: */94 loads->Presort();95 96 99 cleanup_and_return: 97 100 98 101 /*Assign output pointer: */ 99 102 *ploads=loads; 100 101 103 } -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp
r3913 r4006 13 13 void CreateLoadsDiagnosticVert(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){ 14 14 15 DataSet* loads = NULL; 15 /*DataSet*/ 16 DataSet* loads=NULL; 16 17 17 /*Create loads: */ 18 loads = new DataSet(LoadsEnum); 18 /*Recover pointer: */ 19 loads=*ploads; 20 21 /*Create loads if they do not exist yet*/ 22 if(!loads) loads = new DataSet(LoadsEnum); 19 23 20 24 /*Assign output pointer: */ 21 25 *ploads=loads; 22 23 26 } -
issm/trunk/src/c/modules/ModelProcessorx/Melting/CreateLoadsMelting.cpp
r3984 r4006 13 13 void CreateLoadsMelting(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){ 14 14 15 /*Intermediary*/ 15 16 int i; 16 17 18 /*DataSet*/ 17 19 DataSet* loads = NULL; 18 20 19 /*if 2d: return*/20 if (iomodel->dim==2) goto cleanup_and_return;21 /*if 2d: Error*/ 22 if (iomodel->dim==2) ISSMERROR("2d meshes not supported yet"); 21 23 22 /*Create loads: */ 23 loads = new DataSet(LoadsEnum); 24 /*Recover pointer: */ 25 loads=*ploads; 26 27 /*Create loads if they do not exist yet*/ 28 if(!loads) loads = new DataSet(LoadsEnum); 24 29 25 30 //create penalties for grids: no grid can have a temperature over the melting point … … 34 39 if (iomodel->gridonbed[i]){ 35 40 36 loads->AddObject(new Pengrid(i +1,i,iomodel));41 loads->AddObject(new Pengrid(iomodel->loadcounter+i+1,i,iomodel,MeltingAnalysisEnum)); 37 42 } 38 43 } … … 42 47 xfree((void**)&iomodel->singlenodetoelementconnectivity); 43 48 44 /*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these45 * datasets, it will not be redone: */46 loads->Presort();47 48 cleanup_and_return:49 50 49 /*Assign output pointer: */ 51 50 *ploads=loads; 52 53 51 } -
issm/trunk/src/c/modules/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp
r3913 r4006 13 13 void CreateLoadsPrognostic(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){ 14 14 15 /*DataSet*/ 15 16 DataSet* loads = NULL; 16 17 17 /*Create loads: */ 18 loads = new DataSet(LoadsEnum); 19 20 /*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these 21 * datasets, it will not be redone: */ 22 loads->Presort(); 18 /*Recover pointer: */ 19 loads=*ploads; 23 20 24 cleanup_and_return: 21 /*Create loads if they do not exist yet*/ 22 if(!loads) loads = new DataSet(LoadsEnum); 25 23 26 24 /*Assign output pointer: */ 27 25 *ploads=loads; 28 29 26 } -
issm/trunk/src/c/modules/ModelProcessorx/Prognostic2/CreateLoadsPrognostic2.cpp
r3913 r4006 20 20 DataSet* loads=NULL; 21 21 22 /*Create loads: */ 23 loads = new DataSet(LoadsEnum); 22 /*Recover pointer: */ 23 loads=*ploads; 24 25 /*Create loads if they do not exist yet*/ 26 if(!loads) loads = new DataSet(LoadsEnum); 24 27 25 28 /*Get edges and elements*/ … … 38 41 39 42 /* Add load */ 40 loads->AddObject(new Numericalflux(i +1,i,iomodel));43 loads->AddObject(new Numericalflux(iomodel->loadcounter+i+1,i,iomodel,Prognostic2AnalysisEnum)); 41 44 } 42 45 … … 46 49 xfree((void**)&iomodel->thickness); 47 50 48 /*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these49 * datasets, it will not be redone: */50 loads->Presort();51 52 51 /*Assign output pointer: */ 53 52 *ploads=loads; 54 55 53 } -
issm/trunk/src/c/modules/ModelProcessorx/SlopeCompute/CreateLoadsSlopeCompute.cpp
r3913 r4006 13 13 void CreateLoadsSlopeCompute(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){ 14 14 15 /*DataSet*/ 15 16 DataSet* loads = NULL; 16 17 17 /* Create loads: */18 loads = new DataSet(LoadsEnum);18 /*Recover pointer: */ 19 loads=*ploads; 19 20 20 /* Now, is the flag isstokes on? otherwise, do nothing:*/21 if (!iomodel->isstokes)goto cleanup_and_return;21 /*Create loads if they do not exist yet*/ 22 if(!loads) loads = new DataSet(LoadsEnum); 22 23 23 cleanup_and_return:24 25 24 /*Assign output pointer: */ 26 25 *ploads=loads; 27 28 26 } 29 30 -
issm/trunk/src/c/modules/ModelProcessorx/Thermal/CreateLoadsThermal.cpp
r3984 r4006 13 13 void CreateLoadsThermal(DataSet** ploads, IoModel* iomodel,ConstDataHandle iomodel_handle){ 14 14 15 /*Intermediary*/ 15 16 int i; 16 17 18 /*DataSet*/ 17 19 DataSet* loads = NULL; 18 20 Pengrid* pengrid = NULL; 19 21 22 /*Recover pointer: */ 23 loads=*ploads; 24 25 /*Create loads if they do not exist yet*/ 26 if(!loads) loads = new DataSet(LoadsEnum); 27 20 28 /*return if 2d mesh*/ 21 if (iomodel->dim==2)goto cleanup_and_return; 22 23 /*Create loads: */ 24 loads = new DataSet(LoadsEnum); 29 if (iomodel->dim==2) ISSMERROR("2d meshes not supported yet"); 25 30 26 31 //create penalties for grids: no grid can have a temperature over the melting point … … 36 41 if (!iomodel->spctemperature[2*i]){ //No penalty applied on spc grids! 37 42 38 loads->AddObject(new Pengrid(i +1,i,iomodel));43 loads->AddObject(new Pengrid(iomodel->loadcounter+i+1,i,iomodel,ThermalAnalysisEnum)); 39 44 40 45 } … … 45 50 xfree((void**)&iomodel->singlenodetoelementconnectivity); 46 51 47 /*All our datasets are already order by ids. Set presort flag so that later on, when sorting is requested on these48 * datasets, it will not be redone: */49 loads->Presort();50 51 cleanup_and_return:52 53 52 /*Assign output pointer: */ 54 53 *ploads=loads; 55 56 54 }
Note:
See TracChangeset
for help on using the changeset viewer.