1 | /*!\file InputUpdateFromVectorx
|
---|
2 | * \brief: update datasets using parameter inputs
|
---|
3 | */
|
---|
4 |
|
---|
5 | #include "./InputUpdateFromVectorx.h"
|
---|
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 | }
|
---|