source: issm/trunk/src/c/shared/Dofs/DistributeNumDofs.cpp@ 3354

Last change on this file since 3354 was 3354, checked in by Mathieu Morlighem, 15 years ago

Added a module to convert any mesh to a bamg mesh
Added Prognostic2 -> discontinuous Galerkin

File size: 1.6 KB
RevLine 
[465]1/*!\file: DistributeNumDofs.cpp
2 * \brief: figure out the maximum number of dofs per grid.
3 */
4
5#include "../../include/macros.h"
6#include "../../EnumDefinitions/EnumDefinitions.h"
7#include "../shared.h"
8
9int 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()){
[1120]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 }
[465]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 }
[3086]43 else if (analysis_type==SlopecomputeAnalysisEnum()){
[465]44 numdofs=1;
45 }
46 else if (analysis_type==ThermalAnalysisEnum()){
47 numdofs=1;
48 }
[496]49 else if (analysis_type==MeltingAnalysisEnum()){
50 numdofs=1;
51 }
[586]52 else if (analysis_type==PrognosticAnalysisEnum()){
53 numdofs=1;
54 }
[3354]55 else if (analysis_type==Prognostic2AnalysisEnum()){
56 numdofs=1;
57 }
[2714]58 else if (analysis_type==BalancedthicknessAnalysisEnum()){
59 numdofs=1;
60 }
[2722]61 else if (analysis_type==BalancedvelocitiesAnalysisEnum()){
62 numdofs=1;
63 }
[3332]64 else ISSMERROR(exprintf("%s%i%s"," analysis type: ",analysis_type," not implemented yet!"));
[465]65
66 /*Assign output pointers:*/
67 *pnumdofs=numdofs;;
68
69 return 1;
70}
Note: See TracBrowser for help on using the repository browser.