Changeset 24039


Ignore:
Timestamp:
06/24/19 04:26:34 (6 years ago)
Author:
Mathieu Morlighem
Message:

CHG: adding new field to levelset

Location:
issm/trunk-jpl/src/m/classes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/m/classes/levelset.js

    r21065 r24039  
    2121
    2222        }// }}}
    23     this.extrude = function(md) {//{{{
    24         this.spclevelset=project3d(md,'vector',this.spclevelset,'type','node');
    25         return this;
    26     }//}}}
     23        this.extrude = function(md) {//{{{
     24                this.spclevelset=project3d(md,'vector',this.spclevelset,'type','node');
     25                return this;
     26        }//}}}
    2727        this.classname= function(){// {{{
    2828                return "levelset";
     
    4141
    4242        }//}}}
    43                 this.fix=function() { //{{{
    44                         this.spclevelset=NullFix(this.spclevelset,NaN);
    45                 }//}}}
     43        this.fix=function() { //{{{
     44                this.spclevelset=NullFix(this.spclevelset,NaN);
     45        }//}}}
    4646        //properties
    4747        // {{{
  • TabularUnified issm/trunk-jpl/src/m/classes/levelset.m

    r23170 r24039  
    99                spclevelset                     = NaN;
    1010                reinit_frequency        = 5;
     11                kill_icebergs     = 0;
    1112                calving_max       = 0.;
    1213                fe                = 'P1';
     
    4041                        self.stabilization    = 1;
    4142                        self.reinit_frequency = 5;
     43                        self.kill_icebergs    = true;
    4244                        self.calving_max      = 3000.;
    4345
     
    5254                        md = checkfield(md,'fieldname','levelset.spclevelset','Inf',1,'timeseries',1);
    5355                        md = checkfield(md,'fieldname','levelset.stabilization','values',[0 1 2]);
     56                        md = checkfield(md,'fieldname','levelset.kill_icebergs','numel',1,'values',[0 1]);
    5457                        md = checkfield(md,'fieldname','levelset.calving_max','numel',1,'NaN',1,'Inf',1,'>',0);
    5558                        md = checkfield(md,'fieldname','levelset.fe','values',{'P1','P2'});
     
    6063                        fielddisplay(self,'spclevelset','Levelset constraints (NaN means no constraint)');
    6164                        fielddisplay(self,'reinit_frequency','Amount of time steps after which the levelset function in re-initialized');
     65                        fielddisplay(self,'kill_icebergs','remove floating icebergs to prevent rigid body motions (1: true, 0: false)');
    6266                        fielddisplay(self,'calving_max','maximum allowed calving rate (m/a)');
    6367                        fielddisplay(self,'fe','Finite Element type: ''P1'' (default), or ''P2''');
     
    7074                        WriteData(fid,prefix,'object',self,'fieldname','spclevelset','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
    7175                        WriteData(fid,prefix,'object',self,'fieldname','reinit_frequency','format','Integer');
     76                        WriteData(fid,prefix,'object',self,'fieldname','kill_icebergs','format','Boolean');
    7277                        WriteData(fid,prefix,'object',self,'fieldname','calving_max','format','Double','scale',1./yts);
    7378                        WriteData(fid,prefix,'object',self,'fieldname','fe','format','String');
    7479                end % }}}
    7580                function savemodeljs(self,fid,modelname) % {{{
    76                
    7781                        writejsdouble(fid,[modelname '.levelset.stabilization'],self.stabilization);
    7882                        writejs1Darray(fid,[modelname '.levelset.spclevelset'],self.spclevelset);
    7983                        writejs1Darray(fid,[modelname '.levelset.reinit_frequency'],self.reinit_frequency);
     84                        writejsdouble(fid,[modelname '.levelset.kill_icebergs'],self.kill_icebergs);
    8085                        writejsdouble(fid,[modelname '.levelset.calving_max'],self.calving_max);
    81 
    8286                end % }}}
    8387        end
  • TabularUnified issm/trunk-jpl/src/m/classes/levelset.py

    r23716 r24039  
    1717                self.spclevelset      = float('NaN')
    1818                self.reinit_frequency = 0
     19                self.kill_icebergs    = 0
    1920                self.calving_max      = 0.
    2021                self.fe               = 'P1'
     
    2930                string="%s\n%s"%(string,fielddisplay(self,'spclevelset','levelset constraints (NaN means no constraint)'))
    3031                string="%s\n%s"%(string,fielddisplay(self,'reinit_frequency','Amount of time steps after which the levelset function in re-initialized'))
     32                string="%s\n%s"%(string,fielddisplay(self,'kill_icebergs','remove floating icebergs to prevent rigid body motions (1: true, 0: false)'))
    3133                string="%s\n%s"%(string,fielddisplay(self,'calving_max','maximum allowed calving rate (m/a)'))
    3234                string="%s\n%s"%(string,fielddisplay(self,'fe','Finite Element type: ''P1'' (default), or ''P2'''))
     
    4345                self.stabilization              = 1
    4446                self.reinit_frequency = 5
     47                self.kill_icebergs    = 1
    4548                self.calving_max      = 3000.
    4649
     
    5760
    5861                md = checkfield(md,'fieldname','levelset.spclevelset','Inf',1,'timeseries',1)
    59                 md = checkfield(md,'fieldname','levelset.stabilization','values',[0,1,2]);
    60                 md = checkfield(md,'fieldname','levelset.calving_max','NaN',1,'Inf',1,'>',0);
     62                md = checkfield(md,'fieldname','levelset.stabilization','numel',[1],'values',[0,1,2]);
     63                md = checkfield(md,'fieldname','levelset.kill_icebergs','numel',[1],'values',[0,1]);
     64                md = checkfield(md,'fieldname','levelset.calving_max','numel',[1],'NaN',1,'Inf',1,'>',0);
    6165                md = checkfield(md,'fieldname','levelset.fe','values',['P1','P2']);
    6266
     
    7074                WriteData(fid,prefix,'object',self,'fieldname','spclevelset','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
    7175                WriteData(fid,prefix,'object',self,'fieldname','reinit_frequency','format','Integer');
     76                WriteData(fid,prefix,'object',self,'fieldname','kill_icebergs','format','Boolean');
    7277                WriteData(fid,prefix,'object',self,'fieldname','calving_max','format','Double','scale',1./yts);
    7378                WriteData(fid,prefix,'object',self,'fieldname','fe','format','String');
Note: See TracChangeset for help on using the changeset viewer.