[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