[issm-svn] r12301 - issm/trunk/src
morlighe at issm.ess.uci.edu
morlighe at issm.ess.uci.edu
Tue May 29 14:28:15 PDT 2012
Author: morlighe
Date: 2012-05-29 14:28:15 -0700 (Tue, 29 May 2012)
New Revision: 12301
Added:
issm/trunk/src/m/enum/MaterialsRhoFreshwaterEnum.m
issm/trunk/src/m/enum/SurfaceforcingsMonthlytemperaturesEnum.m
Modified:
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
issm/trunk/src/c/objects/Elements/Tria.cpp
issm/trunk/src/c/objects/Materials/Matpar.cpp
issm/trunk/src/c/objects/Materials/Matpar.h
issm/trunk/src/m/classes/materials.m
Log:
Added md.materials.rho_freshwater
Modified: issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h 2012-05-29 21:01:27 UTC (rev 12300)
+++ issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h 2012-05-29 21:28:15 UTC (rev 12301)
@@ -102,6 +102,7 @@
MaterialsRheologyNEnum,
MaterialsRhoIceEnum,
MaterialsRhoWaterEnum,
+ MaterialsRhoFreshwaterEnum,
MaterialsMuWaterEnum,
MaterialsThermalExchangeVelocityEnum,
MaterialsThermalconductivityEnum,
@@ -159,7 +160,7 @@
SurfaceforcingsPrecipitationEnum,
SurfaceforcingsMassBalanceEnum,
SurfaceforcingsIspddEnum,
- SurfaceforcingsMonthlytemperatures,
+ SurfaceforcingsMonthlytemperaturesEnum,
ThermalMaxiterEnum,
ThermalPenaltyFactorEnum,
ThermalPenaltyLockEnum,
Modified: issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp 2012-05-29 21:01:27 UTC (rev 12300)
+++ issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp 2012-05-29 21:28:15 UTC (rev 12301)
@@ -106,6 +106,7 @@
case MaterialsRheologyNEnum : return "MaterialsRheologyN";
case MaterialsRhoIceEnum : return "MaterialsRhoIce";
case MaterialsRhoWaterEnum : return "MaterialsRhoWater";
+ case MaterialsRhoFreshwaterEnum : return "MaterialsRhoFreshwater";
case MaterialsMuWaterEnum : return "MaterialsMuWater";
case MaterialsThermalExchangeVelocityEnum : return "MaterialsThermalExchangeVelocity";
case MaterialsThermalconductivityEnum : return "MaterialsThermalconductivity";
@@ -163,6 +164,7 @@
case SurfaceforcingsPrecipitationEnum : return "SurfaceforcingsPrecipitation";
case SurfaceforcingsMassBalanceEnum : return "SurfaceforcingsMassBalance";
case SurfaceforcingsIspddEnum : return "SurfaceforcingsIspdd";
+ case SurfaceforcingsMonthlytemperaturesEnum : return "SurfaceforcingsMonthlytemperatures";
case ThermalMaxiterEnum : return "ThermalMaxiter";
case ThermalPenaltyFactorEnum : return "ThermalPenaltyFactor";
case ThermalPenaltyLockEnum : return "ThermalPenaltyLock";
Modified: issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
===================================================================
--- issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp 2012-05-29 21:01:27 UTC (rev 12300)
+++ issm/trunk/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp 2012-05-29 21:28:15 UTC (rev 12301)
@@ -70,7 +70,7 @@
iomodel->FetchDataToInput(elements,VyEnum);
iomodel->FetchDataToInput(elements,ThermalSpctemperatureEnum);
iomodel->FetchDataToInput(elements,SurfaceforcingsPrecipitationEnum);
- iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperatures);
+ iomodel->FetchDataToInput(elements,SurfaceforcingsMonthlytemperaturesEnum);
}
else{
iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
Modified: issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp 2012-05-29 21:01:27 UTC (rev 12300)
+++ issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp 2012-05-29 21:28:15 UTC (rev 12301)
@@ -107,6 +107,7 @@
else if (strcmp(name,"MaterialsRheologyN")==0) return MaterialsRheologyNEnum;
else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
else if (strcmp(name,"MaterialsRhoWater")==0) return MaterialsRhoWaterEnum;
+ else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;
@@ -135,11 +136,11 @@
else if (strcmp(name,"PrognosticHydrostaticAdjustment")==0) return PrognosticHydrostaticAdjustmentEnum;
else if (strcmp(name,"PrognosticMinThickness")==0) return PrognosticMinThicknessEnum;
else if (strcmp(name,"PrognosticPenaltyFactor")==0) return PrognosticPenaltyFactorEnum;
- else if (strcmp(name,"PrognosticSpcthickness")==0) return PrognosticSpcthicknessEnum;
else stage=2;
}
if(stage==2){
- if (strcmp(name,"PrognosticStabilization")==0) return PrognosticStabilizationEnum;
+ if (strcmp(name,"PrognosticSpcthickness")==0) return PrognosticSpcthicknessEnum;
+ else if (strcmp(name,"PrognosticStabilization")==0) return PrognosticStabilizationEnum;
else if (strcmp(name,"PrognosticVertexPairing")==0) return PrognosticVertexPairingEnum;
else if (strcmp(name,"QmuIsdakota")==0) return QmuIsdakotaEnum;
else if (strcmp(name,"QmuMassFluxSegments")==0) return QmuMassFluxSegmentsEnum;
@@ -167,6 +168,7 @@
else if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum;
else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
+ else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
else if (strcmp(name,"ThermalMaxiter")==0) return ThermalMaxiterEnum;
else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum;
else if (strcmp(name,"ThermalPenaltyLock")==0) return ThermalPenaltyLockEnum;
@@ -257,12 +259,12 @@
else if (strcmp(name,"Input")==0) return InputEnum;
else if (strcmp(name,"IntInput")==0) return IntInputEnum;
else if (strcmp(name,"IntParam")==0) return IntParamEnum;
- else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
- else if (strcmp(name,"MacAyeal2dIceFront")==0) return MacAyeal2dIceFrontEnum;
else stage=3;
}
if(stage==3){
- if (strcmp(name,"MacAyeal3dIceFront")==0) return MacAyeal3dIceFrontEnum;
+ if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
+ else if (strcmp(name,"MacAyeal2dIceFront")==0) return MacAyeal2dIceFrontEnum;
+ else if (strcmp(name,"MacAyeal3dIceFront")==0) return MacAyeal3dIceFrontEnum;
else if (strcmp(name,"Matice")==0) return MaticeEnum;
else if (strcmp(name,"Matpar")==0) return MatparEnum;
else if (strcmp(name,"Node")==0) return NodeEnum;
@@ -380,12 +382,12 @@
else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
- else if (strcmp(name,"P0")==0) return P0Enum;
- else if (strcmp(name,"P1")==0) return P1Enum;
else stage=4;
}
if(stage==4){
- if (strcmp(name,"P1DG")==0) return P1DGEnum;
+ if (strcmp(name,"P0")==0) return P0Enum;
+ else if (strcmp(name,"P1")==0) return P1Enum;
+ else if (strcmp(name,"P1DG")==0) return P1DGEnum;
else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
else if (strcmp(name,"BoolElementResult")==0) return BoolElementResultEnum;
else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
Modified: issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- issm/trunk/src/c/objects/Elements/Tria.cpp 2012-05-29 21:01:27 UTC (rev 12300)
+++ issm/trunk/src/c/objects/Elements/Tria.cpp 2012-05-29 21:28:15 UTC (rev 12301)
@@ -2315,9 +2315,9 @@
/*Get material parameters :*/
rho_ice=matpar->GetRhoIce();
- //rho_freshwater=matpar->GetRhoWater();
+ rho_water=matpar->GetRhoFreshwater();
- sconv=(1000/rho_ice)/12.; //rhow_rain/rhoi / 12 months
+ sconv=(rho_water/rho_ice)/12.; //rhow_rain/rhoi / 12 months
/*PDD constant*/
siglim = 2.5*signorm;
Modified: issm/trunk/src/c/objects/Materials/Matpar.cpp
===================================================================
--- issm/trunk/src/c/objects/Materials/Matpar.cpp 2012-05-29 21:01:27 UTC (rev 12300)
+++ issm/trunk/src/c/objects/Materials/Matpar.cpp 2012-05-29 21:28:15 UTC (rev 12301)
@@ -24,9 +24,10 @@
/*FUNCTION Matpar::Matpar(int matpar_mid,IoModel* iomodel){{{1*/
Matpar::Matpar(int matpar_mid, IoModel* iomodel){
- this->mid = matpar_mid;
+ this->mid = matpar_mid;
iomodel->Constant(&this->rho_ice,MaterialsRhoIceEnum);
iomodel->Constant(&this->rho_water,MaterialsRhoWaterEnum);
+ iomodel->Constant(&this->rho_freshwater,MaterialsRhoFreshwaterEnum);
iomodel->Constant(&this->mu_water,MaterialsMuWaterEnum);
iomodel->Constant(&this->heatcapacity,MaterialsHeatcapacityEnum);
iomodel->Constant(&this->thermalconductivity,MaterialsThermalconductivityEnum);
@@ -59,6 +60,7 @@
printf(" mid: %i\n",mid);
printf(" rho_ice: %g\n",rho_ice);
printf(" rho_water: %g\n",rho_water);
+ printf(" rho_freshwater: %g\n",rho_freshwater);
printf(" mu_water: %g\n",mu_water);
printf(" heatcapacity: %g\n",heatcapacity);
printf(" thermalconductivity: %g\n",thermalconductivity);
@@ -75,21 +77,7 @@
/*FUNCTION Matpar::DeepEcho {{{1*/
void Matpar::DeepEcho(void){
- printf("Matpar:\n");
- printf(" mid: %i\n",mid);
- printf(" rho_ice: %g\n",rho_ice);
- printf(" rho_water: %g\n",rho_water);
- printf(" mu_water: %g\n",mu_water);
- printf(" heatcapacity: %g\n",heatcapacity);
- printf(" thermalconductivity: %g\n",thermalconductivity);
- printf(" latentheat: %g\n",latentheat);
- printf(" beta: %g\n",beta);
- printf(" meltingpoint: %g\n",meltingpoint);
- printf(" referencetemperature: %g\n",referencetemperature);
- printf(" mixed_layer_capacity: %g\n",mixed_layer_capacity);
- printf(" thermal_exchange_velocity: %g\n",thermal_exchange_velocity);
- printf(" g: %g\n",g);
- return;
+ this->Echo();
}
/*}}}1*/
/*FUNCTION Matpar::Id {{{1*/
@@ -121,6 +109,7 @@
memcpy(marshalled_dataset,&mid,sizeof(mid));marshalled_dataset+=sizeof(mid);
memcpy(marshalled_dataset,&rho_ice,sizeof(rho_ice));marshalled_dataset+=sizeof(rho_ice);
memcpy(marshalled_dataset,&rho_water,sizeof(rho_water));marshalled_dataset+=sizeof(rho_water);
+ memcpy(marshalled_dataset,&rho_freshwater,sizeof(rho_freshwater));marshalled_dataset+=sizeof(rho_freshwater);
memcpy(marshalled_dataset,&mu_water,sizeof(mu_water));marshalled_dataset+=sizeof(mu_water);
memcpy(marshalled_dataset,&heatcapacity,sizeof(heatcapacity));marshalled_dataset+=sizeof(heatcapacity);
memcpy(marshalled_dataset,&thermalconductivity,sizeof(thermalconductivity));marshalled_dataset+=sizeof(thermalconductivity);
@@ -142,6 +131,7 @@
return sizeof(mid)+
sizeof(rho_ice)+
sizeof(rho_water)+
+ sizeof(rho_freshwater)+
sizeof(mu_water)+
sizeof(heatcapacity)+
sizeof(thermalconductivity)+
@@ -169,6 +159,7 @@
memcpy(&mid,marshalled_dataset,sizeof(mid));marshalled_dataset+=sizeof(mid);
memcpy(&rho_ice,marshalled_dataset,sizeof(rho_ice));marshalled_dataset+=sizeof(rho_ice);
memcpy(&rho_water,marshalled_dataset,sizeof(rho_water));marshalled_dataset+=sizeof(rho_water);
+ memcpy(&rho_freshwater,marshalled_dataset,sizeof(rho_freshwater));marshalled_dataset+=sizeof(rho_freshwater);
memcpy(&mu_water,marshalled_dataset,sizeof(mu_water));marshalled_dataset+=sizeof(mu_water);
memcpy(&heatcapacity,marshalled_dataset,sizeof(heatcapacity));marshalled_dataset+=sizeof(heatcapacity);
memcpy(&thermalconductivity,marshalled_dataset,sizeof(thermalconductivity));marshalled_dataset+=sizeof(thermalconductivity);
@@ -242,51 +233,42 @@
case MaterialsRhoIceEnum:
this->rho_ice=constant;
break;
-
case MaterialsRhoWaterEnum:
this->rho_water=constant;
break;
-
+ case MaterialsRhoFreshwaterEnum:
+ this->rho_freshwater=constant;
+ break;
case MaterialsMuWaterEnum:
this->mu_water=constant;
break;
-
case MaterialsHeatcapacityEnum:
this->heatcapacity=constant;
break;
-
case MaterialsThermalconductivityEnum:
this->thermalconductivity=constant;
break;
-
case MaterialsLatentheatEnum:
this->latentheat=constant;
break;
-
case MaterialsBetaEnum:
this->beta=constant;
break;
-
case MaterialsMeltingpointEnum:
this->meltingpoint=constant;
break;
-
case ConstantsReferencetemperatureEnum:
this->referencetemperature=constant;
break;
-
case MaterialsMixedLayerCapacityEnum:
this->mixed_layer_capacity=constant;
break;
-
case MaterialsThermalExchangeVelocityEnum:
this->thermalconductivity=constant;
break;
-
case ConstantsGEnum:
this->g=constant;
break;
-
default:
break;
}
@@ -363,6 +345,11 @@
return rho_water;
}
/*}}}1*/
+/*FUNCTION Matpar::GetRhoFreshwater {{{1*/
+double Matpar::GetRhoFreshwater(){
+ return rho_freshwater;
+}
+/*}}}1*/
/*FUNCTION Matpar::GetMuWater {{{1*/
double Matpar::GetMuWater(){
return mu_water;
Modified: issm/trunk/src/c/objects/Materials/Matpar.h
===================================================================
--- issm/trunk/src/c/objects/Materials/Matpar.h 2012-05-29 21:01:27 UTC (rev 12300)
+++ issm/trunk/src/c/objects/Materials/Matpar.h 2012-05-29 21:28:15 UTC (rev 12301)
@@ -14,9 +14,10 @@
class Matpar: public Material{
private:
- int mid;
- double rho_ice;
- double rho_water;
+ int mid;
+ double rho_ice;
+ double rho_water;
+ double rho_freshwater;
double mu_water;
double heatcapacity;
double thermalconductivity;
@@ -76,6 +77,7 @@
double GetG();
double GetRhoIce();
double GetRhoWater();
+ double GetRhoFreshwater();
double GetMuWater();
double GetMixedLayerCapacity();
double GetThermalExchangeVelocity();
Modified: issm/trunk/src/m/classes/materials.m
===================================================================
--- issm/trunk/src/m/classes/materials.m 2012-05-29 21:01:27 UTC (rev 12300)
+++ issm/trunk/src/m/classes/materials.m 2012-05-29 21:28:15 UTC (rev 12301)
@@ -7,6 +7,7 @@
properties (SetAccess=public)
rho_ice = 0;
rho_water = 0;
+ rho_freshwater = 0;
mu_water = 0;
heatcapacity = 0;
latentheat = 0;
@@ -33,9 +34,12 @@
%ice density (kg/m^3)
obj.rho_ice=917;
- %water density (kg/m^3)
+ %ocean water density (kg/m^3)
obj.rho_water=1023;
+ %fresh water density (kg/m^3)
+ obj.rho_freshwater=1000;
+
%water viscosity (N.s/m^2)
obj.mu_water=0.001787;
@@ -67,6 +71,7 @@
function checkconsistency(obj,md,solution,analyses) % {{{
checkfield(md,'materials.rho_ice','>',0);
checkfield(md,'materials.rho_water','>',0);
+ checkfield(md,'materials.rho_freshwater','>',0);
checkfield(md,'materials.mu_water','>',0);
checkfield(md,'materials.rheology_B','>',0,'size',[md.mesh.numberofvertices 1]);
checkfield(md,'materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]);
@@ -76,7 +81,8 @@
disp(sprintf(' Materials:\n'));
fielddisplay(obj,'rho_ice','ice density [kg/m^3]');
- fielddisplay(obj,'rho_water','water density [kg/m^3]');
+ fielddisplay(obj,'rho_water','ocean water density [kg/m^3]');
+ fielddisplay(obj,'freshrho_water','fresh water density [kg/m^3]');
fielddisplay(obj,'mu_water','water viscosity [N s/m^2]');
fielddisplay(obj,'heatcapacity','heat capacity [J/kg/K]');
fielddisplay(obj,'thermalconductivity','ice thermal conductivity [W/m/K]');
@@ -92,6 +98,7 @@
function marshall(obj,fid) % {{{
WriteData(fid,'object',obj,'fieldname','rho_ice','format','Double');
WriteData(fid,'object',obj,'fieldname','rho_water','format','Double');
+ WriteData(fid,'object',obj,'fieldname','rho_freshwater','format','Double');
WriteData(fid,'object',obj,'fieldname','mu_water','format','Double');
WriteData(fid,'object',obj,'fieldname','heatcapacity','format','Double');
WriteData(fid,'object',obj,'fieldname','latentheat','format','Double');
More information about the issm-svn
mailing list