Changeset 17642


Ignore:
Timestamp:
04/03/14 17:48:36 (11 years ago)
Author:
cborstad
Message:

CHG: added damage evolution analysis to transient run

Location:
issm/trunk-jpl/src
Files:
1 added
1 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/DamageEvolutionAnalysis.cpp

    r17610 r17642  
    2727        iomodel->FetchData(&requestedoutputs,&numoutputs,DamageEvolutionRequestedOutputsEnum);
    2828        parameters->AddObject(new IntParam(DamageEvolutionNumRequestedOutputsEnum,numoutputs));
     29        _printf0_("numoutputs = " << numoutputs << ", requestedoutputs = " << requestedoutputs);
    2930        if(numoutputs)parameters->AddObject(new StringArrayParam(DamageEvolutionRequestedOutputsEnum,requestedoutputs,numoutputs));
    3031        iomodel->DeleteData(&requestedoutputs,numoutputs,DamageEvolutionRequestedOutputsEnum);
  • issm/trunk-jpl/src/c/cores/AnalysisConfiguration.cpp

    r17511 r17642  
    117117
    118118                case TransientSolutionEnum:
    119                         numanalyses=15;
     119                        numanalyses=16;
    120120                        analyses=xNew<int>(numanalyses);
    121121                        analyses[ 0]=StressbalanceAnalysisEnum;
     
    134134                        analyses[13]=ExtrapolationAnalysisEnum;
    135135                        analyses[14]=LsfReinitializationAnalysisEnum;
     136                        analyses[15]=DamageEvolutionAnalysisEnum;
    136137                        break;
    137138
  • issm/trunk-jpl/src/c/cores/transient_core.cpp

    r17555 r17642  
    2222        int    i;
    2323        IssmDouble starttime,finaltime,dt,yts;
    24         bool   isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isgia,islevelset;
     24        bool   isstressbalance,ismasstransport,isFS,isthermal,isgroundingline,isgia,islevelset,isdamageevolution;
    2525        bool   save_results,dakota_analysis;
    2626        bool   time_adapt=false;
     
    5151        femmodel->parameters->FindParam(&isgroundingline,TransientIsgroundinglineEnum);
    5252        femmodel->parameters->FindParam(&islevelset,TransientIslevelsetEnum);
     53        femmodel->parameters->FindParam(&isdamageevolution,TransientIsdamageevolutionEnum);
    5354        femmodel->parameters->FindParam(&isFS,FlowequationIsFSEnum);
    5455        if(isgroundingline) femmodel->parameters->FindParam(&groundingline_migration,GroundinglineMigrationEnum);
     
    122123                        stressbalance_core(femmodel);
    123124                }
    124                
     125
     126                if(isdamageevolution){
     127                        if(VerboseSolution()) _printf0_("   computing damage\n");
     128                        damage_core(femmodel);
     129                }
     130
    125131                if(islevelset){
    126132                        if(VerboseSolution()) _printf0_("   computing movement of ice boundaries\n");
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r17236 r17642  
    6969        parameters->AddObject(iomodel->CopyConstantObject(TransientIsgiaEnum));
    7070        parameters->AddObject(iomodel->CopyConstantObject(TransientIslevelsetEnum));
     71        parameters->AddObject(iomodel->CopyConstantObject(TransientIsdamageevolutionEnum));
    7172        parameters->AddObject(iomodel->CopyConstantObject(MaterialsRheologyLawEnum));
    7273        parameters->AddObject(iomodel->CopyConstantObject(AutodiffIsautodiffEnum));
     
    145146        iomodel->DeleteData(&requestedoutputs,numoutputs,SteadystateRequestedOutputsEnum);
    146147
     148        iomodel->FetchData(&requestedoutputs,&numoutputs,DamageEvolutionRequestedOutputsEnum);
     149        parameters->AddObject(new IntParam(DamageEvolutionNumRequestedOutputsEnum,numoutputs));
     150        if(numoutputs)parameters->AddObject(new StringArrayParam(DamageEvolutionRequestedOutputsEnum,requestedoutputs,numoutputs));
     151        iomodel->DeleteData(&requestedoutputs,numoutputs,DamageEvolutionRequestedOutputsEnum);
     152
    147153        /*Deal with mass flux segments: {{{*/
    148154        iomodel->FetchData(&qmu_mass_flux_present,QmuMassFluxSegmentsPresentEnum);
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/ModelProcessorx.cpp

    r17503 r17642  
    1616
    1717        int   i,analysis_enum,verbose;
    18         bool  isthermal,ismasstransport,isstressbalance,isgroundingline,isenthalpy,islevelset;
     18        bool  isthermal,ismasstransport,isstressbalance,isgroundingline,isenthalpy,islevelset,isdamage;
    1919
    2020        /*Initialize datasets*/
     
    3838        iomodel->Constant(&isstressbalance,TransientIsstressbalanceEnum);
    3939        iomodel->Constant(&isgroundingline,TransientIsgroundinglineEnum);
     40        iomodel->Constant(&isdamage,TransientIsdamageevolutionEnum);
    4041
    4142        SetVerbosityLevel(verbose);
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r17610 r17642  
    279279        TransientIsthermalEnum,
    280280        TransientIsgiaEnum,
    281         TransientIsdamageEnum,
     281        TransientIsdamageevolutionEnum,
    282282        TransientNumRequestedOutputsEnum,
    283283        TransientRequestedOutputsEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r17610 r17642  
    285285                case TransientIsthermalEnum : return "TransientIsthermal";
    286286                case TransientIsgiaEnum : return "TransientIsgia";
    287                 case TransientIsdamageEnum : return "TransientIsdamage";
     287                case TransientIsdamageevolutionEnum : return "TransientIsdamageevolution";
    288288                case TransientNumRequestedOutputsEnum : return "TransientNumRequestedOutputs";
    289289                case TransientRequestedOutputsEnum : return "TransientRequestedOutputs";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r17610 r17642  
    291291              else if (strcmp(name,"TransientIsthermal")==0) return TransientIsthermalEnum;
    292292              else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
    293               else if (strcmp(name,"TransientIsdamage")==0) return TransientIsdamageEnum;
     293              else if (strcmp(name,"TransientIsdamageevolution")==0) return TransientIsdamageevolutionEnum;
    294294              else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
    295295              else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
  • issm/trunk-jpl/src/m/classes/transient.py

    r17497 r17642  
    1818                self.isgroundingline   = False
    1919                self.isgia             = False
     20                self.isdamageevolution = False
    2021                self.islevelset        = False
    2122                self.requested_outputs = []
     
    3233                string="%s\n%s"%(string,fielddisplay(self,'isgroundingline','indicates if a groundingline migration is used in the transient'))
    3334                string="%s\n%s"%(string,fielddisplay(self,'isgia','indicates if a postglacial rebound is used in the transient'))
     35                string="%s\n%s"%(string,fielddisplay(self,'isdamageevolution','indicates whether damage evolution is used in the transient'))
    3436                string="%s\n%s"%(string,fielddisplay(self,'islevelset','LEVELSET METHOD DESCRIPTION'))
    3537                string="%s\n%s"%(string,fielddisplay(self,'requested_outputs','list of additional outputs requested'))
     
    5254                self.isgroundingline = False
    5355                self.isgia           = False
    54                 self.islevelset           = False
     56                self.isdamageevolution = False
     57                self.islevelset      = False
    5558
    5659                #default output
     
    6972                md = checkfield(md,'fieldname','transient.isgroundingline','numel',[1],'values',[0,1])
    7073                md = checkfield(md,'fieldname','transient.isgia','numel',[1],'values',[0,1])
     74                md = checkfield(md,'fieldname','transient.isdamageevolution','numel',[1],'values',[0,1])
    7175                md = checkfield(md,'fieldname','transient.islevelset','numel',[1],'values',[0,1])
    7276                md = checkfield(md,'fieldname','transient.requested_outputs','stringrow',1)
     
    8084                WriteData(fid,'object',self,'fieldname','isgroundingline','format','Boolean')
    8185                WriteData(fid,'object',self,'fieldname','isgia','format','Boolean')
     86                WriteData(fid,'object',self,'fieldname','isdamageevolution','format','Boolean')
    8287                WriteData(fid,'object',self,'fieldname','islevelset','format','Boolean')
    8388
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r17610 r17642  
    277277def TransientIsthermalEnum(): return StringToEnum("TransientIsthermal")[0]
    278278def TransientIsgiaEnum(): return StringToEnum("TransientIsgia")[0]
    279 def TransientIsdamageEnum(): return StringToEnum("TransientIsdamage")[0]
     279def TransientIsdamageevolutionEnum(): return StringToEnum("TransientIsdamageevolution")[0]
    280280def TransientNumRequestedOutputsEnum(): return StringToEnum("TransientNumRequestedOutputs")[0]
    281281def TransientRequestedOutputsEnum(): return StringToEnum("TransientRequestedOutputs")[0]
  • issm/trunk-jpl/src/m/interp/averaging.py

    r17559 r17642  
    22from GetAreas import GetAreas
    33from scipy.sparse import csc_matrix
     4import MatlabFuncs as m
    45
    56def averaging(md,data,iterations,layer=0):
Note: See TracChangeset for help on using the changeset viewer.