Changeset 18369
- Timestamp:
- 08/12/14 16:38:41 (11 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/analyses/AdjointBalancethickness2Analysis.cpp
r18224 r18369 100 100 hu2 = hobs*hobs*vbarobs2; 101 101 102 /*H^2 - Hobs^2*/103 NUMxH2 = 2.*dbasis[0]*dphi[0]*(dphi[0]*dphi[0] + dphi[1]*dphi[1] - hu2);104 NUMyH2 = 2.*dbasis[1]*dphi[1]*(dphi[0]*dphi[0] + dphi[1]*dphi[1] - hu2);105 DENH2 = vbarobs2*vbarobs2+1.e-14;106 107 /*Ubar-Ubar_obs*/108 NUMxUbar = (vyobsbar*dphi[0]*dphi[1] - vxobsbar*dphi[1]*dphi[1])*vbarobs*dbasis[0];109 NUMyUbar = (vyobsbar*dphi[0]*dphi[0] - vxobsbar*dphi[0]*dphi[1])*vbarobs*dbasis[1];110 DENUbar = pow(dphi[0]*dphi[0] + dphi[1]*dphi[1],3./2.)+1.e-14;111 112 102 /*Loop over all requested responses*/ 113 103 for(int resp=0;resp<num_responses;resp++){ … … 117 107 case Balancethickness2MisfitEnum: 118 108 /*J = (H^2 - Hobs^2)^2*/ 119 //for(i=0;i<numnodes;i++) pe->values[i]+=(NUMxH2+NUMyH2)/DENH2 *weight*Jdet*gauss->weight; NOT WORKING 109 for(i=0;i<numnodes;i++){ 110 111 /*H^2 - Hobs^2*/ 112 NUMxH2 = 2.*dbasis[0*numnodes+i]*dphi[0]*(dphi[0]*dphi[0] + dphi[1]*dphi[1] - hu2); 113 NUMyH2 = 2.*dbasis[1*numnodes+i]*dphi[1]*(dphi[0]*dphi[0] + dphi[1]*dphi[1] - hu2); 114 DENH2 = vbarobs2*vbarobs2+1.e-14; 115 116 /*Ubar-Ubar_obs*/ 117 NUMxUbar = (vyobsbar*dphi[0]*dphi[1] - vxobsbar*dphi[1]*dphi[1])*vbarobs*dbasis[0*numnodes+i]; 118 NUMyUbar = (vyobsbar*dphi[0]*dphi[0] - vxobsbar*dphi[0]*dphi[1])*vbarobs*dbasis[1*numnodes+i]; 119 DENUbar = pow(dphi[0]*dphi[0] + dphi[1]*dphi[1],3./2.)+1.e-14; 120 121 pe->values[i]+=(NUMxH2+NUMyH2)/DENH2 *weight*Jdet*gauss->weight; 122 } 120 123 /*J = phi^2*/ 121 //for(i=0;i<numnodes;i++) pe->values[i]+= phi*basis[i]*weight*Jdet*gauss->weight; OK 124 //for(i=0;i<numnodes;i++) pe->values[i]+= phi*basis[i]*weight*Jdet*gauss->weight; //OK 125 /*J = grad J ^2*/ 126 //for(i=0;i<numnodes;i++) pe->values[i]+= (dphi[0]*dbasis[0*numnodes+i] + dphi[1]*dbasis[1*numnodes+i])*weight*Jdet*gauss->weight; //OK 122 127 /*J = (ubar - nux*uobs)^2*/ 123 for(i=0;i<numnodes;i++) pe->values[i]+=(NUMxUbar-NUMyUbar)/DENUbar *weight*Jdet*gauss->weight;128 //for(i=0;i<numnodes;i++) pe->values[i]+=(NUMxUbar-NUMyUbar)/DENUbar *weight*Jdet*gauss->weight; 124 129 break; 125 130 default: -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r18363 r18369 1304 1304 IssmDouble J_sum; 1305 1305 1306 IssmDouble weight,thicknessobs,thickness,potential ;1306 IssmDouble weight,thicknessobs,thickness,potential,dpotential[2]; 1307 1307 IssmDouble vx,vy,vxbar,vybar,vxobs,vyobs,vxbarobs,vybarobs,nux,nuy; 1308 1308 IssmDouble Jdet; … … 1343 1343 thicknessobs_input->GetInputValue(&thicknessobs,gauss); 1344 1344 potential_input->GetInputValue(&potential,gauss); 1345 potential_input->GetInputDerivativeValue(&dpotential[0],xyz_list,gauss); 1345 1346 vxobs_input->GetInputValue(&vxobs,gauss); 1346 1347 vyobs_input->GetInputValue(&vyobs,gauss); … … 1354 1355 1355 1356 /*J = (H^2 - Hobs^2)^2*/ 1356 //J +=0.5*(thickness*thickness - thicknessobs*thicknessobs)*(thickness*thickness - thicknessobs*thicknessobs)*weight*Jdet*gauss->weight;1357 J +=0.5*(thickness*thickness - thicknessobs*thicknessobs)*(thickness*thickness - thicknessobs*thicknessobs)*weight*Jdet*gauss->weight; 1357 1358 /*J = phi^2*/ 1358 //J +=.5*potential*potential*weight*Jdet*gauss->weight; OK 1359 //J +=.5*potential*potential*weight*Jdet*gauss->weight;// OK 1360 /*J = grad phi^2*/ 1361 //J +=.5*(dpotential[0]*dpotential[0] + dpotential[1]*dpotential[1])*weight*Jdet*gauss->weight; 1359 1362 /*J = (ubar - nux*uobs)^2*/ 1360 J +=0.5*((vxbarobs - vxbar)*(vxbarobs - vxbar) + (vybarobs - vybar)*(vybarobs - vybar))*weight*Jdet*gauss->weight;1363 //J +=0.5*((vxbarobs - vxbar)*(vxbarobs - vxbar) + (vybarobs - vybar)*(vybarobs - vybar))*weight*Jdet*gauss->weight; 1361 1364 } 1362 1365
Note:
See TracChangeset
for help on using the changeset viewer.