Changeset 11310 for issm/trunk-jpl/src/c/modules
- Timestamp:
- 02/02/12 13:59:41 (13 years ago)
- Location:
- issm/trunk-jpl/src/c/modules/Gradjx
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/Gradjx/Gradjx.cpp
r9719 r11310 10 10 #include "../../EnumDefinitions/EnumDefinitions.h" 11 11 12 void Gradjx( Vec* pgradient, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,int control_type){12 void Gradjx( Vec* pgradient,double* pnorm_grad, Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters,int control_index){ 13 13 14 int i; 15 int dim; 16 int numberofvertices; 17 Vec gradient = NULL; 14 int i; 15 int numberofvertices; 16 double norm_grad; 17 int *control_type = NULL; 18 Vec gradient = NULL; 18 19 19 20 /*retrieve some parameters: */ 20 parameters->FindParam(& dim,MeshDimensionEnum);21 parameters->FindParam(&control_type,NULL,InversionControlParametersEnum); 21 22 numberofvertices=vertices->NumberOfVertices(); 22 23 … … 27 28 for (i=0;i<elements->Size();i++){ 28 29 Element* element=(Element*)elements->GetObjectByOffset(i); 29 element->Gradj(gradient,control_type );30 element->Gradj(gradient,control_type[control_index]); 30 31 } 31 32 … … 34 35 VecAssemblyEnd(gradient); 35 36 36 /*Assign output pointers: */ 37 /*Clean up and return*/ 38 xfree((void**)&control_type); 39 if(pnorm_grad){ 40 VecNorm(gradient,NORM_INFINITY,&norm_grad); 41 *pnorm_grad=norm_grad; 42 } 37 43 *pgradient=gradient; 38 44 } -
issm/trunk-jpl/src/c/modules/Gradjx/Gradjx.h
r4236 r11310 10 10 11 11 /* local prototypes: */ 12 void Gradjx(Vec* pgrad_g, 12 void Gradjx(Vec* pgrad_g,double* pgrad_norm,Elements* elements,Nodes* nodes, Vertices* vertices, Loads* loads, Materials* materials, Parameters* parameters, int control_type); 13 13 14 14 #endif /* _GRADJX_H */
Note:
See TracChangeset
for help on using the changeset viewer.