Ice Sheet System Model  4.18
Code documentation
InputUpdateFromSolutionx.cpp
Go to the documentation of this file.
1 
6 #include "../../shared/shared.h"
7 #include "../../toolkits/toolkits.h"
8 
10 
11  /*GetAnalysis*/
12  int analysisenum;
14  Analysis* analysis = EnumToAnalysis(analysisenum);
15 
16  /*Display message*/
17  if(VerboseModule()) _printf0_(" Updating inputs from solution for " << EnumToStringx(analysisenum) << "\n");
18 
19  /*Get local vector with both masters and slaves:*/
20  IssmDouble *local_ug = NULL;
21  femmodel->GetLocalVectorWithClonesGset(&local_ug,solution);
22 
23  /*Now update inputs (analysis specific)*/
24  for(int i=0;i<femmodel->elements->Size();i++){
25  Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
26  analysis->InputUpdateFromSolution(local_ug,element);
27  }
28 
29  /*cleanup and return*/
30  delete analysis;
31  xDelete<IssmDouble>(local_ug);
32 }
DataSet::Size
int Size()
Definition: DataSet.cpp:399
IssmDouble
double IssmDouble
Definition: types.h:37
_printf0_
#define _printf0_(StreamArgs)
Definition: Print.h:29
FemModel::GetLocalVectorWithClonesGset
void GetLocalVectorWithClonesGset(IssmDouble **plocal_ug, Vector< IssmDouble > *ug)
Definition: FemModel.cpp:1337
FemModel::parameters
Parameters * parameters
Definition: FemModel.h:46
VerboseModule
bool VerboseModule(void)
Definition: Verbosity.cpp:23
Element
Definition: Element.h:41
InputUpdateFromSolutionx.h
header file for updating datasets from inputs
EnumToStringx
const char * EnumToStringx(int enum_in)
Definition: EnumToStringx.cpp:15
Analysis::InputUpdateFromSolution
virtual void InputUpdateFromSolution(IssmDouble *solution, Element *element)=0
FemModel::elements
Elements * elements
Definition: FemModel.h:44
EnumToAnalysis
Analysis * EnumToAnalysis(int analysis_enum)
Definition: EnumToAnalysis.cpp:13
FemModel
Definition: FemModel.h:31
InputUpdateFromSolutionx
void InputUpdateFromSolutionx(FemModel *femmodel, Vector< IssmDouble > *solution)
Definition: InputUpdateFromSolutionx.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
Vector< IssmDouble >
Analysis
Definition: Analysis.h:30
femmodel
FemModel * femmodel
Definition: esmfbinders.cpp:16