source: issm/branches/trunk-jpl-damage/src/c/solutions/AnalysisConfiguration.cpp@ 13101

Last change on this file since 13101 was 13101, checked in by cborstad, 13 years ago

merged trunk-jpl through revision 13099 into branch

File size: 3.1 KB
RevLine 
[9571]1/*!\file: AnalysisConfiguration.cpp
2 * \brief: return type of analyses, number of analyses
3 */
4
5#ifdef HAVE_CONFIG_H
6 #include <config.h>
7#else
8#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
9#endif
10
11#include "../toolkits/toolkits.h"
[12878]12#include "../classes/objects/objects.h"
[9571]13#include "../shared/shared.h"
14#include "../EnumDefinitions/EnumDefinitions.h"
15#include "./solutions.h"
16#include "../modules/modules.h"
17#include "../include/include.h"
18#include "../solvers/solvers.h"
19
20void AnalysisConfiguration(int** panalyses,int* pnumanalyses, int solutiontype){
21
22 /*output: */
23 int numanalyses;
24 int* analyses=NULL;
25
26 /*Analyses lists*/
27 switch(solutiontype){
28
29 case DiagnosticSolutionEnum:
30 numanalyses=5;
[12878]31 analyses=xNew<int>(numanalyses);
[9571]32 analyses[0]=DiagnosticHorizAnalysisEnum;
33 analyses[1]=DiagnosticVertAnalysisEnum;
34 analyses[2]=DiagnosticHutterAnalysisEnum;
35 analyses[3]=SurfaceSlopeAnalysisEnum;
36 analyses[4]=BedSlopeAnalysisEnum;
37 break;
38
39 case SteadystateSolutionEnum:
[11684]40 numanalyses=8;
[12878]41 analyses=xNew<int>(numanalyses);
[9571]42 analyses[0]=DiagnosticHorizAnalysisEnum;
43 analyses[1]=DiagnosticVertAnalysisEnum;
44 analyses[2]=DiagnosticHutterAnalysisEnum;
45 analyses[3]=SurfaceSlopeAnalysisEnum;
46 analyses[4]=BedSlopeAnalysisEnum;
[11684]47 analyses[5]=EnthalpyAnalysisEnum;
48 analyses[6]=ThermalAnalysisEnum;
49 analyses[7]=MeltingAnalysisEnum;
[9571]50 break;
51
52 case ThermalSolutionEnum:
53 numanalyses=2;
[12878]54 analyses=xNew<int>(numanalyses);
[9571]55 analyses[0]=ThermalAnalysisEnum;
56 analyses[1]=MeltingAnalysisEnum;
57 break;
58
59 case EnthalpySolutionEnum:
60 numanalyses=1;
[12878]61 analyses=xNew<int>(numanalyses);
[9571]62 analyses[0]=EnthalpyAnalysisEnum;
63 break;
64
65 case HydrologySolutionEnum:
66 numanalyses=3;
[12878]67 analyses=xNew<int>(numanalyses);
[9571]68 analyses[0]=HydrologyAnalysisEnum;
69 analyses[1]=SurfaceSlopeAnalysisEnum;
70 analyses[2]=BedSlopeAnalysisEnum;
71 break;
72
73 case PrognosticSolutionEnum:
74 numanalyses=1;
[12878]75 analyses=xNew<int>(numanalyses);
[9571]76 analyses[0]=PrognosticAnalysisEnum;
77 break;
78
79 case BalancethicknessSolutionEnum:
80 numanalyses=1;
[12878]81 analyses=xNew<int>(numanalyses);
[9571]82 analyses[0]=BalancethicknessAnalysisEnum;
83 break;
84
85 case SurfaceSlopeSolutionEnum:
86 numanalyses=1;
[12878]87 analyses=xNew<int>(numanalyses);
[9571]88 analyses[0]=SurfaceSlopeAnalysisEnum;
89 break;
90
91 case BedSlopeSolutionEnum:
92 numanalyses=1;
[12878]93 analyses=xNew<int>(numanalyses);
[9571]94 analyses[0]=BedSlopeAnalysisEnum;
95 break;
96
97 case TransientSolutionEnum:
[11347]98 numanalyses=9;
[12878]99 analyses=xNew<int>(numanalyses);
[9571]100 analyses[0]=DiagnosticHorizAnalysisEnum;
101 analyses[1]=DiagnosticVertAnalysisEnum;
102 analyses[2]=DiagnosticHutterAnalysisEnum;
103 analyses[3]=SurfaceSlopeAnalysisEnum;
104 analyses[4]=BedSlopeAnalysisEnum;
105 analyses[5]=ThermalAnalysisEnum;
106 analyses[6]=MeltingAnalysisEnum;
[11354]107 analyses[7]=EnthalpyAnalysisEnum;
108 analyses[8]=PrognosticAnalysisEnum;
[9571]109 break;
110
111 default:
[13101]112 _error_("solution type: " << EnumToStringx(solutiontype) << " not supported yet!");
[9571]113 break;
114 }
115
116 /*Assign output pointers:*/
117 if(pnumanalyses) *pnumanalyses=numanalyses;
118 if(panalyses) *panalyses=analyses;
[12878]119 else xDelete<int>(analyses);
[9571]120}
Note: See TracBrowser for help on using the repository browser.