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
RevLine 
[465]1/*!\file: DistributeNumDofs.cpp
2 * \brief: figure out the maximum number of dofs per grid.
3 */
4
[3775]5#include "../../include/include.h"
[465]6#include "../../EnumDefinitions/EnumDefinitions.h"
7#include "../shared.h"
8
[4021]9int DistributeNumDofs(int *pnumdofs,int analysis_type){
[465]10
11 int numdofs=2; //default numdofs
12 int i;
13
14 /*ok, according to analysis type: */
[4021]15 if (analysis_type==DiagnosticHorizAnalysisEnum){
16 numdofs=2;
[465]17 }
[4021]18 else if (analysis_type==DiagnosticVertAnalysisEnum){
19 numdofs=1;
[465]20 }
[4021]21 else if (analysis_type==DiagnosticStokesAnalysisEnum){
22 numdofs=4;
23 }
24 else if (analysis_type==DiagnosticHutterAnalysisEnum){
25 numdofs=2;
26 }
[4285]27 else if (analysis_type==BedSlopeAnalysisEnum || analysis_type==SurfaceSlopeAnalysisEnum){
[465]28 numdofs=1;
29 }
[3567]30 else if (analysis_type==ThermalAnalysisEnum){
[465]31 numdofs=1;
32 }
[3567]33 else if (analysis_type==MeltingAnalysisEnum){
[496]34 numdofs=1;
35 }
[3567]36 else if (analysis_type==PrognosticAnalysisEnum){
[586]37 numdofs=1;
38 }
[3567]39 else if (analysis_type==Prognostic2AnalysisEnum){
[3354]40 numdofs=1;
41 }
[3567]42 else if (analysis_type==BalancedthicknessAnalysisEnum){
[2714]43 numdofs=1;
44 }
[3588]45 else if (analysis_type==Balancedthickness2AnalysisEnum){
46 numdofs=1;
47 }
[3567]48 else if (analysis_type==BalancedvelocitiesAnalysisEnum){
[2722]49 numdofs=1;
50 }
[4295]51 else ISSMERROR("analysis type: %i (%s) not implemented yet",analysis_type,EnumAsString(analysis_type));
[465]52
53 /*Assign output pointers:*/
54 *pnumdofs=numdofs;;
55
56 return 1;
57}
Note: See TracBrowser for help on using the repository browser.