source: issm/trunk-jpl/src/c/modules/InputUpdateFromVectorx/InputUpdateFromVectorx.cpp@ 23638

Last change on this file since 23638 was 23638, checked in by Mathieu Morlighem, 6 years ago

NEW: improved scalability of InputUpdateFromVector if on PIDs

File size: 1.0 KB
Line 
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
9void 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
24void 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}
Note: See TracBrowser for help on using the repository browser.