Changeset 11318
- Timestamp:
- 02/03/12 14:13:19 (13 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/GetVectorFromControlInputsx/GetVectorFromControlInputsx.cpp
r11317 r11318 9 9 #include "../../EnumDefinitions/EnumDefinitions.h" 10 10 11 void GetVectorFromControlInputsx(Vec* pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters ){11 void GetVectorFromControlInputsx(Vec* pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,const char* data){ 12 12 13 13 int num_controls; … … 25 25 for(int j=0;j<elements->Size();j++){ 26 26 Element* element=(Element*)elements->GetObjectByOffset(j); 27 element->GetVectorFromControlInputs(vector,control_type[i],i );27 element->GetVectorFromControlInputs(vector,control_type[i],i,data); 28 28 } 29 29 } … … 37 37 } 38 38 39 void GetVectorFromControlInputsx( double** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters ){39 void GetVectorFromControlInputsx( double** pvector, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters, const char* data){ 40 40 41 41 /*output: */ … … 45 45 Vec vec_vector=NULL; 46 46 47 GetVectorFromControlInputsx( &vec_vector, elements,nodes, vertices, loads, materials, parameters );47 GetVectorFromControlInputsx( &vec_vector, elements,nodes, vertices, loads, materials, parameters,data); 48 48 VecToMPISerial(&vector,vec_vector); 49 49 -
issm/trunk-jpl/src/c/modules/GetVectorFromControlInputsx/GetVectorFromControlInputsx.h
r11317 r11318 9 9 10 10 /* local prototypes: */ 11 void GetVectorFromControlInputsx( Vec* pvector, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads, Materials* materials, Parameters* parameters );12 void GetVectorFromControlInputsx( double** pvector, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads, Materials* materials, Parameters* parameters );11 void GetVectorFromControlInputsx( Vec* pvector, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads, Materials* materials, Parameters* parameters,const char* data="value"); 12 void GetVectorFromControlInputsx( double** pvector, Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads, Materials* materials, Parameters* parameters,const char* data="value"); 13 13 14 14 #endif /* _GETVECTORFROMCONTROLINPUTSXX_H */ -
issm/trunk-jpl/src/c/objects/Elements/Element.h
r11317 r11318 103 103 virtual void ControlInputSetGradient(double* gradient,int enum_type,int control_index)=0; 104 104 virtual void ControlInputScaleGradient(int enum_type, double scale)=0; 105 virtual void GetVectorFromControlInputs(Vec gradient,int control_enum,int control_index )=0;105 virtual void GetVectorFromControlInputs(Vec gradient,int control_enum,int control_index,const char* data)=0; 106 106 virtual void SetControlInputsFromVector(double* vector,int control_enum,int control_index)=0; 107 107 virtual void InputControlUpdate(double scalar,bool save_parameter)=0; -
issm/trunk-jpl/src/c/objects/Elements/Penta.cpp
r11317 r11318 5132 5132 /*}}}*/ 5133 5133 /*FUNCTION Penta::GetVectorFromControlInputs{{{1*/ 5134 void Penta::GetVectorFromControlInputs(Vec vector,int control_enum,int control_index ){5134 void Penta::GetVectorFromControlInputs(Vec vector,int control_enum,int control_index,const char* data){ 5135 5135 5136 5136 int doflist1[NUMVERTICES]; … … 5146 5146 if(!input) _error_("Input %s not found in element",EnumToStringx(control_enum)); 5147 5147 5148 /*We found the enum. Use its values to fill into the vector, using the vertices ids: */ 5149 input->GetVectorFromInputs(vector,&doflist1[0]); 5148 /*Check that it is a ControlInput*/ 5149 if (input->ObjectEnum()!=ControlInputEnum){ 5150 _error_("input %s is not a ControlInput",EnumToStringx(control_enum)); 5151 } 5152 5153 ((ControlInput*)input)->GetVectorFromInputs(vector,&doflist1[0],data); 5150 5154 } 5151 5155 /*}}}*/ -
issm/trunk-jpl/src/c/objects/Elements/Penta.h
r11317 r11318 149 149 void GradjBbarPattyn(Vec gradient,int control_index); 150 150 void GradjBbarStokes(Vec gradient,int control_index); 151 void GetVectorFromControlInputs(Vec gradient,int control_enum,int control_index );151 void GetVectorFromControlInputs(Vec gradient,int control_enum,int control_index,const char* data); 152 152 void SetControlInputsFromVector(double* vector,int control_enum,int control_index); 153 153 void ControlInputGetGradient(Vec gradient,int enum_type,int control_index); -
issm/trunk-jpl/src/c/objects/Elements/Tria.cpp
r11317 r11318 4731 4731 /*}}}*/ 4732 4732 /*FUNCTION Tria::GetVectorFromControlInputs{{{1*/ 4733 void Tria::GetVectorFromControlInputs(Vec vector,int control_enum,int control_index ){4733 void Tria::GetVectorFromControlInputs(Vec vector,int control_enum,int control_index,const char* data){ 4734 4734 4735 4735 int doflist1[NUMVERTICES]; … … 4745 4745 if(!input) _error_("Input %s not found in element",EnumToStringx(control_enum)); 4746 4746 4747 /*We found the enum. Use its values to fill into the vector, using the vertices ids: */ 4748 input->GetVectorFromInputs(vector,&doflist1[0]); 4747 /*Check that it is a ControlInput*/ 4748 if (input->ObjectEnum()!=ControlInputEnum){ 4749 _error_("input %s is not a ControlInput",EnumToStringx(control_enum)); 4750 } 4751 4752 ((ControlInput*)input)->GetVectorFromInputs(vector,&doflist1[0],data); 4749 4753 } 4750 4754 /*}}}*/ -
issm/trunk-jpl/src/c/objects/Elements/Tria.h
r11317 r11318 150 150 void GradjVxBalancedthickness(Vec gradient,int control_index); 151 151 void GradjVyBalancedthickness(Vec gradient,int control_index); 152 void GetVectorFromControlInputs(Vec gradient,int control_enum,int control_index );152 void GetVectorFromControlInputs(Vec gradient,int control_enum,int control_index,const char* data); 153 153 void SetControlInputsFromVector(double* vector,int control_enum,int control_index); 154 154 void ControlInputGetGradient(Vec gradient,int enum_type,int control_index); -
issm/trunk-jpl/src/c/objects/Inputs/ControlInput.cpp
r11317 r11318 406 406 return gradient->SpawnResult(step,time); 407 407 }/*}}}*/ 408 /*FUNCTION ControlInput::Get InputValue(bool* pvalue){{{1*/408 /*FUNCTION ControlInput::GetVectorFromInputs(Vec vector,int* doflist){{{1*/ 409 409 void ControlInput::GetVectorFromInputs(Vec vector,int* doflist){ 410 410 values->GetVectorFromInputs(vector,doflist); 411 }/*}}}*/ 412 /*FUNCTION ControlInput::GetVectorFromInputs(Vec vector,int* doflist,const char* data){{{1*/ 413 void ControlInput::GetVectorFromInputs(Vec vector,int* doflist,const char* data){ 414 if(strcmp(data,"value")==0){ 415 _assert_(values); 416 values->GetVectorFromInputs(vector,doflist); 417 } 418 else if (strcmp(data,"lowerbound")==0){ 419 _assert_(minvalues); 420 minvalues->GetVectorFromInputs(vector,doflist); 421 } 422 else if (strcmp(data,"upperbound")==0){ 423 _assert_(maxvalues); 424 maxvalues->GetVectorFromInputs(vector,doflist); 425 } 426 else if (strcmp(data,"gradient")==0){ 427 _assert_(gradient); 428 gradient->GetVectorFromInputs(vector,doflist); 429 } 430 else{ 431 _error_("Data %s not supported yet",data); 432 } 411 433 }/*}}}*/ 412 434 /*FUNCTION ControlInput::GetInputAverage(double* pvalue){{{1*/ -
issm/trunk-jpl/src/c/objects/Inputs/ControlInput.h
r11317 r11318 87 87 void Extrude(void); 88 88 void VerticallyIntegrate(Input* thickness_input); 89 void GetVectorFromInputs(Vec vector,int* doflist,const char* data); 89 90 void GetVectorFromInputs(Vec vector,int* doflist); 90 91 void GetValuesPtr(double** pvalues,int* pnum_values){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/solutions/controltao_core.cpp
r11317 r11318 58 58 XL=NewVec(numberofvertices); VecSet(XL,1.); 59 59 XU=NewVec(numberofvertices); VecSet(XU,200.); 60 //TaoSetVariableBounds(tao,XL,XU); VecFree(&XL); VecFree(&XU);61 60 62 GetVectorFromControlInputsx(&X,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters); 61 GetVectorFromControlInputsx(&X, femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,"value"); 62 GetVectorFromControlInputsx(&XL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,"lowerbound"); 63 GetVectorFromControlInputsx(&XU,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,"upperbound"); 63 64 TaoSetInitialVector(tao,X); 65 TaoSetVariableBounds(tao,XL,XU); 66 VecFree(&XL); 67 VecFree(&XU); 64 68 65 69 user.femmodel=femmodel;
Note:
See TracChangeset
for help on using the changeset viewer.