Changeset 17659


Ignore:
Timestamp:
04/07/14 13:14:01 (11 years ago)
Author:
Mathieu Morlighem
Message:

NEW: added r and theta as model parameters in md.flowequations

Location:
issm/trunk-jpl/src
Files:
4 edited

Legend:

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

    r17653 r17659  
    9090
    9191        /*Intermediaries*/
    92         int         numoutputs;
    93         char**      requestedoutputs = NULL;
     92        int     fe_FS;
     93        int     numoutputs;
     94        char**  requestedoutputs = NULL;
    9495
    9596        parameters->AddObject(iomodel->CopyConstantObject(FlowequationIsSIAEnum));
     
    109110        parameters->AddObject(iomodel->CopyConstantObject(StressbalanceShelfDampeningEnum));
    110111        parameters->AddObject(iomodel->CopyConstantObject(StressbalanceViscosityOvershootEnum));
     112
     113        /*XTH parameters*/
     114        iomodel->Constant(&fe_FS,FlowequationFeFSEnum);
     115        if(fe_FS==XTaylorHoodEnum){
     116                parameters->AddObject(iomodel->CopyConstantObject(AugmentedLagrangianREnum));
     117                parameters->AddObject(iomodel->CopyConstantObject(AugmentedLagrangianThetaEnum));
     118        }
    111119
    112120        /*Requested outputs*/
  • issm/trunk-jpl/src/c/solutionsequences/solutionsequence_la_theta.cpp

    r17653 r17659  
    1919        Vector<IssmDouble>*  df     = NULL;
    2020        Vector<IssmDouble>*  ys     = NULL;
    21         IssmDouble           eps_rel;
    22         int  configuration_type,max_nonlinear_iterations;
    23 
    24         IssmDouble r     = .6;
    25         IssmDouble theta = 0.; // 0<theta<.5   -> .15<theta<.45
     21        IssmDouble           eps_rel,r,theta; // 0<theta<.5   -> .15<theta<.45
     22        int                  configuration_type,max_nonlinear_iterations;
    2623
    2724        /*Create analysis*/
     
    3229        femmodel->parameters->FindParam(&eps_rel,StressbalanceReltolEnum);
    3330        femmodel->parameters->FindParam(&max_nonlinear_iterations,StressbalanceMaxiterEnum);
    34         femmodel->parameters->SetParam(.6,AugmentedLagrangianREnum);
    35         femmodel->parameters->SetParam(theta,AugmentedLagrangianThetaEnum);
     31        femmodel->parameters->FindParam(&r,AugmentedLagrangianREnum);
     32        femmodel->parameters->FindParam(&theta,AugmentedLagrangianThetaEnum);
    3633
    3734        /*Update constraints and initialize d and tau if necessary*/
  • issm/trunk-jpl/src/m/classes/flowequation.m

    r17522 r17659  
    1414                fe_HO            = '';
    1515                fe_FS            = '';
     16                XTH_r            = 1.;
     17                XTH_theta        = 0.;
    1618                vertex_equation  = NaN;
    1719                element_equation = NaN;
     
    8890                                md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P1xP3','P2xP4'});
    8991                                md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',{'P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','XTaylorHood','OneLayerP4z'});
     92                                md = checkfield(md,'fieldname','flowequation.XTH_r','numel',[1],'>',0.);
     93                                md = checkfield(md,'fieldname','flowequation.XTH_theta','numel',[1],'>=',0.,'<',0.5);
    9094                                md = checkfield(md,'fieldname','flowequation.borderSSA','size',[md.mesh.numberofvertices 1],'values',[0 1]);
    9195                                md = checkfield(md,'fieldname','flowequation.borderHO','size',[md.mesh.numberofvertices 1],'values',[0 1]);
     
    143147                        WriteData(fid,'enum',FlowequationFeHOEnum() ,'data',StringToEnum(obj.fe_HO) ,'format','Integer');
    144148                        WriteData(fid,'enum',FlowequationFeFSEnum() ,'data',StringToEnum(obj.fe_FS) ,'format','Integer');
     149                        WriteData(fid,'enum',AugmentedLagrangianREnum() ,'data',obj.XTH_r ,'format','Double');
     150                        WriteData(fid,'enum',AugmentedLagrangianThetaEnum() ,'data',obj.XTH_theta ,'format','Double');
    145151                        WriteData(fid,'object',obj,'fieldname','borderSSA','format','DoubleMat','mattype',1);
    146152                        WriteData(fid,'object',obj,'fieldname','borderHO','format','DoubleMat','mattype',1);
  • issm/trunk-jpl/src/m/classes/flowequation.py

    r17522 r17659  
    2525                self.fe_HO            = ''
    2626                self.fe_FS            = ''
     27                self.XTH_r            = 1.
     28                self.XTH_theta        = 0.
    2729                self.vertex_equation  = float('NaN')
    2830                self.element_equation = float('NaN')
     
    8082                        md = checkfield(md,'fieldname','flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1])
    8183                        md = checkfield(md,'fieldname','flowequation.borderFS','size',[md.mesh.numberofvertices],'values',[0,1])
     84                        md = checkfield(md,'fieldname','flowequation.XTH_r','numel',[1],'>',0.)
     85                        md = checkfield(md,'fieldname','flowequation.XTH_theta','numel',[1],'>=',0.,'<',.5)
    8286                        if m.strcmp(md.mesh.meshtype(),'2Dhorizontal'):
    8387                                md = checkfield(md,'fieldname','flowequation.vertex_equation','size',[md.mesh.numberofvertices],'values',[1,2])
     
    107111                WriteData(fid,'enum',FlowequationFeHOEnum() ,'data',StringToEnum(self.fe_HO)[0] ,'format','Integer')
    108112                WriteData(fid,'enum',FlowequationFeFSEnum() ,'data',StringToEnum(self.fe_FS)[0] ,'format','Integer')
     113                WriteData(fid,'enum',AugmentedLagrangianREnum() ,'data',self.XTH_r ,'format','Double')
     114                WriteData(fid,'enum',AugmentedLagrangianThetaEnum() ,'data',self.XTH_theta ,'format','Double')
    109115                WriteData(fid,'object',self,'fieldname','borderSSA','format','DoubleMat','mattype',1)
    110116                WriteData(fid,'object',self,'fieldname','borderHO','format','DoubleMat','mattype',1)
Note: See TracChangeset for help on using the changeset viewer.