source: issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.m@ 27506

Last change on this file since 27506 was 27506, checked in by Mathieu Morlighem, 2 years ago

CHG: added age to matlab classes

File size: 3.8 KB
RevLine 
[2326]1function ismodelselfconsistent(md),
[1]2%ISMODELSELFCONSISTENT - check that model forms a closed form solvable problem.
3%
4% Usage:
[26059]5% ismodelselfconsistent(md);
[1]6
[9730]7%initialize consistency as true
[12664]8md.private.isconsistent=true;
[9730]9
[9853]10%Get solution and associated analyses
11solution=md.private.solution;
[16529]12[analyses]=AnalysisConfiguration(solution);
[9853]13
[12755]14%Go through a model field, check that it is a class, and call checkconsistency
[11221]15fields=properties('model');
[9739]16for i=1:length(fields),
17 field=fields{i};
[9853]18
19 %Some properties do not need to be checked
[9751]20 if ismember(field,{'results' 'debug' 'radaroverlay'}),
[9739]21 continue;
22 end
[9853]23
24 %Check that current field is an object
[9739]25 if ~isobject(md.(field))
[12664]26 md=checkmessage(md,['field ''' char(field) ''' is not an object']);
[16821]27 continue;
[9739]28 end
[9853]29
30 %Check consistency of the object
[13729]31 md=checkconsistency(md.(field),md,solution,analyses);
[9732]32end
33
[9730]34%error message if mode is not consistent
[12664]35if md.private.isconsistent==false,
36 error('Model not consistent, see messages above');
[9730]37end
[13005]38end
39
[16529]40function [analyses]=AnalysisConfiguration(solutiontype), % {{{
[24213]41%ANALYSISCONFIGURATION - return type of analyses, number of analyses
[13005]42%
43% Usage:
[16529]44% [analyses]=AnalysisConfiguration(solutiontype);
[13005]45
[21049]46 if strcmp(solutiontype,'StressbalanceSolution')
[27461]47 analyses={'StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','AgeAnalysis'};
[21049]48 elseif strcmp(solutiontype,'SteadystateSolution')
[27506]49 analyses={'StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','AgeAnalysis'};
[21049]50 elseif strcmp(solutiontype,'ThermalSolution')
51 analyses={'EnthalpyAnalysis','ThermalAnalysis','MeltingAnalysis'};
52 elseif strcmp(solutiontype,'MasstransportSolution')
53 analyses={'MasstransportAnalysis'};
[26047]54 elseif strcmp(solutiontype,'OceantransportSolution')
55 analyses={'OceantransportAnalysis'};
[21049]56 elseif strcmp(solutiontype,'BalancethicknessSolution')
57 analyses={'BalancethicknessAnalysis'};
58 elseif strcmp(solutiontype,'Balancethickness2Solution')
59 analyses={'Balancethickness2Analysis'};
60 elseif strcmp(solutiontype,'BalancethicknessSoftSolution')
61 analyses={'BalancethicknessAnalysis'};
62 elseif strcmp(solutiontype,'BalancevelocitySolution')
63 analyses={'BalancevelocityAnalysis'};
64 elseif strcmp(solutiontype,'SurfaceSlopeSolution')
65 analyses={'L2ProjectionBaseAnalysis'};
66 elseif strcmp(solutiontype,'BedSlopeSolution')
67 analyses={'L2ProjectionBaseAnalysis'};
[21584]68 elseif strcmp(solutiontype,'GiaSolution')
[21530]69 analyses={'GiaIvinsAnalysis'};
[22004]70 elseif strcmp(solutiontype,'LoveSolution')
71 analyses={'LoveAnalysis'};
[21260]72 elseif strcmp(solutiontype,'EsaSolution')
73 analyses={'EsaAnalysis'};
[21049]74 elseif strcmp(solutiontype,'TransientSolution')
[27506]75 analyses={'StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','MasstransportAnalysis','OceantransportAnalysis','HydrologyShaktiAnalysis','HydrologyGladsAnalysis','HydrologyShreveAnalysis','HydrologyTwsAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis','SealevelchangeAnalysis','AgeAnalysis','HydrologyArmapwAnalysis','AgeAnalysis','DebrisAnalysis'};
[25952]76 elseif strcmp(solutiontype,'SealevelchangeSolution')
77 analyses={'SealevelchangeAnalysis'};
[21049]78 elseif strcmp(solutiontype,'HydrologySolution')
[27462]79 analyses={'L2ProjectionBaseAnalysis','HydrologyShreveAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis','HydrologyGladsAnalysis','HydrologyShaktiAnalysis','HydrologyTwsAnalysis','HydrologyArmapwAnalysis'};
[21049]80 elseif strcmp(solutiontype,'DamageEvolutionSolution')
81 analyses={'DamageEvolutionAnalysis'};
[25996]82 elseif strcmp(solutiontype,'SamplingSolution')
83 analyses={'SamplingAnalysis'};
[21049]84 else
85 error(' solution type: %s' , solutiontype, ' not supported yet!');
[13018]86 end
[13005]87end % }}}
Note: See TracBrowser for help on using the repository browser.