Ice Sheet System Model  4.18
Code documentation
GetSolutionFromInputsx.cpp
Go to the documentation of this file.
1 
6 #include "../../shared/shared.h"
7 #include "../../toolkits/toolkits.h"
8 
10 
11  if(VerboseModule()) _printf0_(" Get solution from inputs\n");
12 
13  /*retrieve parameters: */
14  int analysisenum;
16 
17  /*Get size of vector: */
18  int gsize = femmodel->nodes->NumberOfDofs(GsetEnum);
19  int gsize_local = femmodel->nodes->NumberOfDofsLocal(GsetEnum);
20  if(gsize==0) _error_("Allocating a Vec of size 0 as gsize=0 ");
21 
22  /*Initialize solution: */
23  Vector<IssmDouble>* solution=new Vector<IssmDouble>(gsize_local,gsize);
24 
25  /*Go through elements and plug solution: */
26  Analysis* analysis = EnumToAnalysis(analysisenum);
27  for(int i=0;i<femmodel->elements->Size();i++){
28  Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
29  analysis->GetSolutionFromInputs(solution,element);
30  }
31  delete analysis;
32 
33  /*Assemble vector: */
34  solution->Assemble();
35 
36  /*Assign output pointers:*/
37  *psolution=solution;
38 }
DataSet::Size
int Size()
Definition: DataSet.cpp:399
_printf0_
#define _printf0_(StreamArgs)
Definition: Print.h:29
FemModel::parameters
Parameters * parameters
Definition: FemModel.h:46
GetSolutionFromInputsx.h
header file for updating datasets from inputs
VerboseModule
bool VerboseModule(void)
Definition: Verbosity.cpp:23
Element
Definition: Element.h:41
Nodes::NumberOfDofsLocal
int NumberOfDofsLocal(int setenum)
Definition: Nodes.cpp:326
FemModel::nodes
Nodes * nodes
Definition: FemModel.h:56
GsetEnum
@ GsetEnum
Definition: EnumDefinitions.h:1093
FemModel::elements
Elements * elements
Definition: FemModel.h:44
Vector::Assemble
void Assemble(void)
Definition: Vector.h:142
EnumToAnalysis
Analysis * EnumToAnalysis(int analysis_enum)
Definition: EnumToAnalysis.cpp:13
FemModel
Definition: FemModel.h:31
Analysis::GetSolutionFromInputs
virtual void GetSolutionFromInputs(Vector< IssmDouble > *solution, Element *element)=0
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
GetSolutionFromInputsx
void GetSolutionFromInputsx(Vector< IssmDouble > **psolution, FemModel *femmodel)
Definition: GetSolutionFromInputsx.cpp:9
DataSet::GetObjectByOffset
Object * GetObjectByOffset(int offset)
Definition: DataSet.cpp:334
Parameters::FindParam
void FindParam(bool *pinteger, int enum_type)
Definition: Parameters.cpp:262
AnalysisTypeEnum
@ AnalysisTypeEnum
Definition: EnumDefinitions.h:36
Nodes::NumberOfDofs
int NumberOfDofs(int setenum)
Definition: Nodes.cpp:314
Vector< IssmDouble >
Analysis
Definition: Analysis.h:30
femmodel
FemModel * femmodel
Definition: esmfbinders.cpp:16