Changeset 17298


Ignore:
Timestamp:
02/18/14 19:44:42 (11 years ago)
Author:
Mathieu Morlighem
Message:

BUG: fixing SSA 2d

Location:
issm/trunk-jpl/src/c
Files:
2 edited

Legend:

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

    r17297 r17298  
    12731273        switch(meshtype){
    12741274                case Mesh2DverticalEnum:   dim = 1; bsize = 1; break;
    1275                 case Mesh2DhorizontalEnum: dim = 2; bsize = 1; break;
     1275                case Mesh2DhorizontalEnum: dim = 2; bsize = 3; break;
    12761276                case Mesh3DEnum:           dim = 2; bsize = 3; break;
    12771277                default: _error_("mesh "<<EnumToStringx(meshtype)<<" not supported yet");
     
    12951295        Input* vy_input    = NULL;
    12961296        Input* vyold_input = NULL;
    1297         if(dim==3){
    1298                 vy_input=element->GetInput(VyEnum);          _assert_(vy_input);
    1299                 vyold_input=element->GetInput(VyPicardEnum); _assert_(vyold_input);
     1297        if(dim==2){
     1298                vy_input    = element->GetInput(VyEnum);       _assert_(vy_input);
     1299                vyold_input = element->GetInput(VyPicardEnum); _assert_(vyold_input);
    13001300        }
    13011301        element->FindParam(&viscosity_overshoot,StressbalanceViscosityOvershootEnum);
     
    13161316                newviscosity=viscosity+viscosity_overshoot*(viscosity-oldviscosity);
    13171317                D_scalar=2.*newviscosity*thickness*gauss->weight*Jdet;
    1318                 for(int i=0;i<3;i++) D[i*3+i]=D_scalar;
     1318                for(int i=0;i<bsize;i++) D[i*bsize+i]=D_scalar;
    13191319
    13201320                TripleMultiply(B,bsize,numdof,1,
     
    13221322                                        Bprime,bsize,numdof,0,
    13231323                                        &Ke->values[0],1);
     1324
     1325                for(int i=0;i<bsize*numdof;i++) if(B[i]==1.) _error_("STREAM");
     1326                for(int i=0;i<bsize*numdof;i++) if(Bprime[i]==1.) _error_("STREAM");
    13241327        }
    13251328
     
    15251528        if(dim==2){
    15261529                for(int i=0;i<numnodes;i++){
    1527                         B[i] = dbasis[i];
    1528                 }
    1529         }
    1530         else{
    1531                 for(int i=0;i<numnodes;i++){
    15321530                        B[2*numnodes*0+2*i+0] = dbasis[0*numnodes+i];
    15331531                        B[2*numnodes*0+2*i+1] = 0.;
     
    15361534                        B[2*numnodes*2+2*i+0] = .5*dbasis[1*numnodes+i];
    15371535                        B[2*numnodes*2+2*i+1] = .5*dbasis[0*numnodes+i];
     1536                }
     1537        }
     1538        else{
     1539                for(int i=0;i<numnodes;i++){
     1540                        B[i] = dbasis[i];
    15381541                }
    15391542        }
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r17296 r17298  
    749749
    750750        /*Check that both inputs have been found*/
    751         if (!vx_input || !vy_input){
     751        if(!vx_input || !vy_input){
    752752                _error_("Input missing. Here are the input pointers we have for vx: " << vx_input << ", vy: " << vy_input << "\n");
    753753        }
Note: See TracChangeset for help on using the changeset viewer.