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

Last change on this file since 11695 was 11695, checked in by Eric.Larour, 13 years ago

Completed separation of Petsc from ISSM. Matrix and Vector
are now the vehicles for Mat and Vec objects when running with
Petsc, or double* when running with a custom made type of matrix (still
to be finished).

File size: 3.1 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 "../../include/include.h"
8#include "../../toolkits/toolkits.h"
9#include "../../EnumDefinitions/EnumDefinitions.h"
10
11void InputUpdateFromVectorx( Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,Vector* vector, int name, int type){
12
13 double* serial_vector=NULL;
14
15 serial_vector=vector->ToMPISerial();
16
17 InputUpdateFromVectorx( elements,nodes, vertices, loads, materials, parameters,serial_vector,name, type);
18
19 /*Free ressources:*/
20 xfree((void**)&serial_vector);
21}
22
23
24void InputUpdateFromVectorx( Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,double* vector, int name, int type){
25
26 int i;
27
28 /*Update elements, nodes, loads and materials from inputs: */
29 for(i=0;i<elements->Size();i++){
30 Element* element=(Element*)elements->GetObjectByOffset(i);
31 element->InputUpdateFromVector(vector,name,type);
32 }
33 for(i=0;i<nodes->Size();i++){
34 Node* node=(Node*)nodes->GetObjectByOffset(i);
35 node->InputUpdateFromVector(vector,name,type);
36 }
37 for(i=0;i<loads->Size();i++){
38 Load* load=(Load*)loads->GetObjectByOffset(i);
39 load->InputUpdateFromVector(vector,name,type);
40 }
41 for(i=0;i<materials->Size();i++){
42 Material* material=(Material*)materials->GetObjectByOffset(i);
43 material->InputUpdateFromVector(vector,name,type);
44 }
45}
46
47void InputUpdateFromVectorx( Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,int* vector, int name, int type){
48
49 int i;
50
51 /*Update elements, nodes, loads and materials from inputs: */
52 for(i=0;i<elements->Size();i++){
53 Element* element=(Element*)elements->GetObjectByOffset(i);
54 element->InputUpdateFromVector(vector,name,type);
55 }
56 for(i=0;i<nodes->Size();i++){
57 Node* node=(Node*)nodes->GetObjectByOffset(i);
58 node->InputUpdateFromVector(vector,name,type);
59 }
60 for(i=0;i<loads->Size();i++){
61 Load* load=(Load*)loads->GetObjectByOffset(i);
62 load->InputUpdateFromVector(vector,name,type);
63 }
64 for(i=0;i<materials->Size();i++){
65 Material* material=(Material*)materials->GetObjectByOffset(i);
66 material->InputUpdateFromVector(vector,name,type);
67 }
68}
69
70void InputUpdateFromVectorx( Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,bool* vector, int name, int type){
71
72 int i;
73
74 /*Update elements, nodes, loads and materials from inputs: */
75 for(i=0;i<elements->Size();i++){
76 Element* element=(Element*)elements->GetObjectByOffset(i);
77 element->InputUpdateFromVector(vector,name,type);
78 }
79 for(i=0;i<nodes->Size();i++){
80 Node* node=(Node*)nodes->GetObjectByOffset(i);
81 node->InputUpdateFromVector(vector,name,type);
82 }
83 for(i=0;i<loads->Size();i++){
84 Load* load=(Load*)loads->GetObjectByOffset(i);
85 load->InputUpdateFromVector(vector,name,type);
86 }
87 for(i=0;i<materials->Size();i++){
88 Material* material=(Material*)materials->GetObjectByOffset(i);
89 material->InputUpdateFromVector(vector,name,type);
90 }
91}
Note: See TracBrowser for help on using the repository browser.