Changeset 22827
- Timestamp:
- 06/05/18 09:53:08 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/cores/controlm1qn3_core.cpp
r22445 r22827 88 88 G = xNew<double>(n); 89 89 90 for(int i=0;i<intn;i++)_printf_(X[i]<<"\n"); 90 91 /*Scale control for M1QN3*/ 91 for(int i=0;i<numberofvertices;i++){ 92 for(int c=0;c<num_controls;c++){ 93 int index = num_controls*i+c; 92 for(int c=0;c<num_controls;c++){ 93 for(int i=0;i<numberofvertices;i++){ 94 int index = numberofvertices*c+i; 95 _printf_("Before "<<X[index]<<"\n"); 94 96 X[index] = X[index]/scaling_factors[c]; 97 _printf_("After "<<X[index]<<"\n"); 95 98 } 96 99 } … … 144 147 GetVectorFromControlInputsx(&XL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,"lowerbound"); 145 148 GetVectorFromControlInputsx(&XU,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,"upperbound"); 146 for(int i=0;i<numberofvertices;i++){147 for(int c=0;c<num_controls;c++){148 int index = num _controls*i+c;149 for(int c=0;c<num_controls;c++){ 150 for(int i=0;i<numberofvertices;i++){ 151 int index = numberofvertices*c+i; 149 152 X[index] = X[index]*scaling_factors[c]; 150 153 if(X[index]>XU[index]) X[index]=XU[index]; … … 200 203 GetVectorFromControlInputsx(&XL,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,"lowerbound"); 201 204 GetVectorFromControlInputsx(&XU,femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,"upperbound"); 202 for(int i=0;i<numberofvertices;i++){203 for(int c=0;c<num_controls;c++){204 int index = num _controls*i+c;205 for(int c=0;c<num_controls;c++){ 206 for(int i=0;i<numberofvertices;i++){ 207 int index = numberofvertices*c+i; 205 208 X[index] = X[index]*scaling_factors[c]; 206 209 if(X[index]>XU[index]) X[index]=XU[index]; … … 256 259 /*Constrain Gradient*/ 257 260 IssmDouble Gnorm = 0.; 258 for(int i=0;i<numberofvertices;i++){259 for(int c=0;c<num_controls;c++){260 int index = num _controls*i+c;261 for(int c=0;c<num_controls;c++){ 262 for(int i=0;i<numberofvertices;i++){ 263 int index = numberofvertices*c+i; 261 264 if(X[index]>=XU[index]) G[index]=0.; 262 265 if(X[index]<=XL[index]) G[index]=0.;
Note:
See TracChangeset
for help on using the changeset viewer.