Changeset 16322
- Timestamp:
- 10/08/13 02:22:37 (11 years ago)
- Location:
- issm/trunk-jpl
- Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/transient_core.cpp
r16321 r16322 119 119 else{ 120 120 enthalpy_core(femmodel); 121 121 PostprocessingEnthalpyx(femmodel); 122 122 } 123 123 #else -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r16314 r16322 4000 4000 enthalpy_input->GetInputValue(&enthalpy, gauss); 4001 4001 pressure_input->GetInputValue(&pressure, gauss); 4002 kappa=matpar->GetEnthalpyDiffusionParameter(enthalpy,pressure); 4003 D_scalar_conduct=gauss->weight*Jdet*kappa ;4002 kappa=matpar->GetEnthalpyDiffusionParameter(enthalpy,pressure); _assert_(kappa>0.); 4003 D_scalar_conduct=gauss->weight*Jdet*kappa/rho_ice; 4004 4004 if(reCast<bool,IssmDouble>(dt)) D_scalar_conduct=D_scalar_conduct*dt; 4005 4005 … … 4451 4451 scalar_def=phi/rho_ice*Jdet*gauss->weight; 4452 4452 if(reCast<bool,IssmDouble>(dt)) scalar_def=scalar_def*dt; 4453 4453 4454 /*TODO: add -beta*laplace T_m(p)*/ 4454 4455 for(i=0;i<NUMVERTICES;i++) pe->values[i]+=scalar_def*L[i]; 4455 4456 … … 4470 4471 enthalpypicard_input->GetInputValue(&enthalpypicard, gauss); 4471 4472 kappa=matpar->GetEnthalpyDiffusionParameter(enthalpy,pressure); 4472 tau_parameter=GetStabilizationParameter(u,v,w,diameter,kappa); 4473 kappa/=rho_ice; 4474 tau_parameter=GetStabilizationParameter(u,v,w,diameter,kappa); 4473 4475 4474 4476 for(i=0;i<NUMVERTICES;i++) pe->values[i]+=tau_parameter*scalar_def*(u*dbasis[0][i]+v*dbasis[1][i]+w*dbasis[2][i]); … … 4554 4556 IssmDouble Jdet2d,dt; 4555 4557 IssmDouble rho_ice,heatcapacity,geothermalflux_value; 4556 IssmDouble basalfriction,alpha2,vx,vy ;4558 IssmDouble basalfriction,alpha2,vx,vy,vz; 4557 4559 IssmDouble scalar,enthalpy,enthalpyup; 4558 4560 IssmDouble pressure,pressureup; … … 4600 4602 enthalpy_input->GetInputValue(&enthalpy,gauss); 4601 4603 pressure_input->GetInputValue(&pressure,gauss); 4602 if(enthalpy>=matpar->PureIceEnthalpy(pressure)){ 4604 watercolumn_input->GetInputValue(&watercolumn,gauss); 4605 4606 if((watercolumn==0.) && (enthalpy<matpar->PureIceEnthalpy(pressure))){ 4607 /* the above check is equivalent to 4608 NOT ((watercolumn>0.) AND (enthalpy<PIE)) AND (enthalpy<PIE)*/ 4609 geothermalflux_input->GetInputValue(&geothermalflux_value,gauss); 4610 4611 friction->GetAlpha2(&alpha2,gauss,VxEnum,VyEnum,VzEnum); 4612 vx_input->GetInputValue(&vx,gauss); 4613 vy_input->GetInputValue(&vy,gauss); 4614 vz_input->GetInputValue(&vz,gauss); 4615 basalfriction=alpha2*(pow(vx,2.0)+pow(vy,2.0)+pow(vz,2.0)); 4616 4617 scalar=gauss->weight*Jdet2d*(basalfriction+geothermalflux_value)/(rho_ice); 4618 if(reCast<bool,IssmDouble>(dt)) scalar=dt*scalar; 4619 for(i=0;i<numdof;i++) pe->values[i]+=scalar*basis[i]; 4620 } 4621 else if(enthalpy>=matpar->PureIceEnthalpy(pressure)){ 4622 /* check positive thickness of temperate basal ice layer */ 4603 4623 enthalpy_input->GetInputValue(&enthalpyup,gaussup); 4604 4624 pressure_input->GetInputValue(&pressureup,gaussup); 4605 4625 if(enthalpyup>=matpar->PureIceEnthalpy(pressureup)){ 4606 // temperate ice has positive thickness: grad enthalpy*n=0.4626 // TODO: temperate ice has positive thickness: grad enthalpy*n=0. 4607 4627 } 4608 4628 else{ … … 4610 4630 } 4611 4631 } 4612 else{ 4613 watercolumn_input->GetInputValue(&watercolumn,gauss); 4614 if(watercolumn==0.){ 4615 /*add geothermal heat flux and basal friction*/ 4616 geothermalflux_input->GetInputValue(&geothermalflux_value,gauss); 4617 friction->GetAlpha2(&alpha2,gauss,VxEnum,VyEnum,VzEnum); 4618 vx_input->GetInputValue(&vx,gauss); 4619 vy_input->GetInputValue(&vy,gauss); 4620 basalfriction=alpha2*(pow(vx,2.0)+pow(vy,2.0)); 4621 4622 scalar=gauss->weight*Jdet2d*(basalfriction+geothermalflux_value)/(rho_ice); 4623 if(reCast<bool,IssmDouble>(dt)) scalar=dt*scalar; 4624 4625 for(i=0;i<numdof;i++) pe->values[i]+=scalar*basis[i]; 4626 } 4627 else{ /*do nothing (water layer acts as insulation)*/ } 4632 else { 4633 // base cold, but watercolumn positive. Set base to h_pmp. 4628 4634 } 4629 4635 } … … 5011 5017 case LliboutryDuvalEnum: 5012 5018 B_average=LliboutryDuval((values[0]+values[1]+values[2]+values[3]+values[4]+values[5])/6.0, 5013 (pressure[0]+pressure[1]+pressure[2]+pressure[3]+pressure[4]+pressure[5])/6.0, 5014 material->GetN()); 5019 (pressure[0]+pressure[1]+pressure[2]+pressure[3]+pressure[4]+pressure[5])/6.0, 5020 material->GetN(), 5021 matpar->GetBeta(), matpar->GetReferenceTemperature(), matpar->GetHeatCapacity(), matpar->GetLatentHeat()); 5015 5022 for(i=0;i<numdof;i++) B[i]=B_average; 5016 5023 this->material->inputs->AddInput(new PentaInput(MaterialsRheologyBEnum,B,P1Enum)); … … 5032 5039 5033 5040 /*Intermediary*/ 5034 bool isenthalpy,isdynamicbasalspc, istemperatelayer;5041 bool isenthalpy,isdynamicbasalspc,setspc; 5035 5042 int numindices, numindicesup; 5036 5043 IssmDouble h_pmp,pressure, pressureup; 5037 5044 IssmDouble enthalpy, enthalpyup; 5038 5045 int *indices = NULL, *indicesup = NULL; 5039 5046 … … 5045 5052 if(!isenthalpy) return; 5046 5053 parameters->FindParam(&isdynamicbasalspc,ThermalIsdynamicbasalspcEnum); 5047 isdynamicbasalspc = true; // TODO: remove before release5048 5054 if(!isdynamicbasalspc) return; 5049 5055 5050 5056 /*Fetch indices of basal & surface nodes for this finite element*/ 5051 5057 BasalNodeIndices(&numindices,&indices,this->element_type); 5052 5053 5058 SurfaceNodeIndices(&numindicesup,&indicesup,this->element_type); 5059 _assert_(numindices==numindicesup); 5054 5060 5055 5061 /*Get parameters and inputs: */ 5056 5062 Input* pressure_input=inputs->GetInput(PressureEnum); _assert_(pressure_input); 5057 5058 5059 /*if there is a temperate layer of positive thickness, setenthalpy=h_pmp at that node*/5063 Input* enthalpy_input=inputs->GetInput(EnthalpyEnum); _assert_(enthalpy_input); 5064 5065 /*if there is a temperate layer of zero thickness, set spc enthalpy=h_pmp at that node*/ 5060 5066 GaussPenta* gauss=new GaussPenta(); 5061 5067 GaussPenta* gaussup=new GaussPenta(); 5062 5068 for(int i=0;i<numindices;i++){ 5063 5069 gauss->GaussNode(this->element_type,indices[i]); 5064 5070 gaussup->GaussNode(this->element_type,indicesup[i]); 5065 5071 5066 5072 /*Check wether there is a temperate layer at the base or not */ 5067 5068 5073 /*check if node is temperate, if not, continue*/ 5074 enthalpy_input->GetInputValue(&enthalpy, gauss); 5069 5075 pressure_input->GetInputValue(&pressure, gauss); 5070 if (enthalpy<matpar->PureIceEnthalpy(pressure)){ 5071 continue; 5072 } 5073 /*check if upper node is temperate. 5074 if yes, then we have a temperate layer of positive thickness and 5075 reset the spc. 5076 if not, apply dirichlet BC.*/ 5077 enthalpy_input->GetInputValue(&enthalpyup, gaussup); 5078 pressure_input->GetInputValue(&pressureup, gaussup); 5079 istemperatelayer = false; 5080 if (enthalpyup>=matpar->PureIceEnthalpy(pressureup)) 5081 istemperatelayer=true; 5082 5083 /*Add Dirichlet constraint to this node if there is no layer of temperate ice with positive thickness*/ 5084 if(!istemperatelayer){ 5076 setspc = false; 5077 if (enthalpy>=matpar->PureIceEnthalpy(pressure)){ 5078 /*check if upper node is temperate, too. 5079 if yes, then we have a temperate layer of positive thickness and reset the spc. 5080 if not, apply dirichlet BC.*/ 5081 enthalpy_input->GetInputValue(&enthalpyup, gaussup); 5082 pressure_input->GetInputValue(&pressureup, gaussup); 5083 setspc=(enthalpyup<matpar->PureIceEnthalpy(pressureup))?true:false; 5084 } 5085 5086 if (setspc) { 5085 5087 /*Calculate enthalpy at pressure melting point */ 5086 5088 h_pmp=matpar->PureIceEnthalpy(pressure); … … 5088 5090 nodes[indices[i]]->ApplyConstraint(1,h_pmp); 5089 5091 } 5090 5091 5092 5093 5092 else { 5093 /*remove spc*/ 5094 nodes[indices[i]]->DofInFSet(0); 5095 } 5094 5096 } 5095 5097 5096 5098 /*Free ressources:*/ 5097 5099 xDelete<int>(indices); 5098 xDelete<int>(indicesup); 5100 xDelete<int>(indicesup); 5101 delete gauss; 5102 delete gaussup; 5099 5103 } 5100 5104 /*}}}*/ … … 5102 5106 void Penta::ComputeBasalMeltingrate(void){ 5103 5107 /*Calculate the basal melt rates of the enthalpy model after Aschwanden 2012*/ 5108 /* melting rate is positive when melting, negative when refreezing*/ 5104 5109 5105 5110 /* Intermediaries */ … … 5160 5165 /*ensure that no ice is at T<Tm(p), if water layer present*/ 5161 5166 enthalpy[iv]=matpar->PureIceEnthalpy(pressure[iv]); 5162 //meltingrate_enthalpy=0.;5163 5167 } 5164 5168 else if(enthalpy[iv]<matpar->PureIceEnthalpy(pressure[iv])){ 5165 5169 /*cold base: set q*n=q_geo*n+frictionheating as Neumann BC in Penta::CreatePVectorEnthalpySheet*/ 5166 meltingrate_enthalpy=0.; 5167 checkpositivethickness=false; 5168 } 5169 else {/*do nothing, go to next check*/} 5170 checkpositivethickness=false; // cold base, skip next test 5171 } 5172 else {/*we have a temperate base, go to next test*/} 5170 5173 5171 5174 if(checkpositivethickness){ … … 5176 5179 else{ 5177 5180 enthalpy_input->GetInputDerivativeValue(&d1enthalpy[0],&xyz_list[0][0],gauss); 5178 kappa=matpar->GetEnthalpyDiffusionParameter(enthalpy[iv],pressure[iv]); 5181 kappa=matpar->GetEnthalpyDiffusionParameter(enthalpy[iv],pressure[iv]); _assert_(kappa>0.); 5179 5182 for(i=0;i<3;i++) vec_heatflux[i]=-kappa*d1enthalpy[i]; 5180 5183 } -
issm/trunk-jpl/src/c/classes/Materials/Matpar.cpp
r16125 r16322 378 378 IssmDouble Matpar::GetEnthalpyDiffusionParameter(IssmDouble enthalpy,IssmDouble pressure){ 379 379 if(enthalpy<PureIceEnthalpy(pressure)){ 380 return thermalconductivity/ (rho_ice*heatcapacity);380 return thermalconductivity/heatcapacity; 381 381 } 382 382 else{ 383 return 1.045*1.e-4 /rho_ice; // K0=1.045*1e-4 from Aschwanden 2012. TODO: fetch K0 from model383 return 1.045*1.e-4; // K0=1.045*1e-4 from Aschwanden 2012. TODO: fetch K0 from model 384 384 } 385 385 } … … 393 393 if(enthalpy<PureIceEnthalpy(pressure)){ 394 394 temperature=referencetemperature+enthalpy/heatcapacity; 395 waterfraction=0 ;395 waterfraction=0.; 396 396 } 397 397 else{ -
issm/trunk-jpl/src/c/modules/PostprocessingEnthalpyx/PostprocessingEnthalpyx.cpp
r16272 r16322 11 11 int i; 12 12 Element* element=NULL; 13 14 13 15 14 /*Compute basal melting rates: */ … … 19 18 } 20 19 21 22 /*for (i=0;i<femmodel->elements->Size();i++){20 /*drain excess water fraction: */ 21 for (i=0;i<femmodel->elements->Size();i++){ 23 22 element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i)); 24 23 element->DrainWaterfraction(); 25 24 } 26 */27 25 28 26 /*Update basal dirichlet BCs for enthalpy: */ -
issm/trunk-jpl/src/c/shared/Elements/LliboutryDuval.cpp
r16144 r16322 8 8 9 9 /* get ice stiffness B from enthalpy, pressure and flow law exponent*/ 10 IssmDouble LliboutryDuval(IssmDouble enthalpy, IssmDouble pressure, IssmDouble n){11 /*Use parameterization for the rheology: Aschwanden 201210 IssmDouble LliboutryDuval(IssmDouble enthalpy, IssmDouble pressure, IssmDouble n, IssmDouble betaCC, IssmDouble referencetemperature, IssmDouble heatcapacity, IssmDouble latentheat){ 11 /*Use parameterization for the rheology: Grewe/Blatter 2009, Aschwanden 2012 12 12 * 13 13 * A(H,p) = A0 exp(-Q/RT(H,p)), if H < H_s(p) … … 22 22 * H_s(p) = c_i (Tpmp - Tref) 23 23 * 24 * Tpmp = T - beta p;24 * Tpmp = T - betaCC p; 25 25 * 26 26 * A0 constant of proportionality … … 35 35 * Convert A to B : B = A^(-1/n) */ 36 36 37 /*Some physical constants (Aschwanden 2012)*/ 38 /*TODO: get those constants from model*/ 39 IssmDouble beta=7.9*pow(10.,-8.); 40 IssmDouble R=8.314; 41 IssmDouble heatcapacity=2009; // J/kg/K 42 IssmDouble Tref=253.15; 43 IssmDouble latentheat=3.34*pow(10,5.); // from Aschwanden 2012 37 /*check feasibility*/ 38 _assert_(pressure>0); 39 _assert_(n>0); 40 _assert_(betaCC>0); 41 _assert_(referencetemperature>0); 42 _assert_(heatcapacity>0); 43 _assert_(latentheat>0); 44 45 /*Some physical constants*/ 46 IssmDouble R=8.314; 44 47 45 48 /*Intermediaries*/ 46 49 IssmDouble A,B,Tstar,Tpmp,H_sp,waterfraction; 47 50 48 _assert_(pressure>0); 49 _assert_(enthalpy>0); 50 Tpmp=273.15-beta*pressure; 51 H_sp=heatcapacity*(Tpmp - Tref); 51 Tpmp=273.15-betaCC*pressure; 52 H_sp=heatcapacity*(Tpmp - referencetemperature); 52 53 if (enthalpy < H_sp){ 53 Tstar = Tref + enthalpy/heatcapacity - beta*pressure;54 Tstar = referencetemperature + enthalpy/heatcapacity - betaCC*pressure; 54 55 waterfraction = 0; 55 56 } … … 75 76 } 76 77 77 /*Get stiffness from temperature, waterfraction and depth*/ 78 IssmDouble LliboutryDuval(IssmDouble temperature, IssmDouble waterfraction, IssmDouble depth,IssmDouble n){ 79 /*Use parameterization for the rheology: Greve and Blatter 2009 80 * get enthalpy from temperature and water fraction, 81 * and use LliboutryDuval(IssmDouble enthalpy, IssmDouble pressure,IssmDouble n) */ 82 83 IssmDouble rho_ice=910; // kg/m^3 84 IssmDouble g=9.81; //kg*m/s^2 85 IssmDouble heatcapacity=2009; // J/kg/K 86 IssmDouble Tref=253.15; 87 IssmDouble beta=7.9*pow(10.,-8.); 88 IssmDouble latentheat=3.34*pow(10,5.); // from Aschwanden 2012 89 IssmDouble Tstar, enthalpy, pressure, B; 90 _assert_(temperature>0); 91 _assert_(waterfraction>0); 92 _assert_(depth>0); 93 94 /*get pressure*/ 95 pressure= rho_ice*g*depth; 96 Tstar=temperature-beta*pressure; // TODO: check whether plus or minus 97 /*get enthalpy*/ 98 if (Tstar < 273.15){ 99 enthalpy=heatcapacity*(Tstar - Tref); 100 } 101 else{ 102 enthalpy=heatcapacity*(273.15 - Tref) + waterfraction*latentheat; 103 } 104 105 B=LliboutryDuval(enthalpy, pressure, n); 106 107 return B; 108 } 78 // /*Get stiffness from temperature, waterfraction and depth*/ 79 // IssmDouble LliboutryDuval(IssmDouble temperature, IssmDouble waterfraction, IssmDouble depth,IssmDouble n){ 80 // /*Use parameterization for the rheology: Greve and Blatter 2009 81 // * get enthalpy from temperature and water fraction, 82 // * and use LliboutryDuval(IssmDouble enthalpy, IssmDouble pressure,IssmDouble n) */ 83 // 84 // /*TODO: update params from model*/ 85 // IssmDouble rho_ice=910; // kg/m^3 86 // IssmDouble g=9.81; //kg*m/s^2 87 // IssmDouble heatcapacity=2009; // J/kg/K 88 // IssmDouble referencetemperature=253.15; 89 // IssmDouble betaCC=7.9*pow(10.,-8.); 90 // IssmDouble latentheat=3.34*pow(10,5.); // from Aschwanden 2012 91 // 92 // IssmDouble Tstar, enthalpy, pressure, B; 93 // _assert_(temperature>0); 94 // _assert_(waterfraction>0); 95 // _assert_(depth>0); 96 // 97 // /*get pressure*/ 98 // pressure= rho_ice*g*depth; 99 // Tstar=temperature-betaCC*pressure; // TODO: check whether plus or minus 100 // /*get enthalpy*/ 101 // if (Tstar < 273.15){ 102 // enthalpy=heatcapacity*(Tstar - referencetemperature); 103 // } 104 // else{ 105 // enthalpy=heatcapacity*(273.15 - referencetemperature) + waterfraction*latentheat; 106 // } 107 // 108 // B=LliboutryDuval(enthalpy, pressure, n, betaCC, referencetemperature, heatcapacity, latentheat); 109 // 110 // return B; 111 // } -
issm/trunk-jpl/src/c/shared/Elements/elements.h
r16026 r16322 10 10 IssmDouble Paterson(IssmDouble temperature); 11 11 IssmDouble Arrhenius(IssmDouble temperature,IssmDouble depth,IssmDouble n); 12 IssmDouble LliboutryDuval(IssmDouble enthalpy, IssmDouble pressure, IssmDouble n);13 IssmDouble LliboutryDuval(IssmDouble temperature, IssmDouble waterfraction, IssmDouble depth,IssmDouble n);12 IssmDouble LliboutryDuval(IssmDouble enthalpy, IssmDouble pressure, IssmDouble n, IssmDouble betaCC, IssmDouble referencetemperature, IssmDouble heatcapacity, IssmDouble latentheat); 13 // IssmDouble LliboutryDuval(IssmDouble temperature, IssmDouble waterfraction, IssmDouble depth,IssmDouble n); 14 14 IssmDouble PddSurfaceMassBlance(IssmDouble* monthlytemperatures, IssmDouble* monthlyprec, IssmDouble* pdds, IssmDouble* pds, 15 15 IssmDouble signorm, IssmDouble yts, IssmDouble h, IssmDouble s, -
issm/trunk-jpl/src/m/classes/thermal.m
r16274 r16322 56 56 md = checkfield(md,'thermal.spctemperature(find(md.thermal.spctemperature(1:md.mesh.numberofvertices,:)~=NaN))','<',md.materials.meltingpoint-md.materials.beta*md.materials.rho_ice*md.constants.g*replicate(pos),'message','spctemperature should be below the adjusted melting point'); 57 57 md = checkfield(md,'thermal.isenthalpy','numel',[1],'values',[0 1]); 58 md = checkfield(md,'thermal.isdynamicbasalspc','numel',[1],'values',[0 1]); 59 end 60 end % }}} 58 md = checkfield(md,'thermal.isdynamicbasalspc','numel', [1],'values',[0 1]); 59 if(md.thermal.isenthalpy) 60 md = checkfield(md,'thermal.isdynamicbasalspc','numel', [1],'values',[1], 'message',['for enthalpy run thermal.isdynamicbasalspc should be 1']); 61 end 62 end 63 end % }}} 61 64 function disp(obj) % {{{ 62 65 disp(sprintf(' Thermal solution parameters:')); -
issm/trunk-jpl/test/NightlyRun/test121.m
r16039 r16322 12 12 md.transient.isgroundingline=0; 13 13 md.thermal.isenthalpy=1; 14 md.thermal.isdynamicbasalspc=1; 14 15 md=solve(md,TransientSolutionEnum()); 15 16 -
issm/trunk-jpl/test/NightlyRun/test121.py
r16041 r16322 21 21 md.transient.isgroundingline=False 22 22 md.thermal.isenthalpy=1 23 md.thermal.isdynamicbasalspc=1 23 24 md=solve(md,TransientSolutionEnum()) 24 25 -
issm/trunk-jpl/test/NightlyRun/test122.m
r16039 r16322 7 7 md.initialization.watercolumn=zeros(md.mesh.numberofvertices,1); 8 8 md.thermal.isenthalpy=1; 9 md.thermal.isdynamicbasalspc=1; 9 10 md.thermal.stabilization=2; 10 11 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk-jpl/test/NightlyRun/test122.py
r16041 r16322 16 16 md.initialization.watercolumn=numpy.zeros((md.mesh.numberofvertices,1)) 17 17 md.thermal.isenthalpy=1 18 md.thermal.isdynamicbasalspc=1 18 19 md.thermal.stabilization=2 19 20 md.cluster=generic('name',oshostname(),'np',3) -
issm/trunk-jpl/test/NightlyRun/test326.m
r16039 r16322 12 12 md.transient.isgroundingline=0; 13 13 md.thermal.isenthalpy=1; 14 md.thermal.isdynamicbasalspc=1; 14 15 md=solve(md,TransientSolutionEnum()); 15 16 -
issm/trunk-jpl/test/NightlyRun/test326.py
r16041 r16322 22 22 md.transient.isgroundingline=False 23 23 md.thermal.isenthalpy=1 24 md.thermal.isdynamicbasalspc=1 24 25 md=solve(md,TransientSolutionEnum()) 25 26 -
issm/trunk-jpl/test/NightlyRun/test327.m
r16039 r16322 10 10 md.thermal.spctemperature(find(md.mesh.vertexonsurface))=272.; 11 11 md.thermal.isenthalpy=1; 12 md.thermal.isdynamicbasalspc=1; 12 13 md.basalforcings.geothermalflux(:)=5.; 13 14 md=solve(md,TransientSolutionEnum()); -
issm/trunk-jpl/test/NightlyRun/test327.py
r16041 r16322 20 20 md.thermal.spctemperature[numpy.nonzero(md.mesh.vertexonsurface)[0]]=272. 21 21 md.thermal.isenthalpy=1 22 md.thermal.isdynamicbasalspc=1 22 23 md.basalforcings.geothermalflux[:]=5. 23 24 md=solve(md,TransientSolutionEnum()) -
issm/trunk-jpl/test/NightlyRun/test431.m
r16039 r16322 7 7 md.timestepping.time_step=0.; 8 8 md.thermal.isenthalpy=1; 9 md.thermal.isdynamicbasalspc=1; 9 10 md.initialization.waterfraction=zeros(md.mesh.numberofvertices,1); 10 11 md.initialization.watercolumn=zeros(md.mesh.numberofvertices,1); -
issm/trunk-jpl/test/NightlyRun/test431.py
r16041 r16322 17 17 md.timestepping.time_step=0. 18 18 md.thermal.isenthalpy=1 19 md.thermal.isdynamicbasalspc=1 19 20 md.initialization.waterfraction=numpy.zeros((md.mesh.numberofvertices,1)) 20 21 md.initialization.watercolumn=numpy.zeros((md.mesh.numberofvertices,1))
Note:
See TracChangeset
for help on using the changeset viewer.