Ignore:
Timestamp:
06/16/11 14:13:46 (14 years ago)
Author:
Mathieu Morlighem
Message:

Deleted noisedmp, use DragCoefficientAbsGradientEnum as a cost function instead

File:
1 edited

Legend:

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

    r8643 r8646  
    38763876/*FUNCTION Penta::Gradj {{{1*/
    38773877void  Penta::Gradj(Vec gradient,int control_type){
     3878        /*dJ/dalpha = ∂L/∂alpha = ∂J/∂alpha + ∂/∂alpha(KU-F)*/
    38783879
    38793880        int              i,approximation;
     
    38833884        if(IsOnWater())return;
    38843885
     3886        /*First deal with ∂/∂alpha(KU-F)*/
    38853887        switch(control_type){
    38863888
     
    39623964                default:
    39633965                        _error_("control type %s not supported yet: ",EnumToStringx(control_type));
     3966        }
     3967
     3968        /*Now deal with ∂J/∂alpha*/
     3969        int        *responses = NULL;
     3970        int         num_responses,resp;
     3971        this->parameters->FindParam(&num_responses,NumResponsesEnum);
     3972        this->parameters->FindParam(&responses,NULL,NULL,StepResponsesEnum);
     3973
     3974        for(resp=0;resp<num_responses;resp++) switch(responses[resp]){
     3975
     3976                case ThicknessAbsMisfitEnum:
     3977                case SurfaceAbsVelMisfitEnum:
     3978                case SurfaceRelVelMisfitEnum:
     3979                case SurfaceLogVelMisfitEnum:
     3980                case SurfaceLogVxVyMisfitEnum:
     3981                case SurfaceAverageVelMisfitEnum:
     3982                        /*Nothing, J does not depends on the parameter being inverted for*/
     3983                        break;
     3984                case DragCoefficientAbsGradientEnum:
     3985                        if (!IsOnBed()) return;
     3986                        tria=(Tria*)SpawnTria(0,1,2); //nodes 0, 1 and 2 make the new tria.
     3987                        tria->GradjDragGradient(gradient,resp);
     3988                        delete tria->matice; delete tria;
     3989                        break;
     3990                default:
     3991                        _error_("response %s not supported yet",EnumToStringx(responses[resp]));
    39643992        }
    39653993}
     
    50465074                /*Create inputs and add to DataSetInput*/
    50475075                DatasetInput* datasetinput=new DatasetInput(WeightsEnum);
    5048                 for(j=0;j<iomodel->num_cm_responses;j++){
    5049                         for(i=0;i<6;i++)nodeinputs[i]=iomodel->weights[penta_vertex_ids[i]-1];
     5076                for(i=0;i<iomodel->num_cm_responses;i++){
     5077                        for(j=0;j<6;j++)nodeinputs[j]=iomodel->weights[(penta_vertex_ids[j]-1)*iomodel->num_cm_responses+i];
    50505078                        datasetinput->inputs->AddObject(new PentaVertexInput(WeightsEnum,nodeinputs));
    50515079                }
Note: See TracChangeset for help on using the changeset viewer.