[16556] | 1 | Index: ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
|
---|
| 2 | ===================================================================
|
---|
| 3 | --- ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h (revision 16156)
|
---|
| 4 | +++ ../trunk-jpl/src/c/shared/Enum/EnumDefinitions.h (revision 16157)
|
---|
| 5 | @@ -155,6 +155,12 @@
|
---|
| 6 | MaterialsRheologyZbarEnum,
|
---|
| 7 | MaterialsDamageDEnum,
|
---|
| 8 | MaterialsDamageDbarEnum,
|
---|
| 9 | + MaterialsDamageLawEnum,
|
---|
| 10 | + MaterialsDamageC1Enum,
|
---|
| 11 | + MaterialsDamageC2Enum,
|
---|
| 12 | + MaterialsDamageC3Enum,
|
---|
| 13 | + MaterialsDamageC4Enum,
|
---|
| 14 | + MaterialsDamageStressThresholdEnum,
|
---|
| 15 | MaterialsRhoIceEnum,
|
---|
| 16 | MaterialsRhoWaterEnum,
|
---|
| 17 | MaterialsRhoFreshwaterEnum,
|
---|
| 18 | Index: ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
|
---|
| 19 | ===================================================================
|
---|
| 20 | --- ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp (revision 16156)
|
---|
| 21 | +++ ../trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp (revision 16157)
|
---|
| 22 | @@ -163,6 +163,12 @@
|
---|
| 23 | case MaterialsRheologyZbarEnum : return "MaterialsRheologyZbar";
|
---|
| 24 | case MaterialsDamageDEnum : return "MaterialsDamageD";
|
---|
| 25 | case MaterialsDamageDbarEnum : return "MaterialsDamageDbar";
|
---|
| 26 | + case MaterialsDamageLawEnum : return "MaterialsDamageLaw";
|
---|
| 27 | + case MaterialsDamageC1Enum : return "MaterialsDamageC1";
|
---|
| 28 | + case MaterialsDamageC2Enum : return "MaterialsDamageC2";
|
---|
| 29 | + case MaterialsDamageC3Enum : return "MaterialsDamageC3";
|
---|
| 30 | + case MaterialsDamageC4Enum : return "MaterialsDamageC4";
|
---|
| 31 | + case MaterialsDamageStressThresholdEnum : return "MaterialsDamageStressThreshold";
|
---|
| 32 | case MaterialsRhoIceEnum : return "MaterialsRhoIce";
|
---|
| 33 | case MaterialsRhoWaterEnum : return "MaterialsRhoWater";
|
---|
| 34 | case MaterialsRhoFreshwaterEnum : return "MaterialsRhoFreshwater";
|
---|
| 35 | Index: ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
|
---|
| 36 | ===================================================================
|
---|
| 37 | --- ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp (revision 16156)
|
---|
| 38 | +++ ../trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp (revision 16157)
|
---|
| 39 | @@ -166,6 +166,12 @@
|
---|
| 40 | else if (strcmp(name,"MaterialsRheologyZbar")==0) return MaterialsRheologyZbarEnum;
|
---|
| 41 | else if (strcmp(name,"MaterialsDamageD")==0) return MaterialsDamageDEnum;
|
---|
| 42 | else if (strcmp(name,"MaterialsDamageDbar")==0) return MaterialsDamageDbarEnum;
|
---|
| 43 | + else if (strcmp(name,"MaterialsDamageLaw")==0) return MaterialsDamageLawEnum;
|
---|
| 44 | + else if (strcmp(name,"MaterialsDamageC1")==0) return MaterialsDamageC1Enum;
|
---|
| 45 | + else if (strcmp(name,"MaterialsDamageC2")==0) return MaterialsDamageC2Enum;
|
---|
| 46 | + else if (strcmp(name,"MaterialsDamageC3")==0) return MaterialsDamageC3Enum;
|
---|
| 47 | + else if (strcmp(name,"MaterialsDamageC4")==0) return MaterialsDamageC4Enum;
|
---|
| 48 | + else if (strcmp(name,"MaterialsDamageStressThreshold")==0) return MaterialsDamageStressThresholdEnum;
|
---|
| 49 | else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
|
---|
| 50 | else if (strcmp(name,"MaterialsRhoWater")==0) return MaterialsRhoWaterEnum;
|
---|
| 51 | else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
|
---|
| 52 | @@ -253,16 +259,16 @@
|
---|
| 53 | else if (strcmp(name,"ThermalMaxiter")==0) return ThermalMaxiterEnum;
|
---|
| 54 | else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum;
|
---|
| 55 | else if (strcmp(name,"ThermalPenaltyLock")==0) return ThermalPenaltyLockEnum;
|
---|
| 56 | - else if (strcmp(name,"ThermalPenaltyThreshold")==0) return ThermalPenaltyThresholdEnum;
|
---|
| 57 | + else stage=3;
|
---|
| 58 | + }
|
---|
| 59 | + if(stage==3){
|
---|
| 60 | + if (strcmp(name,"ThermalPenaltyThreshold")==0) return ThermalPenaltyThresholdEnum;
|
---|
| 61 | else if (strcmp(name,"ThermalSpctemperature")==0) return ThermalSpctemperatureEnum;
|
---|
| 62 | else if (strcmp(name,"ThermalStabilization")==0) return ThermalStabilizationEnum;
|
---|
| 63 | else if (strcmp(name,"GiaMantleViscosity")==0) return GiaMantleViscosityEnum;
|
---|
| 64 | else if (strcmp(name,"GiaLithosphereThickness")==0) return GiaLithosphereThicknessEnum;
|
---|
| 65 | else if (strcmp(name,"Thickness")==0) return ThicknessEnum;
|
---|
| 66 | - else stage=3;
|
---|
| 67 | - }
|
---|
| 68 | - if(stage==3){
|
---|
| 69 | - if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum;
|
---|
| 70 | + else if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum;
|
---|
| 71 | else if (strcmp(name,"TimesteppingFinalTime")==0) return TimesteppingFinalTimeEnum;
|
---|
| 72 | else if (strcmp(name,"TimesteppingCflCoefficient")==0) return TimesteppingCflCoefficientEnum;
|
---|
| 73 | else if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum;
|
---|
| 74 | @@ -376,16 +382,16 @@
|
---|
| 75 | else if (strcmp(name,"Node")==0) return NodeEnum;
|
---|
| 76 | else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
|
---|
| 77 | else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
|
---|
| 78 | - else if (strcmp(name,"Param")==0) return ParamEnum;
|
---|
| 79 | + else stage=4;
|
---|
| 80 | + }
|
---|
| 81 | + if(stage==4){
|
---|
| 82 | + if (strcmp(name,"Param")==0) return ParamEnum;
|
---|
| 83 | else if (strcmp(name,"L1L2IceFront")==0) return L1L2IceFrontEnum;
|
---|
| 84 | else if (strcmp(name,"HOIceFront")==0) return HOIceFrontEnum;
|
---|
| 85 | else if (strcmp(name,"Pengrid")==0) return PengridEnum;
|
---|
| 86 | else if (strcmp(name,"Penpair")==0) return PenpairEnum;
|
---|
| 87 | else if (strcmp(name,"Penta")==0) return PentaEnum;
|
---|
| 88 | - else stage=4;
|
---|
| 89 | - }
|
---|
| 90 | - if(stage==4){
|
---|
| 91 | - if (strcmp(name,"PentaInput")==0) return PentaInputEnum;
|
---|
| 92 | + else if (strcmp(name,"PentaInput")==0) return PentaInputEnum;
|
---|
| 93 | else if (strcmp(name,"Profiler")==0) return ProfilerEnum;
|
---|
| 94 | else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
|
---|
| 95 | else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
|
---|
| 96 | @@ -499,16 +505,16 @@
|
---|
| 97 | else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
|
---|
| 98 | else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
|
---|
| 99 | else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
|
---|
| 100 | - else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
|
---|
| 101 | + else stage=5;
|
---|
| 102 | + }
|
---|
| 103 | + if(stage==5){
|
---|
| 104 | + if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
|
---|
| 105 | else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
|
---|
| 106 | else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
|
---|
| 107 | else if (strcmp(name,"GiaW")==0) return GiaWEnum;
|
---|
| 108 | else if (strcmp(name,"P0")==0) return P0Enum;
|
---|
| 109 | else if (strcmp(name,"P1")==0) return P1Enum;
|
---|
| 110 | - else stage=5;
|
---|
| 111 | - }
|
---|
| 112 | - if(stage==5){
|
---|
| 113 | - if (strcmp(name,"P1DG")==0) return P1DGEnum;
|
---|
| 114 | + else if (strcmp(name,"P1DG")==0) return P1DGEnum;
|
---|
| 115 | else if (strcmp(name,"P1bubble")==0) return P1bubbleEnum;
|
---|
| 116 | else if (strcmp(name,"P1bubblecondensed")==0) return P1bubblecondensedEnum;
|
---|
| 117 | else if (strcmp(name,"P2")==0) return P2Enum;
|
---|
| 118 | Index: ../trunk-jpl/src/m/classes/matdamageice.py
|
---|
| 119 | ===================================================================
|
---|
| 120 | --- ../trunk-jpl/src/m/classes/matdamageice.py (revision 16156)
|
---|
| 121 | +++ ../trunk-jpl/src/m/classes/matdamageice.py (revision 16157)
|
---|
| 122 | @@ -26,8 +26,18 @@
|
---|
| 123 | self.thermal_exchange_velocity = 0.
|
---|
| 124 | self.rheology_B = float('NaN')
|
---|
| 125 | self.rheology_n = float('NaN')
|
---|
| 126 | + self.rheology_law = ''
|
---|
| 127 | +
|
---|
| 128 | + #damage:
|
---|
| 129 | self.damage_D = float('NaN')
|
---|
| 130 | - self.rheology_law = ''
|
---|
| 131 | + self.damage_law = ''
|
---|
| 132 | +
|
---|
| 133 | + #parameters for law 'initial':
|
---|
| 134 | + self.damage_c1 = float('NaN')
|
---|
| 135 | + self.damage_c2 = float('NaN')
|
---|
| 136 | + self.damage_c3 = float('NaN')
|
---|
| 137 | + self.damage_c4 = float('NaN')
|
---|
| 138 | + self.damage_stress_threshold = float('NaN')
|
---|
| 139 |
|
---|
| 140 | #gia:
|
---|
| 141 | self.lithosphere_shear_modulus = 0.
|
---|
| 142 | @@ -57,13 +67,20 @@
|
---|
| 143 | s+="%s\n" % fielddisplay(self,"thermal_exchange_velocity","thermal exchange velocity [m/s]")
|
---|
| 144 | s+="%s\n" % fielddisplay(self,"rheology_B","flow law parameter [Pa/s^(1/n)]")
|
---|
| 145 | s+="%s\n" % fielddisplay(self,"rheology_n","Glen's flow law exponent")
|
---|
| 146 | - s+="%s\n" % fielddisplay(self,"damage_D","damage tensor (scalar for now)")
|
---|
| 147 | s+="%s\n" % fielddisplay(self,"rheology_law","law for the temperature dependance of the rheology: 'None', 'Paterson', 'Arrhenius' or 'LliboutryDuval'")
|
---|
| 148 | s+="%s\n" % fielddisplay(self,"lithosphere_shear_modulus","Lithosphere shear modulus [Pa]")
|
---|
| 149 | s+="%s\n" % fielddisplay(self,"lithosphere_density","Lithosphere density [g/cm^-3]")
|
---|
| 150 | s+="%s\n" % fielddisplay(self,"mantle_shear_modulus","Mantle shear modulus [Pa]")
|
---|
| 151 | s+="%s\n" % fielddisplay(self,"mantle_density","Mantle density [g/cm^-3]")
|
---|
| 152 | + s+="%s\n" % fielddisplay(self,"damage_D","damage tensor (scalar for now)")
|
---|
| 153 |
|
---|
| 154 | + if (obj.damage_law=='initial'):
|
---|
| 155 | + s+="%s\n" % fielddisplay(self,"damage_c1","damage parameter 1 ")
|
---|
| 156 | + s+="%s\n" % fielddisplay(self,"damage_c2","damage parameter 2 ")
|
---|
| 157 | + s+="%s\n" % fielddisplay(self,"damage_c3","damage parameter 3 ")
|
---|
| 158 | + s+="%s\n" % fielddisplay(self,"damage_c4","damage parameter 4 ")
|
---|
| 159 | + s+="%s\n" % fielddisplay(self,"damage_stress_threshold","damage stress threshold [Pa]")
|
---|
| 160 | +
|
---|
| 161 | return s
|
---|
| 162 | # }}}
|
---|
| 163 | def setdefaultparameters(self): # {{{
|
---|
| 164 | @@ -104,6 +121,14 @@
|
---|
| 165 | #Rheology law: what is the temperature dependence of B with T
|
---|
| 166 | #available: none, paterson and arrhenius
|
---|
| 167 | self.rheology_law='Paterson'
|
---|
| 168 | +
|
---|
| 169 | + #damage parameters:
|
---|
| 170 | + self.damage_law='initial'
|
---|
| 171 | + self.damage_stress_threshold=0
|
---|
| 172 | + self.damage_c1=0
|
---|
| 173 | + self.damage_c2=0
|
---|
| 174 | + self.damage_c3=0
|
---|
| 175 | + self.damage_c4=0
|
---|
| 176 |
|
---|
| 177 | # GIA:
|
---|
| 178 | self.lithosphere_shear_modulus = 6.7*10**10; # (Pa)
|
---|
| 179 | @@ -118,12 +143,20 @@
|
---|
| 180 | md = checkfield(md,'materials.mu_water','>',0)
|
---|
| 181 | md = checkfield(md,'materials.rheology_B','>',0,'size',[md.mesh.numberofvertices])
|
---|
| 182 | md = checkfield(md,'materials.rheology_n','>',0,'size',[md.mesh.numberofelements])
|
---|
| 183 | - md = checkfield(md,'materials.damage_D','>',0,'size',[md.mesh.numberofvertices])
|
---|
| 184 | md = checkfield(md,'materials.rheology_law','values',['None','Paterson','Arrhenius','LliboutryDuval'])
|
---|
| 185 | md = checkfield(md,'materials.lithosphere_shear_modulus','>',0,'numel',[1]);
|
---|
| 186 | md = checkfield(md,'materials.lithosphere_density','>',0,'numel',[1]);
|
---|
| 187 | md = checkfield(md,'materials.mantle_shear_modulus','>',0,'numel',[1]);
|
---|
| 188 | md = checkfield(md,'materials.mantle_density','>',0,'numel',[1]);
|
---|
| 189 | +
|
---|
| 190 | + md = checkfield(md,'materials.damage_D','>',0,'size',[md.mesh.numberofvertices])
|
---|
| 191 | + md = checkfield(md,'materials.damage_law','values',['initial'])
|
---|
| 192 | + if self.damage_law == 'initial':
|
---|
| 193 | + md = checkfield(md,'materials.damage_c1','>=',0)
|
---|
| 194 | + md = checkfield(md,'materials.damage_c2','>=',0)
|
---|
| 195 | + md = checkfield(md,'materials.damage_c3','>=',0)
|
---|
| 196 | + md = checkfield(md,'materials.damage_c4','>=',0)
|
---|
| 197 | + md = checkfield(md,'materials.damage_stress_threshold','>=',0)
|
---|
| 198 |
|
---|
| 199 | return md
|
---|
| 200 | # }}}
|
---|
| 201 | @@ -142,11 +175,19 @@
|
---|
| 202 | WriteData(fid,'object',self,'class','materials','fieldname','thermal_exchange_velocity','format','Double')
|
---|
| 203 | WriteData(fid,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1)
|
---|
| 204 | WriteData(fid,'object',self,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2)
|
---|
| 205 | - WriteData(fid,'object',self,'class','materials','fieldname','damage_D','format','DoubleMat','mattype',1)
|
---|
| 206 | WriteData(fid,'data',StringToEnum(self.rheology_law)[0],'enum',MaterialsRheologyLawEnum(),'format','Integer')
|
---|
| 207 |
|
---|
| 208 | WriteData(fid,'object',self,'class','materials','fieldname','lithosphere_shear_modulus','format','Double');
|
---|
| 209 | WriteData(fid,'object',self,'class','materials','fieldname','lithosphere_density','format','Double','scale',10.**3.);
|
---|
| 210 | WriteData(fid,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double');
|
---|
| 211 | WriteData(fid,'object',self,'class','materials','fieldname','mantle_density','format','Double','scale',10.**3.);
|
---|
| 212 | +
|
---|
| 213 | + WriteData(fid,'object',self,'class','materials','fieldname','damage_D','format','DoubleMat','mattype',1)
|
---|
| 214 | + WriteData(fid,'object',self,'class','materials','fieldname','damage_law','format','String')
|
---|
| 215 | + if self.damage_law=='initial':
|
---|
| 216 | + WriteData(fid,'object',self,'class','materials','fieldname','damage_c1','format','Double')
|
---|
| 217 | + WriteData(fid,'object',self,'class','materials','fieldname','damage_c2','format','Double')
|
---|
| 218 | + WriteData(fid,'object',self,'class','materials','fieldname','damage_c3','format','Double')
|
---|
| 219 | + WriteData(fid,'object',self,'class','materials','fieldname','damage_c4','format','Double')
|
---|
| 220 | + WriteData(fid,'object',self,'class','materials','fieldname','damage_stress_threshold','format','Double')
|
---|
| 221 | # }}}
|
---|
| 222 | Index: ../trunk-jpl/src/m/classes/matdamageice.m
|
---|
| 223 | ===================================================================
|
---|
| 224 | --- ../trunk-jpl/src/m/classes/matdamageice.m (revision 16156)
|
---|
| 225 | +++ ../trunk-jpl/src/m/classes/matdamageice.m (revision 16157)
|
---|
| 226 | @@ -4,7 +4,8 @@
|
---|
| 227 | % matdamageice=matdamageice();
|
---|
| 228 |
|
---|
| 229 | classdef matdamageice
|
---|
| 230 | - properties (SetAccess=public)
|
---|
| 231 | + properties (SetAccess=public)
|
---|
| 232 | + % {{{
|
---|
| 233 | rho_ice = 0.;
|
---|
| 234 | rho_water = 0.;
|
---|
| 235 | rho_freshwater = 0.;
|
---|
| 236 | @@ -16,17 +17,20 @@
|
---|
| 237 | beta = 0.;
|
---|
| 238 | mixed_layer_capacity = 0.;
|
---|
| 239 | thermal_exchange_velocity = 0.;
|
---|
| 240 | - rheology_B = NaN;
|
---|
| 241 | - rheology_n = NaN;
|
---|
| 242 | - damage_D = NaN;
|
---|
| 243 | - %damage_D
|
---|
| 244 | - %damage_stress_threshold
|
---|
| 245 | - %damage_c1
|
---|
| 246 | - %damage_c2
|
---|
| 247 | - %damage_c3
|
---|
| 248 | - %damage_c4
|
---|
| 249 | -
|
---|
| 250 | + rheology_B = NaN;
|
---|
| 251 | + rheology_n = NaN;
|
---|
| 252 | rheology_law = '';
|
---|
| 253 | +
|
---|
| 254 | + %damage
|
---|
| 255 | + damage_D = NaN;
|
---|
| 256 | + damage_law = '';
|
---|
| 257 | +
|
---|
| 258 | + %parameters for law 'initial':
|
---|
| 259 | + damage_stress_threshold = NaN;
|
---|
| 260 | + damage_c1 = NaN;
|
---|
| 261 | + damage_c2 = NaN;
|
---|
| 262 | + damage_c3 = NaN;
|
---|
| 263 | + damage_c4 = NaN;
|
---|
| 264 |
|
---|
| 265 | %gia:
|
---|
| 266 | lithosphere_shear_modulus = 0.;
|
---|
| 267 | @@ -34,7 +38,7 @@
|
---|
| 268 | mantle_shear_modulus = 0.;
|
---|
| 269 | mantle_density = 0.;
|
---|
| 270 |
|
---|
| 271 | - end
|
---|
| 272 | + end % }}}
|
---|
| 273 | methods
|
---|
| 274 | function obj = matdamageice(varargin) % {{{
|
---|
| 275 | switch nargin
|
---|
| 276 | @@ -93,6 +97,14 @@
|
---|
| 277 | %available: none, paterson and arrhenius
|
---|
| 278 | obj.rheology_law='Paterson';
|
---|
| 279 |
|
---|
| 280 | + %damage parameters:
|
---|
| 281 | + obj.damage_law='initial';
|
---|
| 282 | + obj.damage_stress_threshold=0;
|
---|
| 283 | + obj.damage_c1=0;
|
---|
| 284 | + obj.damage_c2=0;
|
---|
| 285 | + obj.damage_c3=0;
|
---|
| 286 | + obj.damage_c4=0;
|
---|
| 287 | +
|
---|
| 288 | %GIA:
|
---|
| 289 | obj.lithosphere_shear_modulus = 6.7*10^10; % (Pa)
|
---|
| 290 | obj.lithosphere_density = 3.32; % (g/cm^-3)
|
---|
| 291 | @@ -107,8 +119,17 @@
|
---|
| 292 | md = checkfield(md,'materials.mu_water','>',0);
|
---|
| 293 | md = checkfield(md,'materials.rheology_B','>',0,'size',[md.mesh.numberofvertices 1]);
|
---|
| 294 | md = checkfield(md,'materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]);
|
---|
| 295 | + md = checkfield(md,'materials.rheology_law','values',{'None' 'Paterson' 'Arrhenius' 'LliboutryDuval'});
|
---|
| 296 | +
|
---|
| 297 | md = checkfield(md,'materials.damage_D','>',0,'size',[md.mesh.numberofvertices 1]);
|
---|
| 298 | - md = checkfield(md,'materials.rheology_law','values',{'None' 'Paterson' 'Arrhenius' 'LliboutryDuval'});
|
---|
| 299 | + md = checkfield(md,'materials.damage_law','values',{'initial'});
|
---|
| 300 | + if strcmpi(obj.damage_law,'initial'),
|
---|
| 301 | + md = checkfield(md,'materials.damage_c1','>=',0);
|
---|
| 302 | + md = checkfield(md,'materials.damage_c2','>=',0);
|
---|
| 303 | + md = checkfield(md,'materials.damage_c3','>=',0);
|
---|
| 304 | + md = checkfield(md,'materials.damage_c4','>=',0);
|
---|
| 305 | + md = checkfield(md,'materials.damage_stress_threshold','>=',0);
|
---|
| 306 | + end
|
---|
| 307 |
|
---|
| 308 | if ismember(GiaAnalysisEnum(),analyses),
|
---|
| 309 | md = checkfield(md,'materials.lithosphere_shear_modulus','>',0,'numel',1);
|
---|
| 310 | @@ -134,12 +155,20 @@
|
---|
| 311 | fielddisplay(obj,'thermal_exchange_velocity','thermal exchange velocity [m/s]');
|
---|
| 312 | fielddisplay(obj,'rheology_B','flow law parameter [Pa/s^(1/n)]');
|
---|
| 313 | fielddisplay(obj,'rheology_n','Glen''s flow law exponent');
|
---|
| 314 | - fielddisplay(obj,'damage_D','damage tensor (scalar)');
|
---|
| 315 | fielddisplay(obj,'rheology_law',['law for the temperature dependance of the rheology: ''None'', ''Paterson'', ''Arrhenius'' or ''LliboutryDuval''']);
|
---|
| 316 | fielddisplay(obj,'lithosphere_shear_modulus','Lithosphere shear modulus [Pa]');
|
---|
| 317 | fielddisplay(obj,'lithosphere_density','Lithosphere density [g/cm^-3]');
|
---|
| 318 | fielddisplay(obj,'mantle_shear_modulus','Mantle shear modulus [Pa]');
|
---|
| 319 | fielddisplay(obj,'mantle_density','Mantle density [g/cm^-3]');
|
---|
| 320 | + fielddisplay(obj,'damage_D','damage tensor (scalar)');
|
---|
| 321 | + fielddisplay(obj,'damage_law','damage law (string) from {''initial''}');
|
---|
| 322 | + if strcmpi(obj.damage_law),
|
---|
| 323 | + fielddisplay(obj,'damage_c1','damage parameter 1');
|
---|
| 324 | + fielddisplay(obj,'damage_c2','damage parameter 2');
|
---|
| 325 | + fielddisplay(obj,'damage_c3','damage parameter 3');
|
---|
| 326 | + fielddisplay(obj,'damage_c4','damage parameter 4');
|
---|
| 327 | + fielddisplay(obj,'damage_stress_threshold','damage stress threshold [Pa]');
|
---|
| 328 | + end
|
---|
| 329 |
|
---|
| 330 | end % }}}
|
---|
| 331 | function marshall(obj,md,fid) % {{{
|
---|
| 332 | @@ -157,13 +186,23 @@
|
---|
| 333 | WriteData(fid,'object',obj,'class','materials','fieldname','thermal_exchange_velocity','format','Double');
|
---|
| 334 | WriteData(fid,'object',obj,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1);
|
---|
| 335 | WriteData(fid,'object',obj,'class','materials','fieldname','rheology_n','format','DoubleMat','mattype',2);
|
---|
| 336 | - WriteData(fid,'object',obj,'class','materials','fieldname','damage_D','format','DoubleMat','mattype',1);
|
---|
| 337 | WriteData(fid,'data',StringToEnum(obj.rheology_law),'enum',MaterialsRheologyLawEnum(),'format','Integer');
|
---|
| 338 |
|
---|
| 339 | WriteData(fid,'object',obj,'class','materials','fieldname','lithosphere_shear_modulus','format','Double');
|
---|
| 340 | WriteData(fid,'object',obj,'class','materials','fieldname','lithosphere_density','format','Double','scale',10^3);
|
---|
| 341 | WriteData(fid,'object',obj,'class','materials','fieldname','mantle_shear_modulus','format','Double');
|
---|
| 342 | WriteData(fid,'object',obj,'class','materials','fieldname','mantle_density','format','Double','scale',10^3);
|
---|
| 343 | +
|
---|
| 344 | + %damage:
|
---|
| 345 | + WriteData(fid,'object',obj,'class','materials','fieldname','damage_D','format','DoubleMat','mattype',1);
|
---|
| 346 | + WriteData(fid,'object',obj,'class','materials','fieldname','damage_law','format','String');
|
---|
| 347 | + if strcmpi(obj.damage_law,'initial'),
|
---|
| 348 | + WriteData(fid,'object',obj,'class','materials','fieldname','damage_c1','format','Double');
|
---|
| 349 | + WriteData(fid,'object',obj,'class','materials','fieldname','damage_c2','format','Double');
|
---|
| 350 | + WriteData(fid,'object',obj,'class','materials','fieldname','damage_c3','format','Double');
|
---|
| 351 | + WriteData(fid,'object',obj,'class','materials','fieldname','damage_c4','format','Double');
|
---|
| 352 | + WriteData(fid,'object',obj,'class','materials','fieldname','damage_stress_threshold','format','Double');
|
---|
| 353 | + end
|
---|
| 354 |
|
---|
| 355 | end % }}}
|
---|
| 356 | end
|
---|
| 357 | Index: ../trunk-jpl/src/m/enum/MaterialsDamageLawEnum.m
|
---|
| 358 | ===================================================================
|
---|
| 359 | --- ../trunk-jpl/src/m/enum/MaterialsDamageLawEnum.m (revision 0)
|
---|
| 360 | +++ ../trunk-jpl/src/m/enum/MaterialsDamageLawEnum.m (revision 16157)
|
---|
| 361 | @@ -0,0 +1,11 @@
|
---|
| 362 | +function macro=MaterialsDamageLawEnum()
|
---|
| 363 | +%MATERIALSDAMAGELAWENUM - Enum of MaterialsDamageLaw
|
---|
| 364 | +%
|
---|
| 365 | +% WARNING: DO NOT MODIFY THIS FILE
|
---|
| 366 | +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
|
---|
| 367 | +% Please read src/c/shared/Enum/README for more information
|
---|
| 368 | +%
|
---|
| 369 | +% Usage:
|
---|
| 370 | +% macro=MaterialsDamageLawEnum()
|
---|
| 371 | +
|
---|
| 372 | +macro=StringToEnum('MaterialsDamageLaw');
|
---|
| 373 | Index: ../trunk-jpl/src/m/enum/MaterialsDamageC1Enum.m
|
---|
| 374 | ===================================================================
|
---|
| 375 | --- ../trunk-jpl/src/m/enum/MaterialsDamageC1Enum.m (revision 0)
|
---|
| 376 | +++ ../trunk-jpl/src/m/enum/MaterialsDamageC1Enum.m (revision 16157)
|
---|
| 377 | @@ -0,0 +1,11 @@
|
---|
| 378 | +function macro=MaterialsDamageC1Enum()
|
---|
| 379 | +%MATERIALSDAMAGEC1ENUM - Enum of MaterialsDamageC1
|
---|
| 380 | +%
|
---|
| 381 | +% WARNING: DO NOT MODIFY THIS FILE
|
---|
| 382 | +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
|
---|
| 383 | +% Please read src/c/shared/Enum/README for more information
|
---|
| 384 | +%
|
---|
| 385 | +% Usage:
|
---|
| 386 | +% macro=MaterialsDamageC1Enum()
|
---|
| 387 | +
|
---|
| 388 | +macro=StringToEnum('MaterialsDamageC1');
|
---|
| 389 | Index: ../trunk-jpl/src/m/enum/MaterialsDamageC2Enum.m
|
---|
| 390 | ===================================================================
|
---|
| 391 | --- ../trunk-jpl/src/m/enum/MaterialsDamageC2Enum.m (revision 0)
|
---|
| 392 | +++ ../trunk-jpl/src/m/enum/MaterialsDamageC2Enum.m (revision 16157)
|
---|
| 393 | @@ -0,0 +1,11 @@
|
---|
| 394 | +function macro=MaterialsDamageC2Enum()
|
---|
| 395 | +%MATERIALSDAMAGEC2ENUM - Enum of MaterialsDamageC2
|
---|
| 396 | +%
|
---|
| 397 | +% WARNING: DO NOT MODIFY THIS FILE
|
---|
| 398 | +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
|
---|
| 399 | +% Please read src/c/shared/Enum/README for more information
|
---|
| 400 | +%
|
---|
| 401 | +% Usage:
|
---|
| 402 | +% macro=MaterialsDamageC2Enum()
|
---|
| 403 | +
|
---|
| 404 | +macro=StringToEnum('MaterialsDamageC2');
|
---|
| 405 | Index: ../trunk-jpl/src/m/enum/MaterialsDamageC3Enum.m
|
---|
| 406 | ===================================================================
|
---|
| 407 | --- ../trunk-jpl/src/m/enum/MaterialsDamageC3Enum.m (revision 0)
|
---|
| 408 | +++ ../trunk-jpl/src/m/enum/MaterialsDamageC3Enum.m (revision 16157)
|
---|
| 409 | @@ -0,0 +1,11 @@
|
---|
| 410 | +function macro=MaterialsDamageC3Enum()
|
---|
| 411 | +%MATERIALSDAMAGEC3ENUM - Enum of MaterialsDamageC3
|
---|
| 412 | +%
|
---|
| 413 | +% WARNING: DO NOT MODIFY THIS FILE
|
---|
| 414 | +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
|
---|
| 415 | +% Please read src/c/shared/Enum/README for more information
|
---|
| 416 | +%
|
---|
| 417 | +% Usage:
|
---|
| 418 | +% macro=MaterialsDamageC3Enum()
|
---|
| 419 | +
|
---|
| 420 | +macro=StringToEnum('MaterialsDamageC3');
|
---|
| 421 | Index: ../trunk-jpl/src/m/enum/MaterialsDamageC4Enum.m
|
---|
| 422 | ===================================================================
|
---|
| 423 | --- ../trunk-jpl/src/m/enum/MaterialsDamageC4Enum.m (revision 0)
|
---|
| 424 | +++ ../trunk-jpl/src/m/enum/MaterialsDamageC4Enum.m (revision 16157)
|
---|
| 425 | @@ -0,0 +1,11 @@
|
---|
| 426 | +function macro=MaterialsDamageC4Enum()
|
---|
| 427 | +%MATERIALSDAMAGEC4ENUM - Enum of MaterialsDamageC4
|
---|
| 428 | +%
|
---|
| 429 | +% WARNING: DO NOT MODIFY THIS FILE
|
---|
| 430 | +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
|
---|
| 431 | +% Please read src/c/shared/Enum/README for more information
|
---|
| 432 | +%
|
---|
| 433 | +% Usage:
|
---|
| 434 | +% macro=MaterialsDamageC4Enum()
|
---|
| 435 | +
|
---|
| 436 | +macro=StringToEnum('MaterialsDamageC4');
|
---|
| 437 | Index: ../trunk-jpl/src/m/enum/MaterialsDamageStressThresholdEnum.m
|
---|
| 438 | ===================================================================
|
---|
| 439 | --- ../trunk-jpl/src/m/enum/MaterialsDamageStressThresholdEnum.m (revision 0)
|
---|
| 440 | +++ ../trunk-jpl/src/m/enum/MaterialsDamageStressThresholdEnum.m (revision 16157)
|
---|
| 441 | @@ -0,0 +1,11 @@
|
---|
| 442 | +function macro=MaterialsDamageStressThresholdEnum()
|
---|
| 443 | +%MATERIALSDAMAGESTRESSTHRESHOLDENUM - Enum of MaterialsDamageStressThreshold
|
---|
| 444 | +%
|
---|
| 445 | +% WARNING: DO NOT MODIFY THIS FILE
|
---|
| 446 | +% this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
|
---|
| 447 | +% Please read src/c/shared/Enum/README for more information
|
---|
| 448 | +%
|
---|
| 449 | +% Usage:
|
---|
| 450 | +% macro=MaterialsDamageStressThresholdEnum()
|
---|
| 451 | +
|
---|
| 452 | +macro=StringToEnum('MaterialsDamageStressThreshold');
|
---|
| 453 | Index: ../trunk-jpl/src/m/enum/EnumDefinitions.py
|
---|
| 454 | ===================================================================
|
---|
| 455 | --- ../trunk-jpl/src/m/enum/EnumDefinitions.py (revision 16156)
|
---|
| 456 | +++ ../trunk-jpl/src/m/enum/EnumDefinitions.py (revision 16157)
|
---|
| 457 | @@ -155,6 +155,12 @@
|
---|
| 458 | def MaterialsRheologyZbarEnum(): return StringToEnum("MaterialsRheologyZbar")[0]
|
---|
| 459 | def MaterialsDamageDEnum(): return StringToEnum("MaterialsDamageD")[0]
|
---|
| 460 | def MaterialsDamageDbarEnum(): return StringToEnum("MaterialsDamageDbar")[0]
|
---|
| 461 | +def MaterialsDamageLawEnum(): return StringToEnum("MaterialsDamageLaw")[0]
|
---|
| 462 | +def MaterialsDamageC1Enum(): return StringToEnum("MaterialsDamageC1")[0]
|
---|
| 463 | +def MaterialsDamageC2Enum(): return StringToEnum("MaterialsDamageC2")[0]
|
---|
| 464 | +def MaterialsDamageC3Enum(): return StringToEnum("MaterialsDamageC3")[0]
|
---|
| 465 | +def MaterialsDamageC4Enum(): return StringToEnum("MaterialsDamageC4")[0]
|
---|
| 466 | +def MaterialsDamageStressThresholdEnum(): return StringToEnum("MaterialsDamageStressThreshold")[0]
|
---|
| 467 | def MaterialsRhoIceEnum(): return StringToEnum("MaterialsRhoIce")[0]
|
---|
| 468 | def MaterialsRhoWaterEnum(): return StringToEnum("MaterialsRhoWater")[0]
|
---|
| 469 | def MaterialsRhoFreshwaterEnum(): return StringToEnum("MaterialsRhoFreshwater")[0]
|
---|