Ice Sheet System Model  4.18
Code documentation
InputUpdateFromVectorx.cpp
Go to the documentation of this file.
1 
6 #include "../../shared/shared.h"
7 #include "../../toolkits/toolkits.h"
8 
9 void InputUpdateFromVectorx(FemModel* femmodel,Vector<IssmDouble>* vector, int name, int type){
10 
11  if(type==VertexPIdEnum){
12  IssmDouble* serial_vector=NULL;
13  femmodel->GetLocalVectorWithClonesVertices(&serial_vector,vector);
14  InputUpdateFromVectorx(femmodel,serial_vector,name,VertexLIdEnum);
15  xDelete<IssmDouble>(serial_vector);
16  }
17  else{
18  IssmDouble* serial_vector=vector->ToMPISerial();
19  InputUpdateFromVectorx(femmodel,serial_vector,name,type);
20  xDelete<IssmDouble>(serial_vector);
21  }
22 }
23 
24 void InputUpdateFromVectorx(FemModel* femmodel,IssmDouble* vector, int name, int type){
25 
26  /*Update elements, nodes, loads and materials from inputs: */
27  for(int i=0;i<femmodel->elements->Size();i++){
28  Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
29  element->InputUpdateFromVector(vector,name,type);
30  }
31 }
DataSet::Size
int Size()
Definition: DataSet.cpp:399
InputUpdateFromVectorx.h
header file for updating datasets from inputs
IssmDouble
double IssmDouble
Definition: types.h:37
VertexLIdEnum
@ VertexLIdEnum
Definition: EnumDefinitions.h:1323
FemModel::GetLocalVectorWithClonesVertices
void GetLocalVectorWithClonesVertices(IssmDouble **plocal_vector, Vector< IssmDouble > *vector)
Definition: FemModel.cpp:1342
Element
Definition: Element.h:41
InputUpdateFromVectorx
void InputUpdateFromVectorx(FemModel *femmodel, Vector< IssmDouble > *vector, int name, int type)
Definition: InputUpdateFromVectorx.cpp:9
Element::InputUpdateFromVector
virtual void InputUpdateFromVector(IssmDouble *vector, int name, int type)=0
FemModel::elements
Elements * elements
Definition: FemModel.h:44
FemModel
Definition: FemModel.h:31
VertexPIdEnum
@ VertexPIdEnum
Definition: EnumDefinitions.h:1324
DataSet::GetObjectByOffset
Object * GetObjectByOffset(int offset)
Definition: DataSet.cpp:334
Vector::ToMPISerial
doubletype * ToMPISerial(void)
Definition: Vector.h:277
Vector< IssmDouble >
femmodel
FemModel * femmodel
Definition: esmfbinders.cpp:16