Changeset 19158


Ignore:
Timestamp:
02/26/15 09:26:59 (10 years ago)
Author:
Mathieu Morlighem
Message:

NEW: added spclevelset to levelset transport equation

Location:
issm/trunk-jpl
Files:
15 edited

Legend:

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

    r19107 r19158  
    1212
    1313void LevelsetAnalysis::CreateConstraints(Constraints* constraints,IoModel* iomodel){/*{{{*/
    14         return;
     14        IoModelToConstraintsx(constraints,iomodel,SpcLevelsetEnum,LevelsetAnalysisEnum,P1Enum);
    1515}
    1616/*}}}*/
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r19151 r19158  
    910910        /*Levelset related enums (will be moved to appropriate place when finished){{{*/
    911911        TransientIslevelsetEnum,
     912        SpcLevelsetEnum,
    912913        ExtrapolationVariableEnum,
    913914        IceMaskNodeActivationEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r19151 r19158  
    871871                case LliboutryDuvalEnum : return "LliboutryDuval";
    872872                case TransientIslevelsetEnum : return "TransientIslevelset";
     873                case SpcLevelsetEnum : return "SpcLevelset";
    873874                case ExtrapolationVariableEnum : return "ExtrapolationVariable";
    874875                case IceMaskNodeActivationEnum : return "IceMaskNodeActivation";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r19151 r19158  
    892892              else if (strcmp(name,"LliboutryDuval")==0) return LliboutryDuvalEnum;
    893893              else if (strcmp(name,"TransientIslevelset")==0) return TransientIslevelsetEnum;
     894              else if (strcmp(name,"SpcLevelset")==0) return SpcLevelsetEnum;
    894895              else if (strcmp(name,"ExtrapolationVariable")==0) return ExtrapolationVariableEnum;
    895896              else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum;
  • issm/trunk-jpl/src/m/classes/calving.m

    r19048 r19158  
    77        properties (SetAccess=public)
    88                stabilization = 0;
     9                spclevelset   = NaN;
    910                calvingrate   = NaN;
    1011                meltingrate   = NaN;
     
    3031                end % }}}
    3132                function self = extrude(self,md) % {{{
     33                        self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node');
    3234                        self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node');
    3335                        self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
     
    4345                        if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
    4446
     47                        md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
    4548                        md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
    4649                        md = checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1);
     
    5053                        disp(sprintf('   Calving parameters:'));
    5154                        fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
     55                        fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
    5256                        fielddisplay(self,'calvingrate','calving rate at given location [m/a]');
    5357                        fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
     
    5761                        WriteData(fid,'enum',CalvingLawEnum(),'data',DefaultCalvingEnum(),'format','Integer');
    5862                        WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
     63                        WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    5964                        WriteData(fid,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
    6065                        WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
  • issm/trunk-jpl/src/m/classes/calving.py

    r19048 r19158  
    1717
    1818                self.stabilization = 0
     19                self.spclevelset   = float('NaN')
    1920                self.calvingrate   = float('NaN')
    2021                self.meltingrate   = float('NaN')
     
    2728                string='   Calving parameters:'
    2829                string="%s\n%s"%(string,fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding'))
     30                string="%s\n%s"%(string,fielddisplay(self,'spclevelset','levelset constraints (NaN means no constraint)'))
    2931                string="%s\n%s"%(string,fielddisplay(self,'calvingrate','calving rate at given location [m/a]'))
    3032                string="%s\n%s"%(string,fielddisplay(self,'meltingrate','melting rate at given location [m/a]'))
     
    3335                #}}}
    3436        def extrude(self,md): # {{{
     37                self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node')
    3538                self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node')
    3639                self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node')
     
    5053                        return md
    5154
     55                md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1)
    5256                md = checkfield(md,'fieldname','calving.stabilization','values',[0,1,2]);
    5357                md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1);
     
    6266                WriteData(fid,'enum',CalvingLawEnum(),'data',DefaultCalvingEnum(),'format','Integer');
    6367                WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
     68                WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    6469                WriteData(fid,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
    6570                WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts)
  • issm/trunk-jpl/src/m/classes/calvingdev.m

    r19040 r19158  
    77        properties (SetAccess=public)
    88                stabilization = 0;
     9                spclevelset   = NaN;
    910                coeff         = NaN;
    1011                meltingrate   = NaN;
     
    2930                        end
    3031                end % }}}
     32                function self = extrude(self,md) % {{{
     33                        self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node');
     34                        self.coeff=project3d(md,'vector',self.coeff,'type','node');
     35                        self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
     36                end % }}}
    3137                function self = setdefaultparameters(self) % {{{
    3238
     
    4147                        if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
    4248
     49                        md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
    4350                        md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
    4451                        md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
     
    4855                        disp(sprintf('   Calving Pi parameters:'));
    4956                        fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
     57                        fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
    5058                        fielddisplay(self,'coeff','proportionality coefficient in Pi model');
    5159                        fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
     
    5664                        WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingDevEnum(),'format','Integer');
    5765                        WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
     66                        WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    5867                        WriteData(fid,'enum',CalvingpiCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1);
    5968                        WriteData(fid,'class','calving','object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1,'scale',1./yts);
  • issm/trunk-jpl/src/m/classes/calvingpi.m

    r19048 r19158  
    77        properties (SetAccess=public)
    88                stabilization = 0;
     9                spclevelset   = NaN;
    910                coeff         = NaN;
    1011                meltingrate   = NaN;
     
    3031                end % }}}
    3132                function self = extrude(self,md) % {{{
     33                        self.spclevelset=project3d(md,'vector',self.spclevelset,'type','node');
    3234                        self.coeff=project3d(md,'vector',self.coeff,'type','node');
    3335                        self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
     
    4547                        if (solution~=TransientSolutionEnum() | md.transient.iscalving==0), return; end
    4648
     49                        md = checkfield(md,'fieldname','calving.spclevelset','timeseries',1);
    4750                        md = checkfield(md,'fieldname','calving.stabilization','values',[0 1 2]);
    4851                        md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
     
    5255                        disp(sprintf('   Calving Pi parameters:'));
    5356                        fielddisplay(self,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding');
     57                        fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
    5458                        fielddisplay(self,'coeff','proportionality coefficient in Pi model');
    5559                        fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
     
    6064                        WriteData(fid,'enum',CalvingLawEnum(),'data',CalvingPiEnum(),'format','Integer');
    6165                        WriteData(fid,'enum',LevelsetStabilizationEnum(),'data',self.stabilization,'format','Integer');
     66                        WriteData(fid,'enum',SpcLevelsetEnum(),'data',self.spclevelset,'format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1);
    6267                        WriteData(fid,'enum',CalvingpiCoeffEnum(),'data',self.coeff,'format','DoubleMat','mattype',1);
    6368                        WriteData(fid,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r19152 r19158  
    863863def LliboutryDuvalEnum(): return StringToEnum("LliboutryDuval")[0]
    864864def TransientIslevelsetEnum(): return StringToEnum("TransientIslevelset")[0]
     865def SpcLevelsetEnum(): return StringToEnum("SpcLevelset")[0]
    865866def ExtrapolationVariableEnum(): return StringToEnum("ExtrapolationVariable")[0]
    866867def IceMaskNodeActivationEnum(): return StringToEnum("IceMaskNodeActivation")[0]
  • issm/trunk-jpl/test/NightlyRun/test807.m

    r19147 r19158  
    2727md.calving.calvingrate=zeros(md.mesh.numberofvertices,1);
    2828md.calving.meltingrate=10000*ones(md.mesh.numberofvertices,1);
     29md.calving.spclevelset=NaN(md.mesh.numberofvertices,1);
    2930
    3031md=solve(md,TransientSolutionEnum());
  • issm/trunk-jpl/test/NightlyRun/test807.py

    r19147 r19158  
    4040md.calving.calvingrate=numpy.zeros((md.mesh.numberofvertices,1))
    4141md.calving.meltingrate=10000*numpy.ones((md.mesh.numberofvertices,1))
     42md.calving.spclevelset=numpy.float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
    4243
    4344md=solve(md,TransientSolutionEnum())
  • issm/trunk-jpl/test/Par/SquareSheetConstrained.par

    r18761 r19158  
    3232%Calving
    3333md.calving.calvingrate=zeros(md.mesh.numberofvertices,1);
     34md.calving.spclevelset=NaN(md.mesh.numberofvertices,1);
    3435
    3536%Friction
  • issm/trunk-jpl/test/Par/SquareSheetConstrained.py

    r18765 r19158  
    4242#Calving
    4343md.calving.calvingrate=0.*numpy.ones((md.mesh.numberofvertices,1))
     44md.calving.spclevelset=float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
    4445
    4546#Friction
  • issm/trunk-jpl/test/Par/ValleyGlacierShelf.par

    r18962 r19158  
    7777md.calving.calvingrate = 0.*ones(md.mesh.numberofvertices,1);
    7878md.calving.meltingrate = 0.*ones(md.mesh.numberofvertices,1);
     79md.calving.spclevelset=NaN(md.mesh.numberofvertices,1);
    7980md.masstransport.stabilization = 1.;
    8081
  • issm/trunk-jpl/test/Par/ValleyGlacierShelf.py

    r18962 r19158  
    8484md.calving.calvingrate=0.*numpy.ones((md.mesh.numberofvertices,1))
    8585md.calving.meltingrate=0.*numpy.ones((md.mesh.numberofvertices,1))
     86md.calving.spclevelset=float('NaN')*numpy.ones((md.mesh.numberofvertices,1))
    8687md.masstransport.stabilization=1.
    8788
Note: See TracChangeset for help on using the changeset viewer.