Changeset 9451
- Timestamp:
- 08/26/11 10:36:18 (14 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 1 deleted
- 39 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r9405 r9451 194 194 DragPEnum, 195 195 DragQEnum, 196 DragTypeEnum,196 Fake41Enum, 197 197 DtEnum, 198 198 TimeAdaptEnum, … … 342 342 Fake9Enum, 343 343 BasalMeltingRateCorrectionEnum, 344 BasalMeltingRateCorrectionApplyEnum,345 344 MixedLayerCapacityEnum, 346 345 ThermalExchangeVelocityEnum, … … 395 394 Fake20Enum, 396 395 Fake21Enum, 397 PenaltyMeltingEnum,396 Fake42Enum, 398 397 QmuAnalysisEnum, 399 398 QmuErrNameEnum, … … 404 403 QmuPartEnum, 405 404 QmuNumberOfResponsesEnum, 406 QmuSaveFemmodelEnum,405 Fake43Enum, 407 406 IndexedEnum, 408 407 RegularEnum, … … 412 411 ResponsedescriptorsEnum, 413 412 PetscRcEnum, 414 SparsityEnum,413 Fake40Enum, 415 414 Fake22Enum, 416 415 VariabledescriptorsEnum, -
issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
r9405 r9451 162 162 case DragPEnum : return "DragP"; 163 163 case DragQEnum : return "DragQ"; 164 case DragTypeEnum : return "DragType";164 case Fake41Enum : return "Fake41"; 165 165 case DtEnum : return "Dt"; 166 166 case TimeAdaptEnum : return "TimeAdapt"; … … 296 296 case Fake9Enum : return "Fake9"; 297 297 case BasalMeltingRateCorrectionEnum : return "BasalMeltingRateCorrection"; 298 case BasalMeltingRateCorrectionApplyEnum : return "BasalMeltingRateCorrectionApply";299 298 case MixedLayerCapacityEnum : return "MixedLayerCapacity"; 300 299 case ThermalExchangeVelocityEnum : return "ThermalExchangeVelocity"; … … 345 344 case Fake20Enum : return "Fake20"; 346 345 case Fake21Enum : return "Fake21"; 347 case PenaltyMeltingEnum : return "PenaltyMelting";346 case Fake42Enum : return "Fake42"; 348 347 case QmuAnalysisEnum : return "QmuAnalysis"; 349 348 case QmuErrNameEnum : return "QmuErrName"; … … 354 353 case QmuPartEnum : return "QmuPart"; 355 354 case QmuNumberOfResponsesEnum : return "QmuNumberOfResponses"; 356 case QmuSaveFemmodelEnum : return "QmuSaveFemmodel";355 case Fake43Enum : return "Fake43"; 357 356 case IndexedEnum : return "Indexed"; 358 357 case RegularEnum : return "Regular"; … … 362 361 case ResponsedescriptorsEnum : return "Responsedescriptors"; 363 362 case PetscRcEnum : return "PetscRc"; 364 case SparsityEnum : return "Sparsity";363 case Fake40Enum : return "Fake40"; 365 364 case Fake22Enum : return "Fake22"; 366 365 case VariabledescriptorsEnum : return "Variabledescriptors"; -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
r9405 r9451 55 55 iomodel->FetchDataToInput(elements,DragPEnum); 56 56 iomodel->FetchDataToInput(elements,DragQEnum); 57 iomodel->FetchDataToInput(elements,DragTypeEnum);58 57 iomodel->FetchDataToInput(elements,ElementOnIceShelfEnum); 59 58 iomodel->FetchDataToInput(elements,ElementOnWaterEnum); -
issm/trunk/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp
r9405 r9451 47 47 iomodel->FetchDataToInput(elements,DragPEnum); 48 48 iomodel->FetchDataToInput(elements,DragQEnum); 49 iomodel->FetchDataToInput(elements,DragTypeEnum);50 49 iomodel->FetchDataToInput(elements,ElementOnIceShelfEnum); 51 50 iomodel->FetchDataToInput(elements,ElementOnBedEnum); -
issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
r9405 r9451 160 160 else if (strcmp(name,"DragP")==0) return DragPEnum; 161 161 else if (strcmp(name,"DragQ")==0) return DragQEnum; 162 else if (strcmp(name," DragType")==0) return DragTypeEnum;162 else if (strcmp(name,"Fake41")==0) return Fake41Enum; 163 163 else if (strcmp(name,"Dt")==0) return DtEnum; 164 164 else if (strcmp(name,"TimeAdapt")==0) return TimeAdaptEnum; … … 294 294 else if (strcmp(name,"Fake9")==0) return Fake9Enum; 295 295 else if (strcmp(name,"BasalMeltingRateCorrection")==0) return BasalMeltingRateCorrectionEnum; 296 else if (strcmp(name,"BasalMeltingRateCorrectionApply")==0) return BasalMeltingRateCorrectionApplyEnum;297 296 else if (strcmp(name,"MixedLayerCapacity")==0) return MixedLayerCapacityEnum; 298 297 else if (strcmp(name,"ThermalExchangeVelocity")==0) return ThermalExchangeVelocityEnum; … … 343 342 else if (strcmp(name,"Fake20")==0) return Fake20Enum; 344 343 else if (strcmp(name,"Fake21")==0) return Fake21Enum; 345 else if (strcmp(name," PenaltyMelting")==0) return PenaltyMeltingEnum;344 else if (strcmp(name,"Fake42")==0) return Fake42Enum; 346 345 else if (strcmp(name,"QmuAnalysis")==0) return QmuAnalysisEnum; 347 346 else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum; … … 352 351 else if (strcmp(name,"QmuPart")==0) return QmuPartEnum; 353 352 else if (strcmp(name,"QmuNumberOfResponses")==0) return QmuNumberOfResponsesEnum; 354 else if (strcmp(name," QmuSaveFemmodel")==0) return QmuSaveFemmodelEnum;353 else if (strcmp(name,"Fake43")==0) return Fake43Enum; 355 354 else if (strcmp(name,"Indexed")==0) return IndexedEnum; 356 355 else if (strcmp(name,"Regular")==0) return RegularEnum; … … 360 359 else if (strcmp(name,"Responsedescriptors")==0) return ResponsedescriptorsEnum; 361 360 else if (strcmp(name,"PetscRc")==0) return PetscRcEnum; 362 else if (strcmp(name," Sparsity")==0) return SparsityEnum;361 else if (strcmp(name,"Fake40")==0) return Fake40Enum; 363 362 else if (strcmp(name,"Fake22")==0) return Fake22Enum; 364 363 else if (strcmp(name,"Variabledescriptors")==0) return VariabledescriptorsEnum; -
issm/trunk/src/c/objects/Elements/Penta.cpp
r9405 r9451 350 350 351 351 /*Intermediaries */ 352 int count,ig; 353 int drag_type; 354 double basalfriction[NUMVERTICES]={0,0,0,0,0,0}; 352 int count,ig; 353 double basalfriction[NUMVERTICES]={0,0,0,0,0,0}; 355 354 double alpha2,vx,vy; 356 355 Friction* friction=NULL; … … 372 371 373 372 /*Build friction element, needed later: */ 374 inputs->GetParameterValue(&drag_type,DragTypeEnum);375 if (drag_type!=2)_error_(" non-viscous friction not supported yet!");376 373 friction=new Friction("3d",inputs,matpar,DiagnosticHorizAnalysisEnum); 377 374 … … 812 809 813 810 /*Intermediaries */ 814 int i,j,ig,analysis_type ,drag_type;811 int i,j,ig,analysis_type; 815 812 double Jdet2d,slope_magnitude,alpha2; 816 813 double xyz_list[NUMVERTICES][3]; … … 838 835 for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<2;j++) xyz_list_tria[i][j]=xyz_list[i][j]; 839 836 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 840 inputs->GetParameterValue(&drag_type,DragTypeEnum);841 837 Input* surface_input=inputs->GetInput(SurfaceEnum); _assert_(surface_input); 842 838 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); … … 845 841 846 842 /*build friction object, used later on: */ 847 if (drag_type!=2)_error_(" non-viscous friction not supported yet!");848 843 friction=new Friction("2d",inputs,matpar,analysis_type); 849 844 … … 1476 1471 /*Intermediaries */ 1477 1472 int i,j,ig; 1478 int analysis_type ,drag_type;1473 int analysis_type; 1479 1474 double xyz_list[NUMVERTICES][3]; 1480 1475 double xyz_list_tria[NUMVERTICES2D][3]={0.0}; … … 1498 1493 for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<2;j++) xyz_list_tria[i][j]=xyz_list[i][j]; 1499 1494 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 1500 inputs->GetParameterValue(&drag_type,DragTypeEnum);1501 1495 Input* surface_input=inputs->GetInput(SurfaceEnum); _assert_(surface_input); 1502 1496 Input* vx_input=inputs->GetInput(VxEnum); _assert_(vx_input); … … 1505 1499 1506 1500 /*build friction object, used later on: */ 1507 if (drag_type!=2)_error_(" non-viscous friction not supported yet!");1508 1501 friction=new Friction("2d",inputs,matpar,analysis_type); 1509 1502 … … 3437 3430 /*Intermediaries */ 3438 3431 int i,j,ig; 3439 int analysis_type ,drag_type;3432 int analysis_type; 3440 3433 double xyz_list[NUMVERTICES][3]; 3441 3434 double xyz_list_tria[NUMVERTICES2D][3]={0.0}; … … 3467 3460 3468 3461 /*Build frictoin element, needed later: */ 3469 inputs->GetParameterValue(&drag_type,DragTypeEnum);3470 if (drag_type!=2)_error_(" non-viscous friction not supported yet!");3471 3462 friction=new Friction("3d",inputs,matpar,analysis_type); 3472 3463 … … 3706 3697 /*Intermediaries */ 3707 3698 int i,j,ig; 3708 int analysis_type ,drag_type;3699 int analysis_type; 3709 3700 double xyz_list[NUMVERTICES][3]; 3710 3701 double xyz_list_tria[NUMVERTICES2D][3]={0.0}; … … 3736 3727 3737 3728 /*Build frictoin element, needed later: */ 3738 inputs->GetParameterValue(&drag_type,DragTypeEnum);3739 if (drag_type!=2)_error_(" non-viscous friction not supported yet!");3740 3729 friction=new Friction("3d",inputs,matpar,analysis_type); 3741 3730 … … 4514 4503 4515 4504 int i,j,ig; 4516 int drag_type,analysis_type;4505 int analysis_type; 4517 4506 int doflist1[NUMVERTICES]; 4518 4507 double vx,vy,lambda,mu,alpha_complement,Jdet; … … 4542 4531 4543 4532 /*Build frictoin element, needed later: */ 4544 inputs->GetParameterValue(&drag_type,DragTypeEnum);4545 4533 friction=new Friction("2d",inputs,matpar,analysis_type); 4546 4534 … … 4555 4543 4556 4544 /*Build alpha_complement_list: */ 4557 if (drag_type==2) friction->GetAlphaComplement(&alpha_complement, gauss,VxEnum,VyEnum,VzEnum); 4558 else alpha_complement=0; 4545 friction->GetAlphaComplement(&alpha_complement, gauss,VxEnum,VyEnum,VzEnum); 4559 4546 4560 4547 dragcoefficient_input->GetParameterValue(&drag, gauss); … … 4587 4574 4588 4575 int i,j,ig; 4589 int drag_type,analysis_type;4576 int analysis_type; 4590 4577 int doflist1[NUMVERTICES]; 4591 4578 double bed,thickness,Neff; … … 4610 4597 for(i=0;i<NUMVERTICES2D;i++) for(j=0;j<2;j++) xyz_list_tria[i][j]=xyz_list[i][j]; 4611 4598 GetDofList1(&doflist1[0]); 4612 inputs->GetParameterValue(&drag_type,DragTypeEnum);4613 4599 Input* drag_input =inputs->GetInput(DragCoefficientEnum); _assert_(drag_input); 4614 4600 Input* vx_input =inputs->GetInput(VxEnum); _assert_(vx_input); … … 4620 4606 4621 4607 /*Build frictoin element, needed later: */ 4622 inputs->GetParameterValue(&drag_type,DragTypeEnum);4623 4608 friction=new Friction("3d",inputs,matpar,analysis_type); 4624 4609 … … 4630 4615 4631 4616 /*Recover alpha_complement and drag: */ 4632 if (drag_type==2) friction->GetAlphaComplement(&alpha_complement, gauss,VxEnum,VyEnum,VzEnum); 4633 else alpha_complement=0; 4617 friction->GetAlphaComplement(&alpha_complement, gauss,VxEnum,VyEnum,VzEnum); 4634 4618 drag_input->GetParameterValue(&drag,gauss); 4635 4619 … … 6616 6600 name==TemperatureEnum || 6617 6601 name==DragCoefficientEnum || 6618 name==DragTypeEnum ||6619 6602 name==GradientEnum || 6620 6603 name==OldGradientEnum || -
issm/trunk/src/c/objects/Elements/Tria.cpp
r9405 r9451 748 748 /*Intermediaries*/ 749 749 int i,j,ig; 750 int analysis_type ,drag_type;750 int analysis_type; 751 751 double MAXSLOPE = .06; // 6 % 752 752 double MOUNTAINKEXPONENT = 10; … … 771 771 Input* vy_input=inputs->GetInput(VyEnum); _assert_(vy_input); 772 772 Input* vz_input=inputs->GetInput(VzEnum); _assert_(vz_input); 773 inputs->GetParameterValue(&drag_type,DragTypeEnum);774 773 parameters->FindParam(&analysis_type,AnalysisTypeEnum); 775 774 776 775 /*build friction object, used later on: */ 777 if (drag_type!=2) _error_(" non-viscous friction not supported yet!");778 776 friction=new Friction("2d",inputs,matpar,analysis_type); 779 777 … … 1380 1378 1381 1379 /*Intermediaries */ 1382 int i,j,ig ,drag_type;1383 double plastic_stress,driving_stress_baseline,thickness;1380 int i,j,ig; 1381 double driving_stress_baseline,thickness; 1384 1382 double Jdet; 1385 1383 double xyz_list[NUMVERTICES][3]; … … 1394 1392 /*Retrieve all inputs and parameters*/ 1395 1393 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 1396 inputs->GetParameterValue(&drag_type,DragTypeEnum);1397 1394 Input* thickness_input=inputs->GetInput(ThicknessEnum); _assert_(thickness_input); 1398 1395 Input* surface_input=inputs->GetInput(SurfaceEnum); _assert_(surface_input); … … 1410 1407 thickness_input->GetParameterValue(&thickness,gauss); 1411 1408 surface_input->GetParameterDerivativeValue(&slope[0],&xyz_list[0][0],gauss); 1412 1413 /*In case we have plastic basal drag, compute plastic stress at gaussian point from k1, k2 and k3 fields in the1414 * element itself: */1415 if(drag_type==1) drag_input->GetParameterValue(&plastic_stress,gauss);1416 1417 1409 driving_stress_baseline=matpar->GetRhoIce()*matpar->GetG()*thickness; 1418 1410 1419 1411 /*Build pe_g_gaussian vector: */ 1420 if(drag_type==1){ 1421 for (i=0;i<NUMVERTICES;i++){ 1422 for (j=0;j<NDOF2;j++){ 1423 pe->values[i*NDOF2+j]+=(-driving_stress_baseline*slope[j]-plastic_stress)*Jdet*gauss->weight*basis[i]; 1424 } 1425 } 1426 } 1427 else { 1428 for (i=0;i<NUMVERTICES;i++){ 1429 for (j=0;j<NDOF2;j++){ 1430 pe->values[i*NDOF2+j]+=-driving_stress_baseline*slope[j]*Jdet*gauss->weight*basis[i]; 1431 } 1412 for (i=0;i<NUMVERTICES;i++){ 1413 for (j=0;j<NDOF2;j++){ 1414 pe->values[i*NDOF2+j]+=-driving_stress_baseline*slope[j]*Jdet*gauss->weight*basis[i]; 1432 1415 } 1433 1416 } … … 2847 2830 2848 2831 int i,ig; 2849 int drag_type,analysis_type;2832 int analysis_type; 2850 2833 int doflist1[NUMVERTICES]; 2851 2834 double vx,vy,lambda,mu,alpha_complement,Jdet; … … 2868 2851 2869 2852 /*Build frictoin element, needed later: */ 2870 inputs->GetParameterValue(&drag_type,DragTypeEnum);2871 2853 friction=new Friction("2d",inputs,matpar,analysis_type); 2872 2854 … … 2888 2870 2889 2871 /*Build alpha_complement_list: */ 2890 if (drag_type==2) friction->GetAlphaComplement(&alpha_complement, gauss,VxEnum,VyEnum,VzEnum); 2891 else alpha_complement=0; 2872 friction->GetAlphaComplement(&alpha_complement, gauss,VxEnum,VyEnum,VzEnum); 2892 2873 2893 2874 dragcoefficient_input->GetParameterValue(&drag, gauss); … … 3998 3979 name==DragCoefficientEnum || 3999 3980 name==GradientEnum || 4000 name==DragTypeEnum ||4001 3981 name==OldGradientEnum 4002 3982 ){ -
issm/trunk/src/m/classes/@modellist/loadmultipleresultsfromcluster.m
r2952 r9451 28 28 md_list.models{i}=loadresultsfromdisk(md_list.models{i},[name '-' num2str(i) 'vs' num2str(nummodels) '.outbin']); 29 29 30 %post solve phase31 md_list.models{i}=postsolveparallel(md_list.models{i});32 30 delete([name '-' num2str(i) 'vs' num2str(nummodels) '.outbin']); 33 31 end -
issm/trunk/src/m/classes/model.m
r9431 r9451 28 28 y = {NaN,true,'DoubleMat',1}; 29 29 z = {NaN,true,'DoubleMat',1}; 30 bed_slopex = {NaN,false};31 bed_slopey = {NaN,false};32 surface_slopex = {NaN,false};33 surface_slopey = {NaN,false};34 30 nodeconnectivity = {NaN,false}; 35 31 elementconnectivity = {NaN,true,'DoubleMat',3}; … … 47 43 x2d = {NaN,false}; 48 44 y2d = {NaN,false}; 49 z2d = {NaN,false};50 45 51 46 %latlon of the coorinates … … 79 74 penalties = {NaN,true,'DoubleMat',3}; 80 75 penalty_offset = {0,true,'Double'}; 81 penalty_melting = {0,true,'Double'};82 76 penalty_lock = {0,true,'Integer'}; 83 77 segments = {NaN,false}; … … 96 90 %Extrusion 97 91 numlayers = {0,true,'Integer'}; 98 extrusionexponent = {0,false};99 92 elementonbed = {NaN,true,'BooleanMat',2}; 100 93 elementonsurface = {NaN,true,'BooleanMat',2}; … … 125 118 g = {0,true,'Double'}; 126 119 yts = {0,true,'Double'}; 127 drag_type = {0,true,'Integer'};128 120 drag_coefficient = {NaN,true,'DoubleMat',1}; 129 121 drag_p = {NaN,true,'DoubleMat',2}; … … 174 166 max_nonlinear_iterations = {0,true,'Integer'}; 175 167 max_steadystate_iterations = {0,true,'Integer'}; 176 sparsity = {0,true,'Double'};177 168 connectivity = {0,true,'Integer'}; 178 169 lowmem = {0,true,'Boolean'}; … … 184 175 time_adapt = {0,true,'Boolean'}; 185 176 cfl_coefficient = {0,true,'Double'}; 186 adaptative_cfl = {0,false};187 177 artificial_diffusivity = {0,true,'Integer'}; 188 178 prognostic_DG = {0,true,'Integer'}; … … 230 220 basal_melting_rate = {NaN,true,'DoubleMat',1}; 231 221 basal_melting_rate_correction = {NaN,true,'DoubleMat',1}; 232 basal_melting_rate_correction_apply = {0,true,'Integer'};233 222 pressure = {NaN,true,'DoubleMat',1}; 234 223 %Hydrology … … 282 271 qmu_mass_flux_segments = {{},true,'MatArray'}; 283 272 qmu_relax = {0,false}; 284 qmu_save_femmodel = {0,true,'Integer'};285 273 286 274 %flaim … … 536 524 %basal melting rate correction: 537 525 md.groundingline_melting_rate=0; 538 md.basal_melting_rate_correction_apply=0; %do not apply539 526 540 527 %ice thermal conductivity lamda (W/m/K) … … 563 550 %converstion from year to seconds 564 551 md.yts=365*24*3600; 565 566 %drag type (2=elastic)567 md.drag_type=2;568 552 569 553 %Solver parameters … … 583 567 %maximum of steady state iterations 584 568 md.max_steadystate_iterations=100; 585 586 %sparsity587 md.sparsity=0.001;588 569 589 570 %the connectivity is the avergaded number of nodes linked to a … … 616 597 %kappa=max(stiffness matrix)*10^penalty_offset 617 598 md.penalty_offset=3; 618 619 %penalty_melting is the penalty used to keep T<Tpmp620 %kappa=penalty_melting621 md.penalty_melting=10^7;622 599 623 600 %in some solutions, it might be needed to stop a run when only -
issm/trunk/src/m/model/bamg.m
r8298 r9451 335 335 md.elementonsurface=ones(md.numberofelements,1); 336 336 md.nodeonboundary=zeros(md.numberofnodes,1); md.nodeonboundary(md.segments(:,1:2))=1; 337 md.counter=1;338 337 md.elementconnectivity=md.bamg.mesh.ElementConnectivity; 339 338 md.elementconnectivity(find(isnan(md.elementconnectivity)))=0; -
issm/trunk/src/m/model/bedslope.m
r8298 r9451 10 10 numberofnodes=md.numberofnodes; 11 11 index=md.elements; 12 x=md.x; y=md.y; z=md.z;12 x=md.x; y=md.y; 13 13 else 14 14 numberofelements=md.numberofelements2d; 15 15 numberofnodes=md.numberofnodes2d; 16 16 index=md.elements2d; 17 x=md.x2d; y=md.y2d; z=md.z2d;17 x=md.x2d; y=md.y2d; 18 18 end 19 19 -
issm/trunk/src/m/model/collapse.m
r9423 r9451 37 37 if ~isnan(md.vz),md.vz=DepthAverage(md,md.vz);end; 38 38 if ~isnan(md.vel),md.vel=DepthAverage(md,md.vel);end; 39 if ~isnan(md.surface_slopex),md.surface_slopex=project2d(md,md.surface_slopex,md.numlayers);end;40 if ~isnan(md.surface_slopey),md.surface_slopey=project2d(md,md.surface_slopey,md.numlayers);end;41 if ~isnan(md.bed_slopex),md.bed_slopex=project2d(md,md.bed_slopex,1);end;42 if ~isnan(md.bed_slopey),md.bed_slopey=project2d(md,md.bed_slopey,1);end;43 39 44 40 %bedinfo and surface info … … 100 96 md.x=md.x2d; 101 97 md.y=md.y2d; 102 md.z= md.z2d;98 md.z=zeros(size(md.x2d)); 103 99 md.numberofnodes=md.numberofnodes2d; 104 100 md.numberofelements=md.numberofelements2d; … … 112 108 md.x2d=NaN; 113 109 md.y2d=NaN; 114 md.z2d=NaN;115 110 md.elements2d=NaN; 116 111 md.elements_type2d=md.elements_type; -
issm/trunk/src/m/model/display/displaydiagnostic.m
r8823 r9451 30 30 disp(sprintf('\n %s','Memory management:')); 31 31 fielddisplay(md,'lowmem','Set to 1 if you are running low on cluster memory'); 32 fielddisplay(md,'sparsity','matrix sparsity. Set to .001 for < 1M dof, .0001 for 5M dof, and .00001 for > 10M dof');33 32 fielddisplay(md,'connectivity','element connectivity'); 34 33 -
issm/trunk/src/m/model/display/displaymesh.m
r8298 r9451 20 20 fielddisplay(md,'x2d','nodes x coordinate'); 21 21 fielddisplay(md,'y2d','nodes y coordinate'); 22 fielddisplay(md,'z2d','nodes z coordinate');23 22 24 23 disp(sprintf('\n Elements and nodes of the extruded 3d mesh:')); … … 38 37 fielddisplay(md,'dim','mesh dimension (2d or 3d)'); 39 38 fielddisplay(md,'numlayers','number of extrusion layers'); 40 fielddisplay(md,'extrusionexponent','exponent for extrusion');41 39 fielddisplay(md,'bamg','Geometry and 2d mesh properties (if generated by Bamg)'); 42 40 fielddisplay(md,'penalties','penalties list'); -
issm/trunk/src/m/model/display/displayparameters.m
r8298 r9451 26 26 27 27 disp(sprintf('\n Friction parameters (Sigma= drag^2 * Neff ^r * u ^s, with Neff=rho_ice*g*thickness+rho_ice*g*bed, r=q/p and s=1/p)')); 28 fielddisplay(md,'drag_type','0: none, 1:plastic, 2:viscous');29 28 fielddisplay(md,'drag_coefficient','friction coefficient [IS]'); 30 29 fielddisplay(md,'drag_p','p exponent'); -
issm/trunk/src/m/model/divergence.m
r8298 r9451 14 14 numberofnodes=md.numberofnodes2d; 15 15 index=md.elements2d; 16 x=md.x2d; y=md.y2d; z=md.z2d;16 x=md.x2d; y=md.y2d; 17 17 end 18 18 -
issm/trunk/src/m/model/extrude.m
r9432 r9451 25 25 help extrude; 26 26 error('extrude error message'); 27 end28 29 if md.counter<3,30 help extrude;31 error('only fully parameterized 2d models can be extruded');32 end33 34 if md.counter>=4,35 error('This model has already been extruded!','s');36 27 end 37 28 … … 114 105 md.x2d=md.x; 115 106 md.y2d=md.y; 116 md.z2d=md.z;117 107 md.elements2d=md.elements; 118 108 md.elements_type2d=md.elements_type; … … 158 148 if ~isnan(md.temperature),md.temperature=project3d(md,'vector',md.temperature,'type','node');end; 159 149 if ~isnan(md.waterfraction),md.waterfraction=project3d(md,'vector',md.waterfraction,'type','node');end; 160 if ~isnan(md.surface_slopex),md.surface_slopex=project3d(md,'vector',md.surface_slopex,'type','node');end;161 if ~isnan(md.surface_slopey),md.surface_slopey=project3d(md,'vector',md.surface_slopey,'type','node');end;162 if ~isnan(md.bed_slopex),md.bed_slopex=project3d(md,'vector',md.bed_slopex,'type','node');end;163 if ~isnan(md.bed_slopey),md.bed_slopey=project3d(md,'vector',md.bed_slopey,'type','node');end;164 150 165 151 %bedinfo and surface info … … 246 232 md.connectivity=100; 247 233 end 248 249 %augment counter keeping track of what has been done to this model250 md.counter=4; -
issm/trunk/src/m/model/geography.m
r9423 r9451 18 18 help geography 19 19 error('geography error message'); 20 end21 22 if md.counter>=2,23 choice=input('This model already has a geometry. Are you sure you want to go ahead? (y/n)','s');24 if ~strcmp(choice,'y'), error('no geometry done ... exiting'); end25 else26 if (md.counter~=1), error('geography error message: you need to run mesh.m first on this model'); end27 20 end 28 21 … … 49 42 50 43 %Return: 51 md.counter=2;52 53 44 md.elementoniceshelf=elementoniceshelf; 54 45 md.nodeoniceshelf=nodeoniceshelf; -
issm/trunk/src/m/model/geography2.m
r8298 r9451 148 148 md.elementonicesheet=elementonicesheet; 149 149 150 md.counter=2;151 150 md.segmentmarkers(:)=1; -
issm/trunk/src/m/model/ismodelselfconsistent.m
r9432 r9451 42 42 end 43 43 %}}} 44 %COUNTER {{{145 if md.counter<3,46 message(['model ' md.name ' is not correctly configured. You forgot one step in the following sequence (mesh, geography, parameterize,setelementstype)!']);47 end48 %}}}49 44 %NAME{{{1 50 45 if isempty(md.name), … … 87 82 %}}} 88 83 %NO NAN {{{1 89 fields={'numberofelements','numberofnodes','x','y','z','drag_coefficient','drag_ type','drag_p','drag_q',...90 'rho_ice','rho_water','rheology_B','elementoniceshelf','surface','thickness','bed','g','lowmem',' sparsity','nsteps','maxiter',...84 fields={'numberofelements','numberofnodes','x','y','z','drag_coefficient','drag_p','drag_q',... 85 'rho_ice','rho_water','rheology_B','elementoniceshelf','surface','thickness','bed','g','lowmem','nsteps','maxiter',... 91 86 'tolx','eps_res','max_nonlinear_iterations','rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface','elementconnectivity'}; 92 87 checknan(md,fields); 93 88 %}}}} 94 89 %FIELDS >= 0 {{{1 95 fields={'numberofelements','numberofnodes','elements','drag_coefficient','drag_ type','drag_p','drag_q',...90 fields={'numberofelements','numberofnodes','elements','drag_coefficient','drag_p','drag_q',... 96 91 'rho_ice','rho_water','rheology_B','elementoniceshelf','thickness','g','eps_res','max_nonlinear_iterations','eps_rel','eps_abs','nsteps','maxiter','tolx',... 97 ' sparsity','lowmem','rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface'};92 'lowmem','rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface'}; 98 93 checkgreater(md,fields,0); 99 94 %}}} 100 95 %FIELDS > 0 {{{1 101 fields={'numberofelements','numberofnodes','elements','drag_type','drag_p',... 102 'rho_ice','rho_water','rheology_B','thickness','g','max_nonlinear_iterations','eps_res','eps_rel','eps_abs','maxiter','tolx',... 103 'sparsity'}; 96 fields={'numberofelements','numberofnodes','elements','drag_p',... 97 'rho_ice','rho_water','rheology_B','thickness','g','max_nonlinear_iterations','eps_res','eps_rel','eps_abs','maxiter','tolx'}; 104 98 checkgreaterstrict(md,fields,0); 105 99 %}}} -
issm/trunk/src/m/model/isresultconsistent.m
r8430 r9451 147 147 %check melting (<=0 via penalties) 148 148 if any(abs(md.results.ThermalAnalysis(iter).melting(md.numberofnodes2d+1:end))>tolerance) 149 disp(['''thermal'' result not consistent: increase penalty_ melting(negative melting)']);149 disp(['''thermal'' result not consistent: increase penalty_offset (negative melting)']); 150 150 bool=0; return; 151 151 end … … 197 197 if (md.dim==3), 198 198 if any(abs(md.results.TransientAnalysis(iter).melting(md.numberofnodes2d+1:end))>tolerance) 199 disp(['''thermal'' result not consistent: increase penalty_ melting(negative melting)']);199 disp(['''thermal'' result not consistent: increase penalty_offset (negative melting)']); 200 200 bool=0; return; 201 201 end -
issm/trunk/src/m/model/loadmultipleresultsfromcluster.m
r7629 r9451 28 28 md_list{i}=loadresultsfromdisk(md_list{i},[md_list{i}.name '.outbin']); 29 29 30 %post solve phase31 md_list{i}=postsolveparallel(md_list{i});32 30 delete([name '.outbin']); 33 31 end -
issm/trunk/src/m/model/loadresultsfromcluster.m
r8577 r9451 58 58 end 59 59 end 60 61 %post solve phase62 md=postsolveparallel(md); -
issm/trunk/src/m/model/mesh/mesh.m
r9423 r9451 84 84 %type of model 85 85 md.dim=2; 86 87 %augment counter keeping track of what has been done to this model88 md.counter=1; -
issm/trunk/src/m/model/mesh/meshconvert.m
r8298 r9451 46 46 md.elementonsurface=ones(md.numberofelements,1); 47 47 md.nodeonboundary=zeros(md.numberofnodes,1); md.nodeonboundary(md.segments(:,1:2))=1; 48 md.counter=1; -
issm/trunk/src/m/model/mesh/meshexprefine.m
r5024 r9451 23 23 meshexprefineusage(); 24 24 error('meshexprefine error message'); 25 end26 27 if (md.counter<1)28 error('meshexprefine error message: you need to run mesh.m first on this model');29 25 end 30 26 -
issm/trunk/src/m/model/mesh/meshnodensity.m
r9423 r9451 70 70 %type of model 71 71 md.dim=2; 72 73 %augment counter keeping track of what has been done to this model74 md.counter=1; -
issm/trunk/src/m/model/mesh/meshrefine.m
r8298 r9451 35 35 %type of model 36 36 md.dim=2; 37 38 %augment counter keeping track of what has been done to this model39 md.counter=1;40 37 end 41 38 -
issm/trunk/src/m/model/mesh/reorder.m
r8298 r9451 6 6 7 7 %some checks 8 if md.counter<1,9 error('reorder error message: no existing mesh, exiting...')10 end11 8 if md.dim==3, 12 9 error('reorder error message: 3d models not supported yet, exiting...') -
issm/trunk/src/m/model/mesh/rifts/meshaddrifts.m
r8298 r9451 92 92 %type of model 93 93 md.dim=2; 94 95 %augment counter keeping track of what has been done to this model96 md.counter=1; -
issm/trunk/src/m/model/modelextract.m
r9436 r9451 142 142 md2.x2d=md1.x(pos_node_2d); 143 143 md2.y2d=md1.y(pos_node_2d); 144 md2.z2d=md1.z(pos_node_2d);145 144 end 146 145 -
issm/trunk/src/m/model/parameterization/parameterize.m
r9423 r9451 13 13 14 14 %some checks 15 if md.counter>=4,16 %We need to take this out, as it gets too constraining.17 choice=input('This model already has parameters and has been extruded. Are you sure you want to go ahead? (y/n)','s');18 if ~strcmp(choice,'y')19 error('no parameters done ... exiting');20 end21 elseif md.counter==322 disp('This model already has parameters, overwriting...')23 else24 if (md.counter<2)25 error('parameterize error message: you need to run geography.m first on this model');26 else27 md.counter=3;28 end29 end30 15 if ~exist(parametername), 31 16 error(['parameterize error message: file ' parametername ' not found !']); -
issm/trunk/src/m/model/plot/processmesh.m
r8728 r9451 37 37 38 38 39 z2d=md.z2d;40 39 elements2d=md.elements2d; 41 40 elements=md.elements; … … 63 62 x=x2d; 64 63 y=y2d; 65 z=z 2d;64 z=zeros(size(x2d)); 66 65 elements=elements2d; 67 66 elements_type=elements_type2d; -
issm/trunk/src/m/model/setelementstype.m
r8823 r9451 22 22 if ((nargin<2) | (nargout~=1)), 23 23 error('setelementstype error message'); 24 end25 26 if md.counter<3,27 error('only fully parameterized 2d models can be setelementstyped');28 24 end 29 25 -
issm/trunk/src/m/model/slope.m
r8298 r9451 10 10 numberofnodes=md.numberofnodes; 11 11 index=md.elements; 12 x=md.x; y=md.y; z=md.z;12 x=md.x; y=md.y; 13 13 else 14 14 numberofelements=md.numberofelements2d; 15 15 numberofnodes=md.numberofnodes2d; 16 16 index=md.elements2d; 17 x=md.x2d; y=md.y2d; z=md.z2d;17 x=md.x2d; y=md.y2d; 18 18 end 19 19 -
issm/trunk/src/m/qmu/qmumarshall.m
r6733 r9451 64 64 WriteData(fid,md.part,'Mat','part'); 65 65 66 WriteData(fid,md.qmu_save_femmodel,'Integer','qmu_save_femmodel');67 68 66 %close file 69 67 st=fclose(fid); -
issm/trunk/src/m/solutions/SpawnCore.m
r8944 r9451 10 10 solution_type=femmodel.parameters.SolutionType; 11 11 control_analysis=femmodel.parameters.ControlAnalysis; 12 qmu_save_femmodel=femmodel.parameters.QmuSaveFemmodel;13 12 14 13 issmprintf(VerboseQmu(),'%s%i',[' qmu iteration:'],counter); … … 24 23 %now process the results to get response function values 25 24 responses=DakotaResponses(femmodel.elements,femmodel.nodes,femmodel.vertices,femmodel.loads,femmodel.materials,femmodel.parameters,responsedescriptors); 26 27 if qmu_save_femmodel28 issmprintf(VerboseQmu(),'%s%i%s',[' writing femmodel to femmodel_spawncorem_'],counter,['.mat']);29 save(sprintf('femmodel_spawncorem_%i',counter),'femmodel');30 end31 -
issm/trunk/src/m/utils/Mesh/argusmesh.m
r9423 r9451 87 87 md.elementonbed=ones(md.numberofelements,1); 88 88 md.elementonsurface=ones(md.numberofelements,1); 89 md.counter=1;90 89 md.dim=2; 91 90 md=addnote(md,notes); -
issm/trunk/src/m/utils/Mesh/squaremesh.m
r9423 r9451 78 78 %plug other field 79 79 md.dim=2; 80 md.counter=1;
Note:
See TracChangeset
for help on using the changeset viewer.