Changeset 26038


Ignore:
Timestamp:
03/03/21 13:01:25 (4 years ago)
Author:
Mathieu Morlighem
Message:

BUG: fixing inversion of drag SSA elementwise

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/AdjointHorizAnalysis.cpp

    r25854 r26038  
    20322032
    20332033                /*Build gradient vector (actually -dJ/dD): */
    2034                 for(int i=0;i<numvertices;i++){
    2035                         ge[i]+=-2.*drag*dalpha2dk*((lambda*vx+mu*vy))*Jdet*gauss->weight*basis[i];
    2036                         _assert_(!xIsNan<IssmDouble>(ge[i]));
    2037                 }
    2038         }
    2039         gradient->SetValues(numvertices,vertexpidlist,ge,ADD_VAL);
     2034                if(control_interp==P1Enum){
     2035                        for(int i=0;i<numvertices;i++){
     2036                                ge[i]+=-2.*drag*dalpha2dk*((lambda*vx+mu*vy))*Jdet*gauss->weight*basis[i];
     2037                                _assert_(!xIsNan<IssmDouble>(ge[i]));
     2038                        }
     2039                }
     2040                else if(control_interp==P0Enum){
     2041                        ge[0]+=-2.*drag*dalpha2dk*((lambda*vx+mu*vy))*Jdet*gauss->weight;
     2042                        _assert_(!xIsNan<IssmDouble>(ge[0]));
     2043                }
     2044                else{
     2045                        _error_("not supported");
     2046                }
     2047        }
     2048        if(control_interp==P1Enum){
     2049                gradient->SetValues(numvertices,vertexpidlist,ge,ADD_VAL);
     2050        }
     2051        else if(control_interp==P0Enum){
     2052                gradient->SetValue(vertexpidlist[0],ge[0],ADD_VAL);
     2053        }
     2054        else{
     2055                _error_("not supported");
     2056        }
    20402057
    20412058        /*Clean up and return*/
Note: See TracChangeset for help on using the changeset viewer.