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

Last change on this file since 21530 was 21530, checked in by adhikari, 8 years ago

CHG: Gia model is now named GiaIvins

File size: 3.2 KB
Line 
1function ismodelselfconsistent(md),
2%ISMODELSELFCONSISTENT - check that model forms a closed form solvable problem.
3%
4% Usage:
5% ismodelselfconsistent(md),
6
7%initialize consistency as true
8md.private.isconsistent=true;
9
10%Get solution and associated analyses
11solution=md.private.solution;
12[analyses]=AnalysisConfiguration(solution);
13
14%Go through a model field, check that it is a class, and call checkconsistency
15fields=properties('model');
16for i=1:length(fields),
17 field=fields{i};
18
19 %Some properties do not need to be checked
20 if ismember(field,{'results' 'debug' 'radaroverlay'}),
21 continue;
22 end
23
24 %Check that current field is an object
25 if ~isobject(md.(field))
26 md=checkmessage(md,['field ''' char(field) ''' is not an object']);
27 continue;
28 end
29
30 %Check consistency of the object
31 md=checkconsistency(md.(field),md,solution,analyses);
32end
33
34%error message if mode is not consistent
35if md.private.isconsistent==false,
36 error('Model not consistent, see messages above');
37end
38end
39
40function [analyses]=AnalysisConfiguration(solutiontype), % {{{
41%ANALYSISCONFIGURATION - return type of analyses, number of analyses
42%
43% Usage:
44% [analyses]=AnalysisConfiguration(solutiontype);
45
46 if strcmp(solutiontype,'StressbalanceSolution')
47 analyses={'StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis'};
48 elseif strcmp(solutiontype,'SteadystateSolution')
49 analyses={'StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis'};
50 elseif strcmp(solutiontype,'ThermalSolution')
51 analyses={'EnthalpyAnalysis','ThermalAnalysis','MeltingAnalysis'};
52 elseif strcmp(solutiontype,'MasstransportSolution')
53 analyses={'MasstransportAnalysis'};
54 elseif strcmp(solutiontype,'BalancethicknessSolution')
55 analyses={'BalancethicknessAnalysis'};
56 elseif strcmp(solutiontype,'Balancethickness2Solution')
57 analyses={'Balancethickness2Analysis'};
58 elseif strcmp(solutiontype,'BalancethicknessSoftSolution')
59 analyses={'BalancethicknessAnalysis'};
60 elseif strcmp(solutiontype,'BalancevelocitySolution')
61 analyses={'BalancevelocityAnalysis'};
62 elseif strcmp(solutiontype,'SurfaceSlopeSolution')
63 analyses={'L2ProjectionBaseAnalysis'};
64 elseif strcmp(solutiontype,'BedSlopeSolution')
65 analyses={'L2ProjectionBaseAnalysis'};
66 elseif strcmp(solutiontype,'GiaIvinsSolution')
67 analyses={'GiaIvinsAnalysis'};
68 elseif strcmp(solutiontype,'EsaSolution')
69 analyses={'EsaAnalysis'};
70 elseif strcmp(solutiontype,'TransientSolution')
71 analyses={'StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','MasstransportAnalysis','HydrologySommersAnalysis'};
72 elseif strcmp(solutiontype,'SealevelriseSolution')
73 analyses={'SealevelriseAnalysis'};
74 elseif strcmp(solutiontype,'HydrologySolution')
75 analyses={'L2ProjectionBaseAnalysis','HydrologyShreveAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis'};
76 elseif strcmp(solutiontype,'DamageEvolutionSolution')
77 analyses={'DamageEvolutionAnalysis'};
78 else
79 error(' solution type: %s' , solutiontype, ' not supported yet!');
80 end
81end % }}}
Note: See TracBrowser for help on using the repository browser.