Changeset 10517
- Timestamp:
- 11/07/11 15:16:24 (13 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 1 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r10440 r10517 484 484 SpcDynamicEnum, 485 485 IceVolumeEnum, 486 DiagnosticStokesBasalPenaltyEnum,487 486 MaximumNumberOfEnums 488 487 }; -
issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
r10440 r10517 428 428 case SpcDynamicEnum : return "SpcDynamic"; 429 429 case IceVolumeEnum : return "IceVolume"; 430 case DiagnosticStokesBasalPenaltyEnum : return "DiagnosticStokesBasalPenalty";431 430 default : return "unknown"; 432 431 -
issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp
r10440 r10517 65 65 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticRiftPenaltyThresholdEnum)); 66 66 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticStokesreconditioningEnum)); 67 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticStokesBasalPenaltyEnum));68 67 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticShelfDampeningEnum)); 69 68 parameters->AddObject(iomodel->CopyConstantObject(DiagnosticViscosityOvershootEnum)); -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
r10440 r10517 20 20 double rho_ice; 21 21 double stokesreconditioning; 22 bool isstokes,ismacayealpattyn ,stokes_basal_penalty;22 bool isstokes,ismacayealpattyn; 23 23 bool spcpresent=false; 24 24 int Mx,Nx; … … 57 57 iomodel->Constant(&isstokes,FlowequationIsstokesEnum); 58 58 iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum); 59 iomodel->Constant(&stokes_basal_penalty,DiagnosticStokesBasalPenaltyEnum);60 59 61 60 /*Recover pointer: */ … … 298 297 } 299 298 300 /*Constraint at the bedrock interface (v.n ~ vz ~ 0)*/ 301 if(!stokes_basal_penalty){ 302 if(nodeonbed[i] && nodeonicesheet[i] && nodeonstokes[i]){ 303 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,3,0.,DiagnosticHorizAnalysisEnum)); 304 count++; 305 } 299 /*Constraint at the bedrock interface (v.n = vz = 0) (Coordinates will be updated according to the bed slope)*/ 300 if(nodeonbed[i] && nodeonicesheet[i] && nodeonstokes[i]){ 301 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,3,0.,DiagnosticHorizAnalysisEnum)); 302 count++; 306 303 } 307 304 } -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
r10440 r10517 27 27 int dim; 28 28 int numberofvertices; 29 bool ismacayealpattyn,isstokes ,stokes_basal_penalty;29 bool ismacayealpattyn,isstokes; 30 30 int numpenalties,numberofpressureloads,numrifts,numriftsegments; 31 31 double *pressureload = NULL; … … 45 45 iomodel->Constant(&ismacayealpattyn,FlowequationIsmacayealpattynEnum); 46 46 iomodel->Constant(&numrifts,RiftsNumriftsEnum); 47 iomodel->Constant(&stokes_basal_penalty,DiagnosticStokesBasalPenaltyEnum);48 47 49 48 /*Recover pointer: */ … … 124 123 xfree((void**)&pressureload); 125 124 126 if(stokes_basal_penalty){127 /*create penalties for nodes on the base of icesheet. We must have wb=ub*db/dx+vb*db/dy */128 iomodel->FetchData(&nodeonbed,NULL,NULL,MeshVertexonbedEnum);129 iomodel->FetchData(&nodeonicesheet,NULL,NULL,MaskVertexongroundediceEnum);130 iomodel->FetchData(&nodeonstokes,NULL,NULL,FlowequationBorderstokesEnum);131 iomodel->FetchData(&vertices_type,NULL,NULL,FlowequationVertexEquationEnum);132 iomodel->FetchData(1,MeshElementsEnum);133 CreateSingleNodeToElementConnectivity(iomodel);134 135 for (i=0;i<numberofvertices;i++){136 if(iomodel->my_vertices[i]==1 && iomodel->singlenodetoelementconnectivity[i]!=0){137 138 //if ((nodeonbed[i]) && (nodeonstokes[i])){139 if ((nodeonbed[i]) && (nodeonicesheet[i]) && (nodeonstokes[i])){140 141 loads->AddObject(new Pengrid(iomodel->loadcounter+count+1,i,iomodel,DiagnosticHorizAnalysisEnum));142 count++;143 }144 }145 }146 xfree((void**)&nodeonbed);147 xfree((void**)&nodeonstokes);148 xfree((void**)&nodeonicesheet);149 xfree((void**)&vertices_type);150 iomodel->DeleteData(1,MeshElementsEnum);151 }152 153 125 /*Create Penpair for penalties: */ 154 126 iomodel->FetchData(&penalties,&numpenalties,NULL,DiagnosticVertexPairingEnum); -
issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
r10440 r10517 426 426 else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum; 427 427 else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum; 428 else if (strcmp(name,"DiagnosticStokesBasalPenalty")==0) return DiagnosticStokesBasalPenaltyEnum;429 428 else _error_("Enum %s not found",name); 430 429 -
issm/trunk/src/c/objects/Elements/Penta.cpp
r10514 r10517 2380 2380 2381 2381 int approximation; 2382 bool stokes_basal_penalty;2383 2382 double slopex[NUMVERTICES]; 2384 2383 double slopey[NUMVERTICES]; 2385 2384 double xz_plane[6]; 2386 2387 /*Do not change CS if stokes_basal_penalty is activated*/2388 parameters->FindParam(&stokes_basal_penalty,DiagnosticStokesBasalPenaltyEnum);2389 if(stokes_basal_penalty) return;2390 2385 2391 2386 /*For Stokes only: we want the CS to be tangential to the bedrock*/ -
issm/trunk/src/m/classes/diagnostic.m
r10510 r10517 16 16 icefront = modelfield('default',NaN,'marshall',true,'preprocess','marshallicefront','format','DoubleMat','mattype',3); 17 17 maxiter = modelfield('default',0,'marshall',true,'format','Integer'); 18 stokes_basal_penalty = modelfield('default',0,'marshall',true,'format','Boolean');19 18 shelf_dampening = modelfield('default',0,'marshall',true,'format','Integer'); 20 19 vertex_pairing = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',3); … … 76 75 %parameter is often used. 77 76 obj.rift_penalty_lock=10; 78 79 %penalty scheme for basal Dirichlet condition of Full-Stokes80 %activated by default81 obj.stokes_basal_penalty=0;82 77 83 78 end % }}} … … 151 146 fielddisplay(obj,'shelf_dampening','use dampening for floating ice ? Only for Stokes model'); 152 147 fielddisplay(obj,'stokesreconditioning','multiplier for incompressibility equation. Only for Stokes model'); 153 fielddisplay(obj,'stokes_basal_penalty','penalty based basal condition for grounded ice. Only for Stokes model');154 148 fielddisplay(obj,'referential','local referential'); 155 149 fielddisplay(obj,'requested_outputs','additional outputs requested');
Note:
See TracChangeset
for help on using the changeset viewer.