Changeset 16157
- Timestamp:
- 09/17/13 15:40:37 (12 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 6 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
r16148 r16157 156 156 MaterialsDamageDEnum, 157 157 MaterialsDamageDbarEnum, 158 MaterialsDamageLawEnum, 159 MaterialsDamageC1Enum, 160 MaterialsDamageC2Enum, 161 MaterialsDamageC3Enum, 162 MaterialsDamageC4Enum, 163 MaterialsDamageStressThresholdEnum, 158 164 MaterialsRhoIceEnum, 159 165 MaterialsRhoWaterEnum, -
issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
r16148 r16157 164 164 case MaterialsDamageDEnum : return "MaterialsDamageD"; 165 165 case MaterialsDamageDbarEnum : return "MaterialsDamageDbar"; 166 case MaterialsDamageLawEnum : return "MaterialsDamageLaw"; 167 case MaterialsDamageC1Enum : return "MaterialsDamageC1"; 168 case MaterialsDamageC2Enum : return "MaterialsDamageC2"; 169 case MaterialsDamageC3Enum : return "MaterialsDamageC3"; 170 case MaterialsDamageC4Enum : return "MaterialsDamageC4"; 171 case MaterialsDamageStressThresholdEnum : return "MaterialsDamageStressThreshold"; 166 172 case MaterialsRhoIceEnum : return "MaterialsRhoIce"; 167 173 case MaterialsRhoWaterEnum : return "MaterialsRhoWater"; -
issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
r16148 r16157 167 167 else if (strcmp(name,"MaterialsDamageD")==0) return MaterialsDamageDEnum; 168 168 else if (strcmp(name,"MaterialsDamageDbar")==0) return MaterialsDamageDbarEnum; 169 else if (strcmp(name,"MaterialsDamageLaw")==0) return MaterialsDamageLawEnum; 170 else if (strcmp(name,"MaterialsDamageC1")==0) return MaterialsDamageC1Enum; 171 else if (strcmp(name,"MaterialsDamageC2")==0) return MaterialsDamageC2Enum; 172 else if (strcmp(name,"MaterialsDamageC3")==0) return MaterialsDamageC3Enum; 173 else if (strcmp(name,"MaterialsDamageC4")==0) return MaterialsDamageC4Enum; 174 else if (strcmp(name,"MaterialsDamageStressThreshold")==0) return MaterialsDamageStressThresholdEnum; 169 175 else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum; 170 176 else if (strcmp(name,"MaterialsRhoWater")==0) return MaterialsRhoWaterEnum; … … 254 260 else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum; 255 261 else if (strcmp(name,"ThermalPenaltyLock")==0) return ThermalPenaltyLockEnum; 256 else if (strcmp(name,"ThermalPenaltyThreshold")==0) return ThermalPenaltyThresholdEnum; 262 else stage=3; 263 } 264 if(stage==3){ 265 if (strcmp(name,"ThermalPenaltyThreshold")==0) return ThermalPenaltyThresholdEnum; 257 266 else if (strcmp(name,"ThermalSpctemperature")==0) return ThermalSpctemperatureEnum; 258 267 else if (strcmp(name,"ThermalStabilization")==0) return ThermalStabilizationEnum; … … 260 269 else if (strcmp(name,"GiaLithosphereThickness")==0) return GiaLithosphereThicknessEnum; 261 270 else if (strcmp(name,"Thickness")==0) return ThicknessEnum; 262 else stage=3; 263 } 264 if(stage==3){ 265 if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum; 271 else if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum; 266 272 else if (strcmp(name,"TimesteppingFinalTime")==0) return TimesteppingFinalTimeEnum; 267 273 else if (strcmp(name,"TimesteppingCflCoefficient")==0) return TimesteppingCflCoefficientEnum; … … 377 383 else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum; 378 384 else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum; 379 else if (strcmp(name,"Param")==0) return ParamEnum; 385 else stage=4; 386 } 387 if(stage==4){ 388 if (strcmp(name,"Param")==0) return ParamEnum; 380 389 else if (strcmp(name,"L1L2IceFront")==0) return L1L2IceFrontEnum; 381 390 else if (strcmp(name,"HOIceFront")==0) return HOIceFrontEnum; … … 383 392 else if (strcmp(name,"Penpair")==0) return PenpairEnum; 384 393 else if (strcmp(name,"Penta")==0) return PentaEnum; 385 else stage=4; 386 } 387 if(stage==4){ 388 if (strcmp(name,"PentaInput")==0) return PentaInputEnum; 394 else if (strcmp(name,"PentaInput")==0) return PentaInputEnum; 389 395 else if (strcmp(name,"Profiler")==0) return ProfilerEnum; 390 396 else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum; … … 500 506 else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum; 501 507 else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum; 502 else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum; 508 else stage=5; 509 } 510 if(stage==5){ 511 if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum; 503 512 else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum; 504 513 else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum; … … 506 515 else if (strcmp(name,"P0")==0) return P0Enum; 507 516 else if (strcmp(name,"P1")==0) return P1Enum; 508 else stage=5; 509 } 510 if(stage==5){ 511 if (strcmp(name,"P1DG")==0) return P1DGEnum; 517 else if (strcmp(name,"P1DG")==0) return P1DGEnum; 512 518 else if (strcmp(name,"P1bubble")==0) return P1bubbleEnum; 513 519 else if (strcmp(name,"P1bubblecondensed")==0) return P1bubblecondensedEnum; -
issm/trunk-jpl/src/m/classes/matdamageice.m
r16148 r16157 5 5 6 6 classdef matdamageice 7 properties (SetAccess=public) 7 properties (SetAccess=public) 8 % {{{ 8 9 rho_ice = 0.; 9 10 rho_water = 0.; … … 17 18 mixed_layer_capacity = 0.; 18 19 thermal_exchange_velocity = 0.; 19 rheology_B = NaN; 20 rheology_n = NaN; 21 damage_D = NaN; 22 %damage_D 23 %damage_stress_threshold 24 %damage_c1 25 %damage_c2 26 %damage_c3 27 %damage_c4 28 20 rheology_B = NaN; 21 rheology_n = NaN; 29 22 rheology_law = ''; 23 24 %damage 25 damage_D = NaN; 26 damage_law = ''; 27 28 %parameters for law 'initial': 29 damage_stress_threshold = NaN; 30 damage_c1 = NaN; 31 damage_c2 = NaN; 32 damage_c3 = NaN; 33 damage_c4 = NaN; 30 34 31 35 %gia: … … 35 39 mantle_density = 0.; 36 40 37 end 41 end % }}} 38 42 methods 39 43 function obj = matdamageice(varargin) % {{{ … … 94 98 obj.rheology_law='Paterson'; 95 99 100 %damage parameters: 101 obj.damage_law='initial'; 102 obj.damage_stress_threshold=0; 103 obj.damage_c1=0; 104 obj.damage_c2=0; 105 obj.damage_c3=0; 106 obj.damage_c4=0; 107 96 108 %GIA: 97 109 obj.lithosphere_shear_modulus = 6.7*10^10; % (Pa) … … 108 120 md = checkfield(md,'materials.rheology_B','>',0,'size',[md.mesh.numberofvertices 1]); 109 121 md = checkfield(md,'materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]); 122 md = checkfield(md,'materials.rheology_law','values',{'None' 'Paterson' 'Arrhenius' 'LliboutryDuval'}); 123 110 124 md = checkfield(md,'materials.damage_D','>',0,'size',[md.mesh.numberofvertices 1]); 111 md = checkfield(md,'materials.rheology_law','values',{'None' 'Paterson' 'Arrhenius' 'LliboutryDuval'}); 125 md = checkfield(md,'materials.damage_law','values',{'initial'}); 126 if strcmpi(obj.damage_law,'initial'), 127 md = checkfield(md,'materials.damage_c1','>=',0); 128 md = checkfield(md,'materials.damage_c2','>=',0); 129 md = checkfield(md,'materials.damage_c3','>=',0); 130 md = checkfield(md,'materials.damage_c4','>=',0); 131 md = checkfield(md,'materials.damage_stress_threshold','>=',0); 132 end 112 133 113 134 if ismember(GiaAnalysisEnum(),analyses), … … 135 156 fielddisplay(obj,'rheology_B','flow law parameter [Pa/s^(1/n)]'); 136 157 fielddisplay(obj,'rheology_n','Glen''s flow law exponent'); 137 fielddisplay(obj,'damage_D','damage tensor (scalar)');138 158 fielddisplay(obj,'rheology_law',['law for the temperature dependance of the rheology: ''None'', ''Paterson'', ''Arrhenius'' or ''LliboutryDuval''']); 139 159 fielddisplay(obj,'lithosphere_shear_modulus','Lithosphere shear modulus [Pa]'); … … 141 161 fielddisplay(obj,'mantle_shear_modulus','Mantle shear modulus [Pa]'); 142 162 fielddisplay(obj,'mantle_density','Mantle density [g/cm^-3]'); 163 fielddisplay(obj,'damage_D','damage tensor (scalar)'); 164 fielddisplay(obj,'damage_law','damage law (string) from {''initial''}'); 165 if strcmpi(obj.damage_law), 166 fielddisplay(obj,'damage_c1','damage parameter 1'); 167 fielddisplay(obj,'damage_c2','damage parameter 2'); 168 fielddisplay(obj,'damage_c3','damage parameter 3'); 169 fielddisplay(obj,'damage_c4','damage parameter 4'); 170 fielddisplay(obj,'damage_stress_threshold','damage stress threshold [Pa]'); 171 end 143 172 144 173 end % }}} … … 158 187 WriteData(fid,'object',obj,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1); 159 188 WriteData(fid,'object',obj,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2); 160 WriteData(fid,'object',obj,'class','materials','fieldname','damage_D','format','DoubleMat','mattype',1);161 189 WriteData(fid,'data',StringToEnum(obj.rheology_law),'enum',MaterialsRheologyLawEnum(),'format','Integer'); 162 190 … … 165 193 WriteData(fid,'object',obj,'class','materials','fieldname','mantle_shear_modulus','format','Double'); 166 194 WriteData(fid,'object',obj,'class','materials','fieldname','mantle_density','format','Double','scale',10^3); 195 196 %damage: 197 WriteData(fid,'object',obj,'class','materials','fieldname','damage_D','format','DoubleMat','mattype',1); 198 WriteData(fid,'object',obj,'class','materials','fieldname','damage_law','format','String'); 199 if strcmpi(obj.damage_law,'initial'), 200 WriteData(fid,'object',obj,'class','materials','fieldname','damage_c1','format','Double'); 201 WriteData(fid,'object',obj,'class','materials','fieldname','damage_c2','format','Double'); 202 WriteData(fid,'object',obj,'class','materials','fieldname','damage_c3','format','Double'); 203 WriteData(fid,'object',obj,'class','materials','fieldname','damage_c4','format','Double'); 204 WriteData(fid,'object',obj,'class','materials','fieldname','damage_stress_threshold','format','Double'); 205 end 167 206 168 207 end % }}} -
issm/trunk-jpl/src/m/classes/matdamageice.py
r16148 r16157 27 27 self.rheology_B = float('NaN') 28 28 self.rheology_n = float('NaN') 29 self.rheology_law = '' 30 31 #damage: 29 32 self.damage_D = float('NaN') 30 self.rheology_law = '' 33 self.damage_law = '' 34 35 #parameters for law 'initial': 36 self.damage_c1 = float('NaN') 37 self.damage_c2 = float('NaN') 38 self.damage_c3 = float('NaN') 39 self.damage_c4 = float('NaN') 40 self.damage_stress_threshold = float('NaN') 31 41 32 42 #gia: … … 58 68 s+="%s\n" % fielddisplay(self,"rheology_B","flow law parameter [Pa/s^(1/n)]") 59 69 s+="%s\n" % fielddisplay(self,"rheology_n","Glen's flow law exponent") 60 s+="%s\n" % fielddisplay(self,"damage_D","damage tensor (scalar for now)")61 70 s+="%s\n" % fielddisplay(self,"rheology_law","law for the temperature dependance of the rheology: 'None', 'Paterson', 'Arrhenius' or 'LliboutryDuval'") 62 71 s+="%s\n" % fielddisplay(self,"lithosphere_shear_modulus","Lithosphere shear modulus [Pa]") … … 64 73 s+="%s\n" % fielddisplay(self,"mantle_shear_modulus","Mantle shear modulus [Pa]") 65 74 s+="%s\n" % fielddisplay(self,"mantle_density","Mantle density [g/cm^-3]") 75 s+="%s\n" % fielddisplay(self,"damage_D","damage tensor (scalar for now)") 76 77 if (obj.damage_law=='initial'): 78 s+="%s\n" % fielddisplay(self,"damage_c1","damage parameter 1 ") 79 s+="%s\n" % fielddisplay(self,"damage_c2","damage parameter 2 ") 80 s+="%s\n" % fielddisplay(self,"damage_c3","damage parameter 3 ") 81 s+="%s\n" % fielddisplay(self,"damage_c4","damage parameter 4 ") 82 s+="%s\n" % fielddisplay(self,"damage_stress_threshold","damage stress threshold [Pa]") 66 83 67 84 return s … … 105 122 #available: none, paterson and arrhenius 106 123 self.rheology_law='Paterson' 124 125 #damage parameters: 126 self.damage_law='initial' 127 self.damage_stress_threshold=0 128 self.damage_c1=0 129 self.damage_c2=0 130 self.damage_c3=0 131 self.damage_c4=0 107 132 108 133 # GIA: … … 119 144 md = checkfield(md,'materials.rheology_B','>',0,'size',[md.mesh.numberofvertices]) 120 145 md = checkfield(md,'materials.rheology_n','>',0,'size',[md.mesh.numberofelements]) 121 md = checkfield(md,'materials.damage_D','>',0,'size',[md.mesh.numberofvertices])122 146 md = checkfield(md,'materials.rheology_law','values',['None','Paterson','Arrhenius','LliboutryDuval']) 123 147 md = checkfield(md,'materials.lithosphere_shear_modulus','>',0,'numel',[1]); … … 125 149 md = checkfield(md,'materials.mantle_shear_modulus','>',0,'numel',[1]); 126 150 md = checkfield(md,'materials.mantle_density','>',0,'numel',[1]); 151 152 md = checkfield(md,'materials.damage_D','>',0,'size',[md.mesh.numberofvertices]) 153 md = checkfield(md,'materials.damage_law','values',['initial']) 154 if self.damage_law == 'initial': 155 md = checkfield(md,'materials.damage_c1','>=',0) 156 md = checkfield(md,'materials.damage_c2','>=',0) 157 md = checkfield(md,'materials.damage_c3','>=',0) 158 md = checkfield(md,'materials.damage_c4','>=',0) 159 md = checkfield(md,'materials.damage_stress_threshold','>=',0) 127 160 128 161 return md … … 143 176 WriteData(fid,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1) 144 177 WriteData(fid,'object',self,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2) 145 WriteData(fid,'object',self,'class','materials','fieldname','damage_D','format','DoubleMat','mattype',1)146 178 WriteData(fid,'data',StringToEnum(self.rheology_law)[0],'enum',MaterialsRheologyLawEnum(),'format','Integer') 147 179 … … 150 182 WriteData(fid,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double'); 151 183 WriteData(fid,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10.**3.); 184 185 WriteData(fid,'object',self,'class','materials','fieldname','damage_D','format','DoubleMat','mattype',1) 186 WriteData(fid,'object',self,'class','materials','fieldname','damage_law','format','String') 187 if self.damage_law=='initial': 188 WriteData(fid,'object',self,'class','materials','fieldname','damage_c1','format','Double') 189 WriteData(fid,'object',self,'class','materials','fieldname','damage_c2','format','Double') 190 WriteData(fid,'object',self,'class','materials','fieldname','damage_c3','format','Double') 191 WriteData(fid,'object',self,'class','materials','fieldname','damage_c4','format','Double') 192 WriteData(fid,'object',self,'class','materials','fieldname','damage_stress_threshold','format','Double') 152 193 # }}} -
issm/trunk-jpl/src/m/enum/EnumDefinitions.py
r16148 r16157 156 156 def MaterialsDamageDEnum(): return StringToEnum("MaterialsDamageD")[0] 157 157 def MaterialsDamageDbarEnum(): return StringToEnum("MaterialsDamageDbar")[0] 158 def MaterialsDamageLawEnum(): return StringToEnum("MaterialsDamageLaw")[0] 159 def MaterialsDamageC1Enum(): return StringToEnum("MaterialsDamageC1")[0] 160 def MaterialsDamageC2Enum(): return StringToEnum("MaterialsDamageC2")[0] 161 def MaterialsDamageC3Enum(): return StringToEnum("MaterialsDamageC3")[0] 162 def MaterialsDamageC4Enum(): return StringToEnum("MaterialsDamageC4")[0] 163 def MaterialsDamageStressThresholdEnum(): return StringToEnum("MaterialsDamageStressThreshold")[0] 158 164 def MaterialsRhoIceEnum(): return StringToEnum("MaterialsRhoIce")[0] 159 165 def MaterialsRhoWaterEnum(): return StringToEnum("MaterialsRhoWater")[0]
Note:
See TracChangeset
for help on using the changeset viewer.