Changeset 17315


Ignore:
Timestamp:
02/20/14 08:55:05 (11 years ago)
Author:
Mathieu Morlighem
Message:

CHG: working on SSA 1d

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

Legend:

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

    r17309 r17315  
    1616
    1717        switch(approximation){
    18                 case SSAApproximationEnum:  numdofs =2; break;
     18                case SSAApproximationEnum:
     19                         switch(meshtype){
     20                                 case Mesh3DEnum:         numdofs=2; break;
     21                                 case Mesh2DverticalEnum: numdofs=1; break;
     22                                 default: _error_("mesh type not supported yet");
     23                         }
     24                         break;
    1925                case L1L2ApproximationEnum: numdofs =2; break;
    2026                case HOApproximationEnum:   
     
    14221428
    14231429        /*Transform coordinate system*/
    1424         element->TransformLoadVectorCoord(pe,XYEnum);
     1430        if(dim==2) element->TransformLoadVectorCoord(pe,XYEnum);
    14251431
    14261432        /*Clean up and return*/
     
    14961502
    14971503        /*Transform coordinate system*/
    1498         element->TransformLoadVectorCoord(pe,XYEnum);
     1504        if(dim==2) element->TransformLoadVectorCoord(pe,XYEnum);
    14991505
    15001506        /*Clean up and return*/
     
    16961702        /*Ok, we have vx and vy in values, fill in vx and vy arrays: */
    16971703        for(i=0;i<numnodes;i++){
    1698                 vx[i]=values[i*2+0];
     1704                vx[i]=values[i*dim+0];
    16991705                if(xIsNan<IssmDouble>(vx[i])) _error_("NaN found in solution vector");
    17001706
    17011707                if(dim==2){
    1702                         vy[i]=values[i*2+1];
     1708                        vy[i]=values[i*dim+1];
    17031709                        if(xIsNan<IssmDouble>(vy[i])) _error_("NaN found in solution vector");
    17041710                }
     
    17111717        }
    17121718        else{
    1713                 element->GetInputListOnNodes(&vy[0],VyEnum,0.);
     1719                basalelement->GetInputListOnNodes(&vy[0],VyEnum,0.);
    17141720                for(i=0;i<numnodes;i++) vel[i]=sqrt(vx[i]*vx[i] + vy[i]*vy[i]);
    17151721        }
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Seg.cpp

    r17310 r17315  
    227227}
    228228/*}}}*/
     229/*FUNCTION Seg::JacobianDeterminantSurface{{{*/
     230void Seg::JacobianDeterminantSurface(IssmDouble* pJdet,IssmDouble* xyz_list,Gauss* gauss){
     231
     232        *pJdet = 1.;
     233
     234}
     235/*}}}*/
    229236/*FUNCTION Seg::NewGauss(){{{*/
    230237Gauss* Seg::NewGauss(void){
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Seg.h

    r17310 r17315  
    9696                void        JacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,Gauss* gauss);
    9797                void        JacobianDeterminantLine(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
    98                 void        JacobianDeterminantSurface(IssmDouble*  pJdet, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");};
     98                void        JacobianDeterminantSurface(IssmDouble*  pJdet, IssmDouble* xyz_list,Gauss* gauss);
    9999                void        JacobianDeterminantBase(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss){_error_("not implemented yet");};
    100100                void        JacobianDeterminantTop(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss){_error_("not implemented yet");};
  • TabularUnified issm/trunk-jpl/src/c/classes/gauss/GaussSeg.cpp

    r17310 r17315  
    133133void GaussSeg::GaussNode(int finiteelement,int iv){
    134134
    135         _error_("not supported");
     135        /*in debugging mode: check that the default constructor has been called*/
     136        _assert_(numgauss==-1);
     137
     138        /*update static arrays*/
     139        switch(finiteelement){
     140                case P1Enum: case P1DGEnum:
     141                        switch(iv){
     142                                case 0: coord1=-1.; break;
     143                                case 1: coord1=+1.; break;
     144                                default: _error_("node index should be in [0 1]");
     145                        }
     146                        break;
     147                default: _error_("Finite element "<<EnumToStringx(finiteelement)<<" not supported");
     148        }
    136149
    137150}
Note: See TracChangeset for help on using the changeset viewer.