Ice Sheet System Model  4.18
Code documentation
InputUpdateFromConstantx.cpp
Go to the documentation of this file.
1 
6 #include "../../shared/shared.h"
7 #include "../../toolkits/toolkits.h"
8 #include "../../classes/Inputs2/Inputs2.h"
9 
10 void InputUpdateFromConstantx(FemModel* femmodel,bool constant, int name){
11  if(VerboseModule()) _printf0_(" Input updates from constant\n");
12 
13  /*Elements and loads drive the update: */
14  for(int i=0;i<femmodel->elements->Size();i++){
15  Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
16  element->InputUpdateFromConstant(constant,name);
17  }
18 }
19 void InputUpdateFromConstantx(FemModel* femmodel,int constant, int name){
20 
21  if(VerboseModule()) _printf0_(" Input updates from constant\n");
22 
23  /*Elements and loads drive the update: */
24  for(int i=0;i<femmodel->elements->Size();i++){
25  Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
26  element->InputUpdateFromConstant(constant,name);
27  }
28 }
30 
31  if(VerboseModule()) _printf0_(" Input updates from constant\n");
32 
33  /*Elements and loads drive the update: */
34  if(IsInputEnum(name)){
35  for(int i=0;i<femmodel->elements->Size();i++){
36  Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
37  element->InputUpdateFromConstant(constant,name);
38  }
39  }
40  else if(IsParamEnum(name)){
41  if(femmodel->parameters->Exist(name)){
42  femmodel->parameters->SetParam(constant,name);
43  }
44  else{
45  _error_("Param not set");
46  }
47  }
48  else{
49  _error_("not supported");
50  }
51 }
52 void InputUpdateFromConstantx(Inputs2* inputs2,Elements* elements,IssmDouble constant, int name){
53 
54  if(VerboseModule()) _printf0_(" Input updates from constant\n");
55 
56  /*Elements and loads drive the update: */
57  for(int i=0;i<elements->Size();i++){
58  Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
59  element->SetElementInput(inputs2,name,constant);
60  }
61 }
62 void InputUpdateFromConstantx(Inputs2* inputs2,Elements* elements,bool constant, int name){
63 
64  if(VerboseModule()) _printf0_(" Input updates from constant\n");
65 
66  /*Elements and loads drive the update: */
67  for(int i=0;i<elements->Size();i++){
68  Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
69  element->SetBoolInput(inputs2,name,constant);
70  }
71 }
72 #ifdef _HAVE_AD_
73 void InputUpdateFromConstantx(Inputs2* inputs2,Elements* elements,IssmPDouble constant, int name){
74 
75  if(VerboseModule()) _printf0_(" Input updates from constant\n");
76 
77  /*Convert to active variable!*/
78  IssmDouble constant2 = constant;
79 
80  /*Elements and loads drive the update: */
81  for(int i=0;i<elements->Size();i++){
82  Element* element=xDynamicCast<Element*>(elements->GetObjectByOffset(i));
83  element->SetElementInput(inputs2,name,constant2);
84  }
85 }
86 #endif
DataSet::Size
int Size()
Definition: DataSet.cpp:399
IssmDouble
double IssmDouble
Definition: types.h:37
_printf0_
#define _printf0_(StreamArgs)
Definition: Print.h:29
Element::SetBoolInput
void SetBoolInput(Inputs2 *inputs2, int enum_in, bool value)
Definition: Element.cpp:3355
Parameters::Exist
bool Exist(int enum_type)
Definition: Parameters.cpp:254
FemModel::parameters
Parameters * parameters
Definition: FemModel.h:46
Elements
Declaration of Elements class.
Definition: Elements.h:17
InputUpdateFromConstantx.h
header file for updating datasets from inputs
VerboseModule
bool VerboseModule(void)
Definition: Verbosity.cpp:23
Element
Definition: Element.h:41
Parameters::SetParam
void SetParam(bool boolean, int enum_type)
Definition: Parameters.cpp:441
IsParamEnum
bool IsParamEnum(int enum_in)
Definition: EnumToStringx.cpp:1373
Inputs2
Declaration of Inputs class.
Definition: Inputs2.h:23
InputUpdateFromConstantx
void InputUpdateFromConstantx(FemModel *femmodel, bool constant, int name)
Definition: InputUpdateFromConstantx.cpp:10
IsInputEnum
bool IsInputEnum(int enum_in)
Definition: EnumToStringx.cpp:1368
FemModel::elements
Elements * elements
Definition: FemModel.h:44
FemModel
Definition: FemModel.h:31
Element::SetElementInput
virtual void SetElementInput(int enum_in, IssmDouble values)
Definition: Element.h:333
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
DataSet::GetObjectByOffset
Object * GetObjectByOffset(int offset)
Definition: DataSet.cpp:334
Element::InputUpdateFromConstant
void InputUpdateFromConstant(IssmDouble constant, int name)
Definition: Element.cpp:1963
IssmPDouble
IssmDouble IssmPDouble
Definition: types.h:38
femmodel
FemModel * femmodel
Definition: esmfbinders.cpp:16