source:
issm/oecreview/Archive/20545-21336/ISSM-21096-21097.diff@
21337
Last change on this file since 21337 was 21337, checked in by , 8 years ago | |
---|---|
File size: 27.2 KB |
-
../trunk-jpl/src/m/solve/solve.js
80 80 if (md.verbose.solution){ 81 81 console.log('checking model consistency'); 82 82 } 83 if (solutionstring === 'FlaimSolution'){ 84 md.priv.isconsistent=true; 85 md.mesh.checkconsistency(md,solutionstring); 86 md.flaim.checkconsistency(md,solutionstring); 87 if (md.priv.isconsistent==false){ 88 throw error('solve error message: model not consistent, see messages above'); 89 } 90 } 91 else{ 92 ismodelselfconsistent(md); 93 } 83 ismodelselfconsistent(md); 94 84 } 95 85 96 86 //If we are restarting, actually use the provided runtime name: -
../trunk-jpl/src/m/solve/marshall.js
18 18 for (field in md){ 19 19 20 20 //Some properties do not need to be marshalled 21 if (field == 'results' | field =='radaroverlay' | field == 'toolkits' | field =='cluster' | field == ' flaim' | field == 'priv') continue;21 if (field == 'results' | field =='radaroverlay' | field == 'toolkits' | field =='cluster' | field == 'priv') continue; 22 22 23 23 //Check that current field is a class 24 24 if(typeof md[field] == 'function'){ -
../trunk-jpl/src/m/solve/solve.py
83 83 #check model consistency 84 84 if m.strcmpi(options.getfieldvalue('checkconsistency','yes'),'yes'): 85 85 print "checking model consistency" 86 if solutionstring.lower() == 'flaimsolution': 87 md.private.isconsistent=True 88 md.mesh.checkconsistency(md,solutionstring) 89 md.flaim.checkconsistency(md,solutionstring) 90 if not md.private.isconsistent: 91 raise RuntimeError("Model not consistent, see messages above.") 92 else: 93 ismodelselfconsistent(md) 86 ismodelselfconsistent(md) 94 87 95 88 #First, build a runtime name that is unique 96 89 restart=options.getfieldvalue('restart','') … … 111 104 if md.qmu.isdakota: 112 105 md=preqmu(md,options) 113 106 114 #flaim analysis115 if solutionstring.lower() == 'flaimSolution':116 solutionstring='FlaimSolution'117 md=flaim_sol(md,options)118 md.private.solution=solutionstring119 return md120 121 107 #Do we load results only? 122 108 if options.getfieldvalue('loadonly',False): 123 109 md=loadresultsfromcluster(md) -
../trunk-jpl/src/m/solve/solve.m
77 77 if md.verbose.solution, 78 78 disp('checking model consistency'); 79 79 end 80 if (strcmp(solutionstring,'FlaimSolution')) 81 md.private.isconsistent=true; 82 md=checkconsistency(md.mesh,md,solutionstring); 83 md=checkconsistency(md.flaim,md,solutionstring); 84 if md.private.isconsistent==false, 85 error('Model not consistent, see messages above'); 86 end 87 else 88 ismodelselfconsistent(md), 89 end 80 ismodelselfconsistent(md), 90 81 end 91 82 92 83 %If we are restarting, actually use the provided runtime name: … … 111 102 md=preqmu(md,options); 112 103 end 113 104 114 %flaim analysis (To be removed?)115 if (strcmp(solutionstring,'FlaimSolution'))116 %fmdir = getfieldvalue(options,'fmdir',['fm' num2str(feature('GetPid'))]);117 %overwrite = getfieldvalue(options,'overwrite','n');118 %keep = getfieldvalue(options,'keep','y');119 %latsgn = getfieldvalue(options,'latsgn',0);120 %cmap = getfieldvalue(options,'cmap',[]);121 md=flaim_sol(md,options);122 md.private.solution=solutionstring;123 return;124 end125 126 105 %Do we load results only? 127 106 if getfieldvalue(options,'loadonly',false), 128 107 md=loadresultsfromcluster(md); -
../trunk-jpl/src/m/solve/marshall.py
26 26 for field in md.properties(): 27 27 28 28 #Some properties do not need to be marshalled 29 if field in ['results','radaroverlay','toolkits','cluster',' flaim','private']:29 if field in ['results','radaroverlay','toolkits','cluster','private']: 30 30 continue 31 31 32 32 #Check that current field is an object -
../trunk-jpl/src/m/solve/marshall.m
23 23 field=fields{i}; 24 24 25 25 %Some properties do not need to be marshalled 26 if ismember(field,{'results' 'radaroverlay' 'toolkits' 'cluster' 'flaim''private'}),26 if ismember(field,{'results' 'radaroverlay' 'toolkits' 'cluster' 'private'}), 27 27 continue; 28 28 end 29 29 -
../trunk-jpl/src/m/consistency/ismodelselfconsistent.py
36 36 elif solutiontype == 'TransientSolution': 37 37 analyses=['StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','MasstransportAnalysis'] 38 38 39 elif solutiontype == 'FlaimSolution':40 analyses=['FlaimAnalysis']41 42 39 elif solutiontype == 'HydrologySolution': 43 40 analyses=['L2ProjectionBaseAnalysis','HydrologyShreveAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis'] 44 41 -
../trunk-jpl/src/m/consistency/ismodelselfconsistent.js
92 92 analyses=['StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','MasstransportAnalysis','HydrologySommersAnalysis']; 93 93 break; 94 94 95 }else if(solutiontype ==='FlaimSolution'){96 analyses=['FlaimAnalysis'];97 break;98 99 95 }else if(solutiontype ==='SealevelriseSolution'){ 100 96 analyses=['SealevelriseAnalysis']; 101 97 break; -
../trunk-jpl/src/m/consistency/ismodelselfconsistent.m
67 67 analyses={'GiaAnalysis'}; 68 68 elseif strcmp(solutiontype,'TransientSolution') 69 69 analyses={'StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','MasstransportAnalysis','HydrologySommersAnalysis'}; 70 elseif strcmp(solutiontype,'FlaimSolution')71 analyses={'FlaimAnalysis'};72 70 elseif strcmp(solutiontype,'SealevelriseSolution') 73 71 analyses={'SealevelriseAnalysis'}; 74 72 elseif strcmp(solutiontype,'HydrologySolution') -
../trunk-jpl/src/m/classes/flaim.py
1 import numpy2 from collections import OrderedDict3 from fielddisplay import fielddisplay4 from checkfield import checkfield5 from WriteData import WriteData6 7 class flaim(object):8 """9 FLAIM class definition10 11 Usage:12 flaim=flaim();13 """14 15 def __init__(self): # {{{16 self.targets = ''17 self.tracks = ''18 self.flightreqs = OrderedDict()19 self.criterion = float('NaN')20 self.gridsatequator = 20000021 self.usevalueordering = True22 self.split_antimeridian = True23 self.solution = ''24 self.quality = 025 self.path_optimize = False26 self.opt_ndir = 127 self.opt_dist = 2528 self.opt_niter = 3000029 #}}}30 def __repr__(self): # {{{31 string=' FLAIM - Flight Line Adaptation using Ice sheet Modeling:'32 33 string="%s\n\n%s"%(string,' Input:')34 string="%s\n%s"%(string,fielddisplay(self,'targets' ,'name of kml output targets file '))35 string="%s\n%s"%(string,fielddisplay(self,'tracks' ,'name of kml input tracks file '))36 string="%s\n%s"%(string,fielddisplay(self,'flightreqs' ,'structure of kml flight requirements (not used yet)'))37 string="%s\n%s"%(string,fielddisplay(self,'criterion' ,'element or nodal criterion for flight path evaluation (metric)'))38 39 string="%s\n\n%s"%(string,' Arguments:')40 string="%s\n%s"%(string,fielddisplay(self,'gridsatequator' ,'number of grids at equator (determines resolution)'))41 string="%s\n%s"%(string,fielddisplay(self,'usevalueordering' ,'flag to consider target values for flight path evaluation'))42 string="%s\n%s"%(string,fielddisplay(self,'split_antimeridian' ,'flag to split polygons on the antimeridian'))43 44 string="%s\n\n%s"%(string,' Optimization:')45 string="%s\n%s"%(string,fielddisplay(self,'path_optimize' ,'optimize? (default false)'))46 string="%s\n%s"%(string,fielddisplay(self,'opt_ndir' ,['number of directions to test when moving a point. If this value = 1, a random direction is tested.',\47 'A value > 1 results in directions equally spaced from [0, 2*PI] being tested.',\48 'For example, 4 would result in directions [0, PI/2, PI, 3PI/2].']))49 string="%s\n%s"%(string,fielddisplay(self,'opt_dist' ,'specifies the distance in km (default 25) to move a randomly selected path point on each iteration'))50 string="%s\n%s"%(string,fielddisplay(self,'opt_niter' ,['number of iterations (default 30,000) to run for flightplan optimization',\51 'i.e. the number of times to randomly select a point and move it.']))52 53 string="%s\n\n%s"%(string,' Output:')54 string="%s\n%s"%(string,fielddisplay(self,'solution' ,'name of kml solution file'))55 string="%s\n%s"%(string,fielddisplay(self,'quality' ,'quality of kml solution'))56 return string57 #}}}58 def checkconsistency(self,md,solution,analyses): # {{{59 60 #Early return61 if not solution=='FlaimSolution':62 return md63 64 md = checkfield(md,'fieldname','flaim.tracks','file',1)65 if numpy.any(numpy.isnan(md.flaim.criterion)) or not md.flaim.criterion:66 md = checkfield(md,'fieldname','flaim.targets','file',1)67 else:68 md = checkfield(md,'fieldname','flaim.criterion','numel',[md.mesh.numberofvertices,md.mesh.numberofelements])69 70 return md71 # }}} -
../trunk-jpl/src/m/classes/flaim.m
1 %FLAIM class definition2 %3 % Usage:4 % flaim=flaim();5 6 classdef flaim7 properties (SetAccess=public)8 targets = ''9 tracks = ''10 flightreqs = struct()11 criterion = NaN12 gridsatequator = 20000013 usevalueordering = true14 split_antimeridian = true15 solution = ''16 quality = 017 path_optimize = false18 opt_ndir = 119 opt_dist = 2520 opt_niter = 3000021 end22 methods23 function self = flaim(varargin) % {{{24 switch nargin25 case 026 self=setdefaultparameters(self);27 otherwise28 error('constructor not supported');29 end30 end % }}}31 function self = setdefaultparameters(self) % {{{32 33 end % }}}34 function md = checkconsistency(self,md,solution,analyses) % {{{35 36 %Early return37 if ~strcmp(solution,'FlaimSolution'), return; end38 39 md = checkfield(md,'fieldname','flaim.tracks','file',1);40 if any(isnan(md.flaim.criterion)) || isempty(md.flaim.criterion)41 md = checkfield(md,'fieldname','flaim.targets','file',1);42 else43 md = checkfield(md,'fieldname','flaim.criterion','numel',[md.mesh.numberofvertices md.mesh.numberofelements]);44 end45 46 end % }}}47 function disp(self) % {{{48 49 disp(sprintf(' FLAIM - Flight Line Adaptation using Ice sheet Modeling:'));50 51 disp(sprintf('\n Input:'));52 fielddisplay(self,'targets' ,'name of kml output targets file ');53 fielddisplay(self,'tracks' ,'name of kml input tracks file ');54 fielddisplay(self,'flightreqs' ,'structure of kml flight requirements (not used yet)');55 fielddisplay(self,'criterion' ,'element or nodal criterion for flight path evaluation (metric)');56 57 disp(sprintf('\n Arguments:'));58 fielddisplay(self,'gridsatequator' ,'number of grids at equator (determines resolution)');59 fielddisplay(self,'usevalueordering' ,'flag to consider target values for flight path evaluation');60 fielddisplay(self,'split_antimeridian' ,'flag to split polygons on the antimeridian');61 62 disp(sprintf('\n Optimization:'));63 fielddisplay(self,'path_optimize' ,'optimize? (default false)');64 fielddisplay(self,'opt_ndir' ,{'number of directions to test when moving a point. If this value = 1, a random direction is tested.',...65 'A value > 1 results in directions equally spaced from [0, 2*PI] being tested.',...66 'For example, 4 would result in directions [0, PI/2, PI, 3PI/2].'});67 fielddisplay(self,'opt_dist' ,'specifies the distance in km (default 25) to move a randomly selected path point on each iteration');68 fielddisplay(self,'opt_niter' ,{'number of iterations (default 30,000) to run for flightplan optimization',...69 'i.e. the number of times to randomly select a point and move it.'});70 71 disp(sprintf('\n Output:'));72 fielddisplay(self,'solution' ,'name of kml solution file');73 fielddisplay(self,'quality' ,'quality of kml solution');74 end % }}}75 function savemodeljs(self,fid,modelname) % {{{76 77 %do nothing for now!78 if ~isempty(self.targets),79 error('flaim savemodeljs error message: not supported yet!');80 end81 82 end % }}}83 end84 end -
../trunk-jpl/src/m/classes/flaim.js
1 //FLAIM class definition2 //3 // Usage:4 // flaim=new flaim();5 6 function flaim (){7 //methods8 this.setdefaultparameters = function(){// {{{9 }// }}}10 this.disp= function(){// {{{11 12 console.log(sprintf(' FLAIM - Flight Line Adaptation using Ice sheet Modeling:'));13 14 console.log(sprintf('\n Input:'));15 fielddisplay(this,'targets' ,'name of kml output targets file ');16 fielddisplay(this,'tracks' ,'name of kml input tracks file ');17 fielddisplay(this,'flightreqs' ,'structure of kml flight requirements (not used yet)');18 fielddisplay(this,'criterion' ,'element or nodal criterion for flight path evaluation (metric)');19 20 console.log(sprintf('\n Arguments:'));21 fielddisplay(this,'gridsatequator' ,'number of grids at equator (determines resolution)');22 fielddisplay(this,'usevalueordering' ,'flag to consider target values for flight path evaluation');23 fielddisplay(this,'split_antimeridian' ,'flag to split polygons on the antimeridian');24 25 console.log(sprintf('\n Optimization:'));26 fielddisplay(this,'path_optimize' ,'optimize? (default false)');27 fielddisplay(this,'opt_ndir' ,['number of directions to test when moving a point. If this value = 1, a random direction is tested.', 'A value > 1 results in directions equally spaced from [0, 2*PI] being tested.', 'For example, 4 would result in directions [0, PI/2, PI, 3PI/2].']);28 fielddisplay(this,'opt_dist' ,'specifies the distance in km (default 25) to move a randomly selected path point on each iteration');29 fielddisplay(this,'opt_niter' ,['number of iterations (default 30,000) to run for flightplan optimization', 'i.e. the number of times to randomly select a point and move it.']);30 31 console.log(sprintf('\n Output:'));32 fielddisplay(this,'solution' ,'name of kml solution file');33 fielddisplay(this,'quality' ,'quality of kml solution');34 35 }// }}}36 this.checkconsistency = function(md,solution,analyses) { // {{{37 38 //Early return39 if (solution!='FlaimSolution') return;40 41 checkfield(md,'fieldname','flaim.tracks','file',1);42 if (isNaN(md.flaim.criterion) | md.flaim.criterion.length==0){43 checkfield(md,'fieldname','flaim.targets','file',1);44 }45 else{46 checkfield(md,'fieldname','flaim.criterion','numel',[md.mesh.numberofvertices, md.mesh.numberofelements]);47 }48 } //}}}49 //properties50 // {{{51 52 this.targets = '';53 this.tracks = '';54 this.flightreqs = {};55 this.criterion = NaN;56 this.gridsatequator = 200000;57 this.usevalueordering = true;58 this.split_antimeridian = true;59 this.solution = '';60 this.quality = 0;61 this.path_optimize = false;62 this.opt_ndir = 1;63 this.opt_dist = 25;64 this.opt_niter = 30000;65 66 this.setdefaultparameters();67 //}}}68 } -
../trunk-jpl/src/m/classes/model.m
42 42 gia = 0; 43 43 44 44 autodiff = 0; 45 flaim = 0;46 45 inversion = 0; 47 46 qmu = 0; 48 47 … … 922 921 if isfield(structmd,'y'), md.mesh.y=structmd.y; end 923 922 if isfield(structmd,'x'), md.mesh.x=structmd.x; end 924 923 if isfield(structmd,'z'), md.mesh.z=structmd.z; end 925 if isfield(structmd,'mask'), md.flaim.criterion=structmd.mask; end926 924 if isfield(structmd,'diagnostic_ref'), md.stressbalance.referential=structmd.diagnostic_ref; end 927 925 if isfield(structmd,'npart'); md.qmu.numberofpartitions=structmd.npart; end 928 926 if isfield(structmd,'part'); md.qmu.partition=structmd.part; end … … 1092 1090 md.calving = calving(); 1093 1091 md.gia = gia(); 1094 1092 md.autodiff = autodiff(); 1095 md.flaim = flaim();1096 1093 md.inversion = inversion(); 1097 1094 md.qmu = qmu(); 1098 1095 md.radaroverlay = radaroverlay(); … … 1264 1261 disp(sprintf('%19s: %-22s -- %s','calving' ,['[1x1 ' class(self.calving) ']'],'parameters for calving')); 1265 1262 disp(sprintf('%19s: %-22s -- %s','gia' ,['[1x1 ' class(self.gia) ']'],'parameters for gia solution')); 1266 1263 disp(sprintf('%19s: %-22s -- %s','autodiff' ,['[1x1 ' class(self.autodiff) ']'],'automatic differentiation parameters')); 1267 disp(sprintf('%19s: %-22s -- %s','flaim' ,['[1x1 ' class(self.flaim) ']'],'flaim parameters'));1268 1264 disp(sprintf('%19s: %-22s -- %s','inversion' ,['[1x1 ' class(self.inversion) ']'],'parameters for inverse methods')); 1269 1265 disp(sprintf('%19s: %-22s -- %s','qmu' ,['[1x1 ' class(self.qmu) ']'],'dakota properties')); 1270 1266 disp(sprintf('%19s: %-22s -- %s','outputdefinition',['[1x1 ' class(self.outputdefinition) ']'],'output definition')); -
../trunk-jpl/src/m/classes/model.py
46 46 from transient import transient 47 47 from gia import gia 48 48 from autodiff import autodiff 49 from flaim import flaim50 49 from inversion import inversion 51 50 from outputdefinition import outputdefinition 52 51 from qmu import qmu … … 110 109 self.gia = gia() 111 110 112 111 self.autodiff = autodiff() 113 self.flaim = flaim()114 112 self.inversion = inversion() 115 113 self.qmu = qmu() 116 114 … … 153 151 'calving',\ 154 152 'gia',\ 155 153 'autodiff',\ 156 'flaim',\157 154 'inversion',\ 158 155 'qmu',\ 159 156 'outputdefinition',\ … … 194 191 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("levelset","[%s,%s]" % ("1x1",obj.levelset.__class__.__name__),"parameters for moving boundaries (level-set method)")) 195 192 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("calving","[%s,%s]" % ("1x1",obj.calving.__class__.__name__),"parameters for calving")) 196 193 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("autodiff","[%s,%s]" % ("1x1",obj.autodiff.__class__.__name__),"automatic differentiation parameters")) 197 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("flaim","[%s,%s]" % ("1x1",obj.flaim.__class__.__name__),"flaim parameters"))198 194 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("inversion","[%s,%s]" % ("1x1",obj.inversion.__class__.__name__),"parameters for inverse methods")) 199 195 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("qmu","[%s,%s]" % ("1x1",obj.qmu.__class__.__name__),"dakota properties")) 200 196 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("outputdefinition","[%s,%s]" % ("1x1",obj.outputdefinition.__class__.__name__),"output definition")) -
../trunk-jpl/src/m/classes/oldclasses/flaim.m
1 %FLAIM class definition 2 % 3 % Usage: 4 % flaim=flaim(); 5 6 classdef flaim 7 properties (SetAccess=public) 8 targets = '' 9 tracks = '' 10 flightreqs = struct() 11 criterion = NaN 12 gridsatequator = 200000 13 usevalueordering = true 14 split_antimeridian = true 15 solution = '' 16 quality = 0 17 path_optimize = false 18 opt_ndir = 1 19 opt_dist = 25 20 opt_niter = 30000 21 end 22 end -
../trunk-jpl/src/m/classes/model.js
38 38 console.log(sprintf("//19s: //-22s -- //s","calving" ,"[1x1 " + typeof(this.calving) + "]","parameters for calving")); 39 39 console.log(sprintf("//19s: //-22s -- //s","gia" ,"[1x1 " + typeof(this.gia) + "]","parameters for gia solution")); 40 40 console.log(sprintf("//19s: //-22s -- //s","autodiff" ,"[1x1 " + typeof(this.autodiff) + "]","automatic differentiation parameters")); 41 console.log(sprintf("//19s: //-22s -- //s","flaim" ,"[1x1 " + typeof(this.flaim) + "]","flaim parameters"));42 41 console.log(sprintf("//19s: //-22s -- //s","inversion" ,"[1x1 " + typeof(this.inversion) + "]","parameters for inverse methods")); 43 42 console.log(sprintf("//19s: //-22s -- //s","qmu" ,"[1x1 " + typeof(this.qmu) + "]","dakota properties")); 44 43 console.log(sprintf("//19s: //-22s -- //s","outputdefinition","[1x1 " + typeof(this.outputdefinition) + "]","output definition")); … … 80 79 this.calving = new calving(); 81 80 this.gia = new gia(); 82 81 this.autodiff = new autodiff(); 83 this.flaim = new flaim();84 82 this.inversion = new inversion(); 85 83 this.qmu = new qmu(); 86 84 this.radaroverlay = new radaroverlay(); … … 98 96 for (var field in this){ 99 97 100 98 //Some properties do not need to be fixed 101 if (field == 'results' | field =='radaroverlay' | field == 'toolkits' | field =='cluster' | field == ' flaim' | field == 'priv') continue;99 if (field == 'results' | field =='radaroverlay' | field == 'toolkits' | field =='cluster' | field == 'priv') continue; 102 100 103 101 //Check that current field is a class 104 102 if(typeof this[field] == 'function'){ … … 611 609 this.gia = 0; 612 610 613 611 this.autodiff = 0; 614 this.flaim = 0;615 612 this.inversion = 0; 616 613 this.qmu = 0; 617 614 -
../trunk-jpl/src/m/classes/slr.py
14 14 """ 15 15 16 16 def __init__(self): # {{{ 17 self.deltathickness 18 self.sealevel 19 self.maxiter 20 self.reltol 21 self.abstol 22 self.love_h 23 self.love_k 24 self.love_l 25 self.tide_love_h = 026 self.tide_love_k = 027 self.rigid 28 self.elastic 29 self.rotation 30 self.degacc 31 self.requested_outputs 32 self.transitions 17 self.deltathickness = NaN 18 self.sealevel = NaN 19 self.maxiter = 0 20 self.reltol = 0 21 self.abstol = 0 22 self.love_h = 0 #provided by PREM model() 23 self.love_k = 0 #ideam 24 self.love_l = 0 #ideam 25 self.tide_love_h = 0 26 self.tide_love_k = 0 27 self.rigid = 0 28 self.elastic = 0 29 self.rotation = 0 30 self.degacc = 0 31 self.requested_outputs = [] 32 self.transitions = [] 33 33 34 34 #set defaults 35 35 self.setdefaultparameters() -
../trunk-jpl/src/m/contrib/defleurian/netCDF/ClassTry.py
71 71 'calving':'calving',\ 72 72 'gia':'gia',\ 73 73 'autodiff':'autodiff',\ 74 'flaim':'flaim',\75 74 'inversion':'inversion',\ 76 75 'qmu':'qmu',\ 77 76 'outputdefinition':'outputdefinition',\ … … 111 110 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("transient","[%s,%s]" % ("1x1",obj.transient.__class__.__name__),"parameters for transient solution")) 112 111 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("calving","[%s,%s]" % ("1x1",obj.calving.__class__.__name__),"parameters for calving")) 113 112 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("autodiff","[%s,%s]" % ("1x1",obj.autodiff.__class__.__name__),"automatic differentiation parameters")) 114 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("flaim","[%s,%s]" % ("1x1",obj.flaim.__class__.__name__),"flaim parameters"))115 113 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("inversion","[%s,%s]" % ("1x1",obj.inversion.__class__.__name__),"parameters for inverse methods")) 116 114 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("qmu","[%s,%s]" % ("1x1",obj.qmu.__class__.__name__),"dakota properties")) 117 115 string="%s\n%s" % (string,"%19s: %-22s -- %s" % ("outputdefinition","[%s,%s]" % ("1x1",obj.outputdefinition.__class__.__name__),"output definition")) -
../trunk-jpl/src/m/os/flaimdir.m
1 function FLAIM_DIR=flaimdir()2 %ISSMDIR - Get FLAIM installation directory3 %4 % Usage:5 % FLAIM_DIR=flaimdir()6 7 FLAIM_DIR=[issmdir() '/externalpackages/flaim/install'];
Note:
See TracBrowser
for help on using the repository browser.