Changeset 2959
- Timestamp:
- 02/04/10 11:59:17 (15 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
r2410 r2959 108 108 #endif 109 109 110 /*Do not create ice front if Hutter elements*/111 if ((int)*(iomodel->elements_type+2*element+0)== HutterFormulationEnum()){110 /*Do not create ice front if Hutter or Stokes elements*/ 111 if ((int)*(iomodel->elements_type+2*element+0)==(HutterFormulationEnum() || StokesFormulationEnum())){ 112 112 continue; 113 113 } -
issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp
r2333 r2959 51 51 int pengrid_stabilize_constraints=0; 52 52 53 int numberofpressureloads _stokes;53 int numberofpressureloads; 54 54 int count; 55 55 … … 63 63 /*Create pressure loads as boundary conditions. Pay attention to the partitioning if we are running in parallel (the grids 64 64 * referenced by a certain load must belong to the cluster node): */ 65 IoModelFetchData(&iomodel->pressureload _stokes,&numberofpressureloads_stokes,NULL,iomodel_handle,"pressureload_stokes");65 IoModelFetchData(&iomodel->pressureload,&numberofpressureloads,NULL,iomodel_handle,"pressureload"); 66 66 IoModelFetchData(&iomodel->elements_type,NULL,NULL,iomodel_handle,"elements_type"); 67 67 IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness"); … … 71 71 72 72 /*First load data:*/ 73 for (i=0;i<numberofpressureloads _stokes;i++){73 for (i=0;i<numberofpressureloads;i++){ 74 74 75 75 segment_width=5; 76 76 77 element=(int)(*(iomodel->pressureload _stokes+segment_width*i+segment_width-1)-1); //element is in the last column77 element=(int)(*(iomodel->pressureload+segment_width*i+segment_width-1)-1); //element is in the last column 78 78 79 79 #ifdef _PARALLEL_ … … 85 85 #endif 86 86 87 /*Do not create ice front if it is not a Stokes element*/ 88 if (!(int)*(iomodel->elements_type+2*element+1)==StokesFormulationEnum()){ 89 continue; 90 } 91 87 92 icefront_mparid=iomodel->numberofelements+1; //matlab indexing 88 93 icefront_sid=count+1; //matlab indexing 89 icefront_eid=(int)*(iomodel->pressureload _stokes+segment_width*i+segment_width-1); //matlab indexing94 icefront_eid=(int)*(iomodel->pressureload+segment_width*i+segment_width-1); //matlab indexing 90 95 icefront_element_type=PentaEnum(); 91 96 92 i1=(int)*(iomodel->pressureload _stokes+segment_width*i+0);93 i2=(int)*(iomodel->pressureload _stokes+segment_width*i+1);94 i3=(int)*(iomodel->pressureload _stokes+segment_width*i+2);95 i4=(int)*(iomodel->pressureload _stokes+segment_width*i+3);97 i1=(int)*(iomodel->pressureload+segment_width*i+0); 98 i2=(int)*(iomodel->pressureload+segment_width*i+1); 99 i3=(int)*(iomodel->pressureload+segment_width*i+2); 100 i4=(int)*(iomodel->pressureload+segment_width*i+3); 96 101 97 102 icefront_node_ids[0]=i1; … … 117 122 } 118 123 /*Free data: */ 119 xfree((void**)&iomodel->pressureload _stokes);124 xfree((void**)&iomodel->pressureload); 120 125 xfree((void**)&iomodel->elements_type); 121 126 xfree((void**)&iomodel->thickness); -
issm/trunk/src/c/ModelProcessorx/IoModel.cpp
r2892 r2959 91 91 92 92 iomodel->numberofpressureloads=0; 93 iomodel->numberofpressureloads_stokes=0;94 93 iomodel->pressureload=NULL; 95 iomodel->pressureload_stokes=NULL;96 94 iomodel-> spcvelocity=NULL; 97 95 iomodel-> spctemperature=NULL; … … 243 241 xfree((void**)&iomodel->gridoniceshelf); 244 242 xfree((void**)&iomodel->pressureload); 245 xfree((void**)&iomodel->pressureload_stokes);246 243 xfree((void**)&iomodel->spcvelocity); 247 244 xfree((void**)&iomodel->spcthickness); -
issm/trunk/src/c/ModelProcessorx/IoModel.h
r2892 r2959 90 90 /*boundary conditions: */ 91 91 int numberofpressureloads; 92 int numberofpressureloads_stokes;93 92 double* pressureload; 94 double* pressureload_stokes;95 93 double* spcvelocity; 96 94 double* spctemperature; -
issm/trunk/src/m/classes/@model/model.m
r2892 r2959 141 141 md.gridonboundary=NaN; 142 142 md.pressureload=NaN; 143 md.pressureload_stokes=NaN;144 143 md.spcvelocity=NaN; 145 144 md.spctemperature=NaN; -
issm/trunk/src/m/classes/public/marshall.m
r2881 r2959 82 82 83 83 WriteData(fid,md.pressureload,'Mat','pressureload'); 84 WriteData(fid,md.pressureload_stokes,'Mat','pressureload_stokes');85 84 86 85 WriteData(fid,md.geothermalflux,'Mat','geothermalflux'); -
issm/trunk/src/m/classes/public/modelextract.m
r2530 r2959 234 234 end 235 235 md2.pressureload=md2.pressureload(find(md2.pressureload(:,1) & md2.pressureload(:,2) & md2.pressureload(:,end)),:); 236 end237 if ~isnan(md2.pressureload_stokes)238 md2.pressureload_stokes(:,1)=Pgrid(md1.pressureload_stokes(:,1));239 md2.pressureload_stokes(:,2)=Pgrid(md1.pressureload_stokes(:,2));240 md2.pressureload_stokes(:,end)=Pelem(md1.pressureload_stokes(:,end));241 if strcmpi(md1.type,'3d')242 md2.pressureload_stokes(:,3)=Pgrid(md1.pressureload_stokes(:,3));243 md2.pressureload_stokes(:,4)=Pgrid(md1.pressureload_stokes(:,4));244 end245 md2.pressureload_stokes=md2.pressureload_stokes(find(md2.pressureload_stokes(:,1) & md2.pressureload_stokes(:,2) & md2.pressureload_stokes(:,end)),:);246 236 end 247 237 -
issm/trunk/src/m/classes/public/setelementstype.m
r2323 r2959 126 126 md.borderstokes=borderflags-md.gridonstokes; %remove stokes grids from this list 127 127 128 %icefront for stokes129 if ~isnan(md.pressureload),130 md.pressureload_stokes=md.pressureload(find(md.elements_type(md.pressureload(:,end),2)==StokesFormulationEnum()),:);131 end132 133 128 %figure out solution types 134 129 md.ishutter=double(any(md.elements_type(:,1)==HutterFormulationEnum));
Note:
See TracChangeset
for help on using the changeset viewer.