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

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

solution_type is now a SolutionEnum (not an AnalysisEnum) and some variables are now const for a better initialization

File size: 1.4 KB
Line 
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
9int DistributeNumDofs(int *pnumdofs,int analysis_type){
10
11 int numdofs=2; //default numdofs
12 int i;
13
14 /*ok, according to analysis type: */
15 if (analysis_type==DiagnosticHorizAnalysisEnum){
16 numdofs=2;
17 }
18 else if (analysis_type==DiagnosticVertAnalysisEnum){
19 numdofs=1;
20 }
21 else if (analysis_type==DiagnosticStokesAnalysisEnum){
22 numdofs=4;
23 }
24 else if (analysis_type==DiagnosticHutterAnalysisEnum){
25 numdofs=2;
26 }
27 else if (analysis_type==BedSlopeAnalysisEnum || analysis_type==SurfaceSlopeAnalysisEnum){
28 numdofs=1;
29 }
30 else if (analysis_type==ThermalAnalysisEnum){
31 numdofs=1;
32 }
33 else if (analysis_type==MeltingAnalysisEnum){
34 numdofs=1;
35 }
36 else if (analysis_type==PrognosticAnalysisEnum){
37 numdofs=1;
38 }
39 else if (analysis_type==Prognostic2AnalysisEnum){
40 numdofs=1;
41 }
42 else if (analysis_type==BalancedthicknessAnalysisEnum){
43 numdofs=1;
44 }
45 else if (analysis_type==Balancedthickness2AnalysisEnum){
46 numdofs=1;
47 }
48 else if (analysis_type==BalancedvelocitiesAnalysisEnum){
49 numdofs=1;
50 }
51 else ISSMERROR("analysis type: %i (%s) not implemented yet",analysis_type,EnumAsString(analysis_type));
52
53 /*Assign output pointers:*/
54 *pnumdofs=numdofs;;
55
56 return 1;
57}
Note: See TracBrowser for help on using the repository browser.