Changeset 23507


Ignore:
Timestamp:
12/06/18 13:14:19 (6 years ago)
Author:
Mathieu Morlighem
Message:

BUG: dirichlets were not properly set

File:
1 edited

Legend:

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

    r23462 r23507  
    5252}/*}}}*/
    5353ElementMatrix* GLheightadvectionAnalysis::CreateJacobianMatrix(Element* element){/*{{{*/
    54 _error_("Not implemented");
     54        _error_("Not implemented");
    5555}/*}}}*/
    5656ElementMatrix* GLheightadvectionAnalysis::CreateKMatrix(Element* element){/*{{{*/
     
    8888        //Input* vx_input=element->GetInput(BaseSlopeXEnum); _assert_(vx_input);
    8989        //Input* vy_input=element->GetInput(BaseSlopeYEnum); _assert_(vy_input);
    90    Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input);
     90        Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input);
    9191        Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input);
    9292        Input* bc_input=element->GetInput(MeshVertexonboundaryEnum); _assert_(bc_input);
     
    156156}/*}}}*/
    157157void           GLheightadvectionAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/
    158            _error_("not implemented yet");
     158        _error_("not implemented yet");
    159159}/*}}}*/
    160160void           GLheightadvectionAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/
     
    184184                Element    *element  = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
    185185
    186                 if(!element->IsIceInElement()) continue;
    187                 int         numnodes = element->GetNumberOfNodes();
    188                 IssmDouble *mask     = xNew<IssmDouble>(numnodes);
    189                 IssmDouble *bed      = xNew<IssmDouble>(numnodes);
    190                 IssmDouble *lset     = xNew<IssmDouble>(numnodes);
     186                int         numnodes  = element->GetNumberOfNodes();
     187                IssmDouble *mask      = xNew<IssmDouble>(numnodes);
     188                IssmDouble *bed       = xNew<IssmDouble>(numnodes);
     189                IssmDouble *ls_active = xNew<IssmDouble>(numnodes);
    191190
    192191                element->GetInputListOnNodes(&mask[0],MaskGroundediceLevelsetEnum);
    193192                element->GetInputListOnNodes(&bed[0],BaseEnum);
    194                 element->GetInputListOnNodes(&lset[0],MaskIceLevelsetEnum);
     193                element->GetInputListOnNodes(&ls_active[0],IceMaskNodeActivationEnum);
    195194
    196195                for(int in=0;in<numnodes;in++){
    197196                        Node* node=element->GetNode(in);
    198                         if(mask[in]<0.){
     197                        if(mask[in]<0. && ls_active[in]==1.){
    199198                                node->Activate();
    200199                        }
     
    206205                xDelete<IssmDouble>(mask);
    207206                xDelete<IssmDouble>(bed);
    208                 xDelete<IssmDouble>(lset);
     207                xDelete<IssmDouble>(ls_active);
    209208        }
    210209
Note: See TracChangeset for help on using the changeset viewer.