Changeset 21097
- Timestamp:
- 08/05/16 10:25:20 (9 years ago)
- Location:
- issm/trunk-jpl/src/m
- Files:
-
- 3 deleted
- 14 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/model.js
r21040 r21097 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")); … … 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(); … … 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 … … 612 610 613 611 this.autodiff = 0; 614 this.flaim = 0;615 612 this.inversion = 0; 616 613 this.qmu = 0; -
issm/trunk-jpl/src/m/classes/model.m
r20505 r21097 43 43 44 44 autodiff = 0; 45 flaim = 0;46 45 inversion = 0; 47 46 qmu = 0; … … 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 … … 1093 1091 md.gia = gia(); 1094 1092 md.autodiff = autodiff(); 1095 md.flaim = flaim();1096 1093 md.inversion = inversion(); 1097 1094 md.qmu = qmu(); … … 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')); -
issm/trunk-jpl/src/m/classes/model.py
r20910 r21097 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 … … 111 110 112 111 self.autodiff = autodiff() 113 self.flaim = flaim()114 112 self.inversion = inversion() 115 113 self.qmu = qmu() … … 154 152 'gia',\ 155 153 'autodiff',\ 156 'flaim',\157 154 'inversion',\ 158 155 'qmu',\ … … 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")) -
issm/trunk-jpl/src/m/classes/oldclasses/flaim.m
r21095 r21097 20 20 opt_niter = 30000 21 21 end 22 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 22 end -
issm/trunk-jpl/src/m/classes/slr.py
r21049 r21097 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 -
issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.js
r21065 r21097 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']; -
issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m
r21049 r21097 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'}; -
issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.py
r21069 r21097 36 36 elif solutiontype == 'TransientSolution': 37 37 analyses=['StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','MasstransportAnalysis'] 38 39 elif solutiontype == 'FlaimSolution':40 analyses=['FlaimAnalysis']41 38 42 39 elif solutiontype == 'HydrologySolution': -
issm/trunk-jpl/src/m/contrib/defleurian/netCDF/ClassTry.py
r19527 r21097 72 72 'gia':'gia',\ 73 73 'autodiff':'autodiff',\ 74 'flaim':'flaim',\75 74 'inversion':'inversion',\ 76 75 'qmu':'qmu',\ … … 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")) -
issm/trunk-jpl/src/m/solve/marshall.js
r20773 r21097 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 -
issm/trunk-jpl/src/m/solve/marshall.m
r20690 r21097 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 -
issm/trunk-jpl/src/m/solve/marshall.py
r21069 r21097 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 -
issm/trunk-jpl/src/m/solve/solve.js
r21069 r21097 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 -
issm/trunk-jpl/src/m/solve/solve.m
r21058 r21097 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 … … 110 101 if md.qmu.isdakota, 111 102 md=preqmu(md,options); 112 end113 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 103 end 125 104 -
issm/trunk-jpl/src/m/solve/solve.py
r21069 r21097 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 … … 111 104 if md.qmu.isdakota: 112 105 md=preqmu(md,options) 113 114 #flaim analysis115 if solutionstring.lower() == 'flaimSolution':116 solutionstring='FlaimSolution'117 md=flaim_sol(md,options)118 md.private.solution=solutionstring119 return md120 106 121 107 #Do we load results only?
Note:
See TracChangeset
for help on using the changeset viewer.