Ignore:
Timestamp:
07/11/14 11:28:58 (11 years ago)
Author:
seroussi
Message:

BUG: forgot to fix to compilation problems in lagrangian lambda

File:
1 edited

Legend:

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

    r18235 r18236  
    169169
    170170        int        dim;
    171         int        *doflist   = NULL;
    172         IssmDouble rholambda,un;
     171        int        *doflist       = NULL;
     172        IssmDouble rholambda,un,vx,vy,vz,sigmann;
    173173        IssmDouble bed_normal[3];
     174        IssmDouble *xyz_list_base = NULL;
    174175
    175176        /*Fetch number of nodes and dof for this finite element*/
    176177        int numnodes       = element->GetNumberOfNodes();
    177         int numnodessigma  = element->NumberofNodes(P2Enum);
     178        //int numnodessigma  = element->NumberofNodes(P2Enum);
     179        int numnodessigma;
     180        if(dim==2) numnodessigma=3;
     181        else numnodessigma=6;
    178182        element->FindParam(&dim,DomainDimensionEnum);
    179183
     
    196200
    197201        /*Now compute sigmann if on base*/
    198         element->GetInputListOnNodes(&sigmann[0],SigmaNNEnum);
    199 
    200202        if(element->IsOnBase()){
    201203
    202                 element->NormalBase(&bed_normal[0],xyz_list_tria);
     204                element->GetVerticesCoordinatesBase(&xyz_list_base);
     205                element->NormalBase(&bed_normal[0],xyz_list_base);
    203206                element->FindParam(&rholambda,AugmentedLagrangianRholambdaEnum);
    204207
     
    207210                        gauss->GaussNode(P2Enum,i);
    208211
     212                        sigmann_input->GetInputValue(&sigmann, gauss);
    209213                        vx_input->GetInputValue(&vx, gauss);
    210214                        vy_input->GetInputValue(&vy, gauss);
    211                         un=bed_normal[0]*vx[i] + bed_normal[1]*vy[i];
     215                        un=bed_normal[0]*vx + bed_normal[1]*vy;
    212216                        if(dim==3){
    213217                           vz_input->GetInputValue(&vz, gauss);
    214                                 un = un + bed_normal[2]*vz[i];
     218                                un = un + bed_normal[2]*vz;
    215219                        }
    216                         values[i] = sigmann[i] + rholambda*un;
    217                 }
    218         }
    219         element->AddInput(SigmaNNEnum,values,P2Enum));
     220                        values[i] = sigmann + rholambda*un;
     221                }
     222                delete gauss;
     223                xDelete<IssmDouble>(xyz_list_base);
     224        }
     225        element->AddInput(SigmaNNEnum,values,P2Enum);
    220226
    221227        /*Free ressources:*/
    222         delete gauss;
    223228        xDelete<IssmDouble>(values);
    224         xDelete<IssmDouble>(sigmann);
    225229        xDelete<IssmDouble>(pressure);
    226230        xDelete<int>(doflist);
Note: See TracChangeset for help on using the changeset viewer.