Changeset 16157


Ignore:
Timestamp:
09/17/13 15:40:37 (12 years ago)
Author:
Eric.Larour
Message:

CHG: fixed wrong enums MaterialsDamagec...Enum.m

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  
    156156        MaterialsDamageDEnum,
    157157        MaterialsDamageDbarEnum,
     158        MaterialsDamageLawEnum,
     159        MaterialsDamageC1Enum,
     160        MaterialsDamageC2Enum,
     161        MaterialsDamageC3Enum,
     162        MaterialsDamageC4Enum,
     163        MaterialsDamageStressThresholdEnum,
    158164        MaterialsRhoIceEnum,
    159165        MaterialsRhoWaterEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r16148 r16157  
    164164                case MaterialsDamageDEnum : return "MaterialsDamageD";
    165165                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";
    166172                case MaterialsRhoIceEnum : return "MaterialsRhoIce";
    167173                case MaterialsRhoWaterEnum : return "MaterialsRhoWater";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r16148 r16157  
    167167              else if (strcmp(name,"MaterialsDamageD")==0) return MaterialsDamageDEnum;
    168168              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;
    169175              else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
    170176              else if (strcmp(name,"MaterialsRhoWater")==0) return MaterialsRhoWaterEnum;
     
    254260              else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum;
    255261              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;
    257266              else if (strcmp(name,"ThermalSpctemperature")==0) return ThermalSpctemperatureEnum;
    258267              else if (strcmp(name,"ThermalStabilization")==0) return ThermalStabilizationEnum;
     
    260269              else if (strcmp(name,"GiaLithosphereThickness")==0) return GiaLithosphereThicknessEnum;
    261270              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;
    266272              else if (strcmp(name,"TimesteppingFinalTime")==0) return TimesteppingFinalTimeEnum;
    267273              else if (strcmp(name,"TimesteppingCflCoefficient")==0) return TimesteppingCflCoefficientEnum;
     
    377383              else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
    378384              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;
    380389              else if (strcmp(name,"L1L2IceFront")==0) return L1L2IceFrontEnum;
    381390              else if (strcmp(name,"HOIceFront")==0) return HOIceFrontEnum;
     
    383392              else if (strcmp(name,"Penpair")==0) return PenpairEnum;
    384393              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;
    389395              else if (strcmp(name,"Profiler")==0) return ProfilerEnum;
    390396              else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
     
    500506              else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
    501507              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;
    503512              else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
    504513              else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
     
    506515              else if (strcmp(name,"P0")==0) return P0Enum;
    507516              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;
    512518              else if (strcmp(name,"P1bubble")==0) return P1bubbleEnum;
    513519              else if (strcmp(name,"P1bubblecondensed")==0) return P1bubblecondensedEnum;
  • issm/trunk-jpl/src/m/classes/matdamageice.m

    r16148 r16157  
    55
    66classdef matdamageice
    7         properties (SetAccess=public)
     7        properties (SetAccess=public) 
     8        % {{{
    89                rho_ice                    = 0.;
    910                rho_water                  = 0.;
     
    1718                mixed_layer_capacity       = 0.;
    1819                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;
    2922                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;
    3034
    3135                %gia:
     
    3539                mantle_density             = 0.;
    3640
    37         end
     41        end % }}}
    3842        methods
    3943                function obj = matdamageice(varargin) % {{{
     
    9498                        obj.rheology_law='Paterson';
    9599
     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
    96108                        %GIA:
    97109                        obj.lithosphere_shear_modulus  = 6.7*10^10;  % (Pa)
     
    108120                        md = checkfield(md,'materials.rheology_B','>',0,'size',[md.mesh.numberofvertices 1]);
    109121                        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                       
    110124                        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
    112133
    113134                        if ismember(GiaAnalysisEnum(),analyses),
     
    135156                        fielddisplay(obj,'rheology_B','flow law parameter [Pa/s^(1/n)]');
    136157                        fielddisplay(obj,'rheology_n','Glen''s flow law exponent');
    137                         fielddisplay(obj,'damage_D','damage tensor (scalar)');
    138158                        fielddisplay(obj,'rheology_law',['law for the temperature dependance of the rheology: ''None'', ''Paterson'', ''Arrhenius'' or ''LliboutryDuval''']);
    139159                        fielddisplay(obj,'lithosphere_shear_modulus','Lithosphere shear modulus [Pa]');
     
    141161                        fielddisplay(obj,'mantle_shear_modulus','Mantle shear modulus [Pa]');
    142162                        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
    143172
    144173                end % }}}
     
    158187                        WriteData(fid,'object',obj,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1);
    159188                        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);
    161189                        WriteData(fid,'data',StringToEnum(obj.rheology_law),'enum',MaterialsRheologyLawEnum(),'format','Integer');
    162190
     
    165193                        WriteData(fid,'object',obj,'class','materials','fieldname','mantle_shear_modulus','format','Double');
    166194                        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
    167206
    168207                end % }}}
  • issm/trunk-jpl/src/m/classes/matdamageice.py

    r16148 r16157  
    2727                self.rheology_B   = float('NaN')
    2828                self.rheology_n   = float('NaN')
     29                self.rheology_law = ''
     30               
     31                #damage:
    2932                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')
    3141
    3242                #gia:
     
    5868                s+="%s\n" % fielddisplay(self,"rheology_B","flow law parameter [Pa/s^(1/n)]")
    5969                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)")
    6170                s+="%s\n" % fielddisplay(self,"rheology_law","law for the temperature dependance of the rheology: 'None', 'Paterson', 'Arrhenius' or 'LliboutryDuval'")
    6271                s+="%s\n" % fielddisplay(self,"lithosphere_shear_modulus","Lithosphere shear modulus [Pa]")
     
    6473                s+="%s\n" % fielddisplay(self,"mantle_shear_modulus","Mantle shear modulus [Pa]")
    6574                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]")
    6683
    6784                return s
     
    105122                #available: none, paterson and arrhenius
    106123                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
    107132
    108133                # GIA:
     
    119144                md = checkfield(md,'materials.rheology_B','>',0,'size',[md.mesh.numberofvertices])
    120145                md = checkfield(md,'materials.rheology_n','>',0,'size',[md.mesh.numberofelements])
    121                 md = checkfield(md,'materials.damage_D','>',0,'size',[md.mesh.numberofvertices])
    122146                md = checkfield(md,'materials.rheology_law','values',['None','Paterson','Arrhenius','LliboutryDuval'])
    123147                md = checkfield(md,'materials.lithosphere_shear_modulus','>',0,'numel',[1]);
     
    125149                md = checkfield(md,'materials.mantle_shear_modulus','>',0,'numel',[1]);
    126150                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)
    127160
    128161                return md
     
    143176                WriteData(fid,'object',self,'class','materials','fieldname','rheology_B','format','DoubleMat','mattype',1)
    144177                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)
    146178                WriteData(fid,'data',StringToEnum(self.rheology_law)[0],'enum',MaterialsRheologyLawEnum(),'format','Integer')
    147179
     
    150182                WriteData(fid,'object',self,'class','materials','fieldname','mantle_shear_modulus','format','Double');
    151183                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')
    152193        # }}}
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r16148 r16157  
    156156def MaterialsDamageDEnum(): return StringToEnum("MaterialsDamageD")[0]
    157157def MaterialsDamageDbarEnum(): return StringToEnum("MaterialsDamageDbar")[0]
     158def MaterialsDamageLawEnum(): return StringToEnum("MaterialsDamageLaw")[0]
     159def MaterialsDamageC1Enum(): return StringToEnum("MaterialsDamageC1")[0]
     160def MaterialsDamageC2Enum(): return StringToEnum("MaterialsDamageC2")[0]
     161def MaterialsDamageC3Enum(): return StringToEnum("MaterialsDamageC3")[0]
     162def MaterialsDamageC4Enum(): return StringToEnum("MaterialsDamageC4")[0]
     163def MaterialsDamageStressThresholdEnum(): return StringToEnum("MaterialsDamageStressThreshold")[0]
    158164def MaterialsRhoIceEnum(): return StringToEnum("MaterialsRhoIce")[0]
    159165def MaterialsRhoWaterEnum(): return StringToEnum("MaterialsRhoWater")[0]
Note: See TracChangeset for help on using the changeset viewer.