1 | /*!\file: DistributeNumDofs.cpp
|
---|
2 | * \brief: figure out the maximum number of dofs per grid.
|
---|
3 | */
|
---|
4 |
|
---|
5 | #include "../../include/include.h"
|
---|
6 | #include "../../EnumDefinitions/EnumDefinitions.h"
|
---|
7 | #include "../shared.h"
|
---|
8 |
|
---|
9 | int DistributeNumDofs(int *pnumdofs,int analysis_type,int sub_analysis_type){
|
---|
10 |
|
---|
11 | int numdofs=2; //default numdofs
|
---|
12 | int i;
|
---|
13 |
|
---|
14 | /*ok, according to analysis type: */
|
---|
15 | if (analysis_type==ControlAnalysisEnum){
|
---|
16 | if (sub_analysis_type==HorizAnalysisEnum){
|
---|
17 | numdofs=2;
|
---|
18 | }
|
---|
19 | else if (sub_analysis_type==VertAnalysisEnum){
|
---|
20 | numdofs=1;
|
---|
21 | }
|
---|
22 | else if (sub_analysis_type==StokesAnalysisEnum){
|
---|
23 | numdofs=4;
|
---|
24 | }
|
---|
25 | else if (sub_analysis_type==HutterAnalysisEnum){
|
---|
26 | numdofs=2;
|
---|
27 | }
|
---|
28 | }
|
---|
29 | else if (analysis_type==DiagnosticAnalysisEnum){
|
---|
30 | if (sub_analysis_type==HorizAnalysisEnum){
|
---|
31 | numdofs=2;
|
---|
32 | }
|
---|
33 | else if (sub_analysis_type==VertAnalysisEnum){
|
---|
34 | numdofs=1;
|
---|
35 | }
|
---|
36 | else if (sub_analysis_type==StokesAnalysisEnum){
|
---|
37 | numdofs=4;
|
---|
38 | }
|
---|
39 | else if (sub_analysis_type==HutterAnalysisEnum){
|
---|
40 | numdofs=2;
|
---|
41 | }
|
---|
42 | }
|
---|
43 | else if (analysis_type==SlopecomputeAnalysisEnum){
|
---|
44 | numdofs=1;
|
---|
45 | }
|
---|
46 | else if (analysis_type==ThermalAnalysisEnum){
|
---|
47 | numdofs=1;
|
---|
48 | }
|
---|
49 | else if (analysis_type==MeltingAnalysisEnum){
|
---|
50 | numdofs=1;
|
---|
51 | }
|
---|
52 | else if (analysis_type==PrognosticAnalysisEnum){
|
---|
53 | numdofs=1;
|
---|
54 | }
|
---|
55 | else if (analysis_type==Prognostic2AnalysisEnum){
|
---|
56 | numdofs=1;
|
---|
57 | }
|
---|
58 | else if (analysis_type==BalancedthicknessAnalysisEnum){
|
---|
59 | numdofs=1;
|
---|
60 | }
|
---|
61 | else if (analysis_type==Balancedthickness2AnalysisEnum){
|
---|
62 | numdofs=1;
|
---|
63 | }
|
---|
64 | else if (analysis_type==BalancedvelocitiesAnalysisEnum){
|
---|
65 | numdofs=1;
|
---|
66 | }
|
---|
67 | else ISSMERROR("%s%i%s"," analysis type: ",analysis_type," not implemented yet!");
|
---|
68 |
|
---|
69 | /*Assign output pointers:*/
|
---|
70 | *pnumdofs=numdofs;;
|
---|
71 |
|
---|
72 | return 1;
|
---|
73 | }
|
---|