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

Last change on this file since 26047 was 26047, checked in by Eric.Larour, 4 years ago

CHG: huge commit on solid earth capability rewrite. Complete cleanup of the sea level core.
New mass transport capabilities for ocean and tws. No more giacore. GiaIvins folded into
the sea level core. Debugging of Materials.

File size: 3.7 KB
RevLine 
[2326]1function ismodelselfconsistent(md),
[1]2%ISMODELSELFCONSISTENT - check that model forms a closed form solvable problem.
3%
4% Usage:
[2326]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')
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'};
[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')
[26047]75 analyses={'StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','MasstransportAnalysis','OceantransportAnalysis','HydrologyShaktiAnalysis','HydrologyGladsAnalysis','HydrologyShreveAnalysis','HydrologyTwsAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis','SealevelchangeAnalysis'};
[25952]76 elseif strcmp(solutiontype,'SealevelchangeSolution')
77 analyses={'SealevelchangeAnalysis'};
[21049]78 elseif strcmp(solutiontype,'HydrologySolution')
[26047]79 analyses={'L2ProjectionBaseAnalysis','HydrologyShreveAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis','HydrologyGladsAnalysis','HydrologyShaktiAnalysis','HydrologyTwsAnalysis'};
[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.