Changeset 8651


Ignore:
Timestamp:
06/16/11 15:51:23 (14 years ago)
Author:
Mathieu Morlighem
Message:

Added regularization for balance thickness

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Elements/Tria.cpp

    r8649 r8651  
    16341634                thickness_input->GetParameterDerivativeValue(&dH[0],&xyz_list[0][0],gauss);
    16351635                thicknessobs_input->GetParameterValue(&thicknessobs, gauss);
    1636                 weights_input->GetParameterValue(&weight, gauss,0);
    16371636
    16381637                /*Loop over all requested responses*/
     
    16401639
    16411640                        case ThicknessAbsMisfitEnum:
     1641                                weights_input->GetParameterValue(&weight, gauss,resp);
    16421642                                for(i=0;i<numdof;i++) pe->values[i]+=(thicknessobs-thickness)*weight*Jdet*gauss->weight*l1l2l3[i];
    1643                                 /*Regularization of the constraint: 2000000 79 N*/
    1644                                 //for(i=0;i<numdof;i++) pe->values[i]+= - 1*100000*dH[0]*dbasis[0][i]*Jdet*gauss->weight;
    1645                                 //for(i=0;i<numdof;i++) pe->values[i]+= - 1*100000*dH[1]*dbasis[1][i]*Jdet*gauss->weight;
     1643                                break;
     1644                        case ThicknessAbsGradientEnum:
     1645                                weights_input->GetParameterValue(&weight, gauss,resp);
     1646                                for(i=0;i<numdof;i++) pe->values[i]+= - weight*dH[0]*dbasis[0][i]*Jdet*gauss->weight;
     1647                                for(i=0;i<numdof;i++) pe->values[i]+= - weight*dH[1]*dbasis[1][i]*Jdet*gauss->weight;
    16461648                                break;
    16471649                        default:
     
    29182920
    29192921        for(resp=0;resp<num_responses;resp++) switch(responses[resp]){
     2922                //FIXME: the control type should be checked somewhere (with respect to what variable are we taking the gradient!)
    29202923
    29212924                case ThicknessAbsMisfitEnum:
     2925                case ThicknessAbsGradientEnum:
    29222926                case SurfaceAbsVelMisfitEnum:
    29232927                case SurfaceRelVelMisfitEnum:
     
    53495353
    53505354                /*Tikhonov regularization: J = 1/2 ((dp/dx)^2 + (dp/dy)^2) */
    5351                 //Jelem+=weight*1/2*(pow(dp[0],2.)+pow(dp[1],2.))*Jdet*gauss->weight;
     5355                Jelem+=weight*1/2*(pow(dp[0],2.)+pow(dp[1],2.))*Jdet*gauss->weight;
    53525356        }
    53535357
     
    53975401                /*compute ThicknessAbsMisfit*/
    53985402                Jelem+=0.5*pow(thickness-thicknessobs,2.0)*weight*Jdet*gauss->weight;
    5399                 //Jelem+=0.5*100000*(pow(dH[0],2.)+pow(dH[1],2.))*Jdet*gauss->weight;
    54005403        }
    54015404
Note: See TracChangeset for help on using the changeset viewer.