Changeset 16818


Ignore:
Timestamp:
11/18/13 14:45:20 (11 years ago)
Author:
Mathieu Morlighem
Message:

NEW: CreateKMatrixSSA in analysis

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

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/Analysis.h

    r16782 r16818  
    1616class ElementVector;
    1717class ElementMatrix;
     18class Gauss;
    1819
    1920class Analysis{
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r16807 r16818  
    813813/*Finite Element Analysis*/
    814814ElementMatrix* StressbalanceAnalysis::CreateKMatrix(Element* element){/*{{{*/
    815         _error_("not implemented yet");
     815        int approximation;
     816        element->GetInputValue(&approximation,ApproximationEnum);
     817        switch(approximation){
     818                case SSAApproximationEnum:
     819                        return CreateKMatrixSSA(element);
     820                case NoneApproximationEnum:
     821                        return NULL;
     822                default:
     823                        _error_("Approximation "<<EnumToStringx(approximation)<<" not supported");
     824        }
     825}/*}}}*/
     826ElementMatrix* StressbalanceAnalysis::CreateKMatrixSSA(Element* element){/*{{{*/
     827
     828        /*Intermediaries*/
     829        int      meshtype;
     830        Element* basalelement;
     831
     832        /*Get basal element*/
     833        element->FindParam(&meshtype,MeshTypeEnum);
     834        switch(meshtype){
     835                case Mesh2DhorizontalEnum:
     836                        basalelement = element;
     837                        break;
     838                case Mesh3DEnum:
     839                        if(!element->IsOnBed()) return NULL;
     840                        basalelement = element->SpawnBasalElement();
     841                        break;
     842                default: _error_("mesh "<<EnumToStringx(meshtype)<<" not supported yet");
     843        }
     844
     845        /*compute all stiffness matrices for this element*/
     846        ElementMatrix* Ke1=CreateKMatrixSSAViscous(element);
     847        ElementMatrix* Ke2=CreateKMatrixSSAFriction(element);
     848        ElementMatrix* Ke =new ElementMatrix(Ke1,Ke2);
     849
     850        /*clean-up and return*/
     851        if(meshtype!=Mesh2DhorizontalEnum){basalelement->DeleteMaterials(); delete basalelement;};
     852        delete Ke1;
     853        delete Ke2;
     854        return Ke;
     855}/*}}}*/
     856ElementMatrix* StressbalanceAnalysis::CreateKMatrixSSAViscous(Element* element){/*{{{*/
     857
     858        /*Intermediaries*/
     859        IssmDouble  viscosity,newviscosity,oldviscosity;
     860        IssmDouble  viscosity_overshoot,thickness,Jdet;
     861        IssmDouble  D_scalar;
     862        IssmDouble *xyz_list = NULL;
     863
     864        /*Fetch number of nodes and dof for this finite element*/
     865        int numnodes = element->GetNumberOfNodes();
     866        int numdof   = numnodes*2;
     867
     868        /*Initialize Element matrix and vectors*/
     869        ElementMatrix* Ke     = element->NewElementMatrix(SSAApproximationEnum);
     870        IssmDouble*    B      = xNew<IssmDouble>(3*numdof);
     871        IssmDouble*    Bprime = xNew<IssmDouble>(3*numdof);
     872        IssmDouble*    D      = xNewZeroInit<IssmDouble>(3*3);
     873
     874        /*Retrieve all inputs and parameters*/
     875        element->GetVerticesCoordinates(&xyz_list);
     876        Input* thickness_input=element->GetInput(ThicknessEnum); _assert_(thickness_input);
     877        Input* vx_input=element->GetInput(VxEnum);               _assert_(vx_input);
     878        Input* vy_input=element->GetInput(VyEnum);               _assert_(vy_input);
     879        Input* vxold_input=element->GetInput(VxPicardEnum);      _assert_(vxold_input);
     880        Input* vyold_input=element->GetInput(VyPicardEnum);      _assert_(vyold_input);
     881        element->FindParam(&viscosity_overshoot,StressbalanceViscosityOvershootEnum);
     882
     883        /* Start  looping on the number of gaussian points: */
     884        Gauss* gauss = element->NewGauss(2);
     885        for(int ig=gauss->begin();ig<gauss->end();ig++){
     886                gauss->GaussPoint(ig);
     887
     888                element->JacobianDeterminant(&Jdet,xyz_list,gauss);
     889                this->GetBSSA(B,element,xyz_list,gauss);
     890                this->GetBSSAprime(Bprime,element,xyz_list,gauss);
     891
     892                element->ViscositySSA(&viscosity,xyz_list,gauss,vx_input,vy_input);
     893                element->ViscositySSA(&oldviscosity,xyz_list,gauss,vxold_input,vyold_input);
     894                thickness_input->GetInputValue(&thickness, gauss);
     895
     896                newviscosity=viscosity+viscosity_overshoot*(viscosity-oldviscosity);
     897                D_scalar=2.*newviscosity*thickness*gauss->weight*Jdet;
     898                for(int i=0;i<3;i++) D[i*3+i]=D_scalar;
     899
     900                TripleMultiply(B,3,numdof,1,
     901                                        D,3,3,0,
     902                                        Bprime,3,numdof,0,
     903                                        &Ke->values[0],1);
     904        }
     905
     906        /*Transform Coordinate System*/
     907        element->TransformStiffnessMatrixCoord(Ke,XYEnum);
     908
     909        /*Clean up and return*/
     910        delete gauss;
     911        xDelete<IssmDouble>(xyz_list);
     912        xDelete<IssmDouble>(D);
     913        xDelete<IssmDouble>(Bprime);
     914        xDelete<IssmDouble>(B);
     915        return Ke;
     916}/*}}}*/
     917ElementMatrix* StressbalanceAnalysis::CreateKMatrixSSAFriction(Element* element){/*{{{*/
     918        return NULL;
    816919}/*}}}*/
    817920ElementVector* StressbalanceAnalysis::CreatePVector(Element* element){/*{{{*/
     
    11281231
    11291232        return NULL;
     1233}/*}}}*/
     1234void StressbalanceAnalysis::GetBSSA(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
     1235        /*Compute B  matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2.
     1236         * For node i, Bi can be expressed in the actual coordinate system
     1237         * by:
     1238         *       Bi=[ dN/dx           0    ]
     1239         *          [   0           dN/dy  ]
     1240         *          [ 1/2*dN/dy  1/2*dN/dx ]
     1241         * where N is the finiteelement function for node i.
     1242         *
     1243         * We assume B has been allocated already, of size: 3x(NDOF2*numnodes)
     1244         */
     1245
     1246        /*Fetch number of nodes for this finite element*/
     1247        int numnodes = element->GetNumberOfNodes();
     1248
     1249        /*Get nodal functions derivatives*/
     1250        IssmDouble* dbasis=xNew<IssmDouble>(2*numnodes);
     1251        element->NodalFunctionsDerivatives(dbasis,xyz_list,gauss);
     1252
     1253        /*Build B: */
     1254        for(int i=0;i<numnodes;i++){
     1255                B[2*numnodes*0+2*i+0] = dbasis[0*numnodes+i];
     1256                B[2*numnodes*0+2*i+1] = 0.;
     1257                B[2*numnodes*1+2*i+0] = 0.;
     1258                B[2*numnodes*1+2*i+1] = dbasis[1*numnodes+i];
     1259                B[2*numnodes*2+2*i+0] = .5*dbasis[1*numnodes+i];
     1260                B[2*numnodes*2+2*i+1] = .5*dbasis[0*numnodes+i];
     1261        }
     1262
     1263        /*Clean-up*/
     1264        xDelete<IssmDouble>(dbasis);
     1265}/*}}}*/
     1266void StressbalanceAnalysis::GetBSSAprime(IssmDouble* Bprime,Element* element,IssmDouble* xyz_list,Gauss* gauss){/*{{{*/
     1267        /*Compute B'  matrix. B'=[B1' B2' B3'] where Bi' is of size 3*NDOF2.
     1268         * For node i, Bi' can be expressed in the actual coordinate system
     1269         * by:
     1270         *       Bi_prime=[ 2*dN/dx    dN/dy ]
     1271         *                [   dN/dx  2*dN/dy ]
     1272         *                [   dN/dy    dN/dx ]
     1273         * where hNis the finiteelement function for node i.
     1274         *
     1275         * We assume B' has been allocated already, of size: 3x(NDOF2*numnodes)
     1276         */
     1277
     1278        /*Fetch number of nodes for this finite element*/
     1279        int numnodes = element->GetNumberOfNodes();
     1280
     1281        /*Get nodal functions derivatives*/
     1282        IssmDouble* dbasis=xNew<IssmDouble>(2*numnodes);
     1283        element->NodalFunctionsDerivatives(dbasis,xyz_list,gauss);
     1284
     1285        /*Build B': */
     1286        for(int i=0;i<numnodes;i++){
     1287                Bprime[2*numnodes*0+2*i+0] = 2.*dbasis[0*numnodes+i];
     1288                Bprime[2*numnodes*0+2*i+1] =    dbasis[1*numnodes+i];
     1289                Bprime[2*numnodes*1+2*i+0] =    dbasis[0*numnodes+i];
     1290                Bprime[2*numnodes*1+2*i+1] = 2.*dbasis[1*numnodes+i];
     1291                Bprime[2*numnodes*2+2*i+0] =    dbasis[1*numnodes+i];
     1292                Bprime[2*numnodes*2+2*i+1] =    dbasis[0*numnodes+i];
     1293        }
     1294
     1295        /*Clean-up*/
     1296        xDelete<IssmDouble>(dbasis);
    11301297}/*}}}*/
    11311298void StressbalanceAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.h

    r16805 r16818  
    2222                /*Finite element Analysis*/
    2323                ElementMatrix* CreateKMatrix(Element* element);
     24                ElementMatrix* CreateKMatrixSSA(Element* element);
     25                ElementMatrix* CreateKMatrixSSAViscous(Element* element);
     26                ElementMatrix* CreateKMatrixSSAFriction(Element* element);
    2427                ElementVector* CreatePVector(Element* element);
    2528                ElementVector* CreatePVectorFS(Element* element);
     
    3336                ElementVector* CreatePVectorSSADrivingStress(Element* element);
    3437                ElementVector* CreatePVectorSSAFront(Element* element);
     38                void GetBSSA(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss);
     39                void GetBSSAprime(IssmDouble* B,Element* element,IssmDouble* xyz_list,Gauss* gauss);
    3540                void GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element);
    3641                void GetSolutionFromInputsFS(Vector<IssmDouble>* solution,Element* element);
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r16817 r16818  
    7070                virtual void   TransformSolutionCoord(IssmDouble* values,int numnodes,int transformenum)=0;
    7171                virtual void   TransformSolutionCoord(IssmDouble* values,int numnodes,int* transformenum_list)=0;
     72                virtual void   TransformStiffnessMatrixCoord(ElementMatrix* Ke,int transformenum)=0;
     73                virtual void   TransformStiffnessMatrixCoord(ElementMatrix* Ke,int* transformenum_list)=0;
     74                virtual void   TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int transformenum)=0;
     75                virtual void   TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int* transformenum_list)=0;
    7276                virtual Element* GetBasalElement(void)=0;
    7377                virtual void    GetDofList(int** pdoflist,int approximation_enum,int setenum)=0;
     
    122126                virtual Gauss* NewGaussBase(int order)=0;
    123127                virtual ElementVector*  NewElementVector(int approximation_enum=NoneApproximationEnum)=0;
     128                virtual ElementMatrix*  NewElementMatrix(int approximation_enum=NoneApproximationEnum)=0;
    124129                virtual void   InputScale(int enum_type,IssmDouble scale_factor)=0;
    125130                virtual void   GetVectorFromInputs(Vector<IssmDouble>* vector, int name_enum)=0;
     
    134139                virtual IssmDouble StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa)=0;
    135140                virtual void   ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input)=0;
     141                virtual void   ViscositySSA(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input)=0;
    136142                virtual int    VelocityInterpolation()=0;
    137143                virtual int    PressureInterpolation()=0;
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r16817 r16818  
    25482548}
    25492549/*}}}*/
     2550/*FUNCTION Penta::NewElementMatrix{{{*/
     2551ElementMatrix* Penta::NewElementMatrix(int approximation_enum){
     2552        return new ElementMatrix(nodes,this->NumberofNodes(),this->parameters,approximation_enum);
     2553}
     2554/*}}}*/
    25502555/*FUNCTION Penta::NodalFunctions{{{*/
    25512556void Penta::NodalFunctions(IssmDouble* basis, Gauss* gauss){
     
    31123117        return dt;
    31133118}/*}}}*/
    3114 /*FUNCTION Penta::TransformLoadVectorCoord{{{*/
     3119/*FUNCTION Penta::TransformLoadVectorCoord(ElementVector* pe,int transformenum){{{*/
    31153120void Penta::TransformLoadVectorCoord(ElementVector* pe,int transformenum){
    31163121
     
    31193124}
    31203125/*}}}*/
    3121 /*FUNCTION Penta::TransformLoadVectorCoord{{{*/
     3126/*FUNCTION Penta::TransformLoadVectorCoord(ElementVector* pe,int* transformenum_list){{{*/
    31223127void Penta::TransformLoadVectorCoord(ElementVector* pe,int* transformenum_list){
    31233128
     
    31513156
    31523157        ::TransformSolutionCoord(values,this->nodes,numnodes,transformenum_list);
     3158
     3159}
     3160/*}}}*/
     3161/*FUNCTION Penta::TransformStiffnessMatrixCoord(ElementMatrix* pe,int transformenum){{{*/
     3162void Penta::TransformStiffnessMatrixCoord(ElementMatrix* Ke,int transformenum){
     3163
     3164        ::TransformStiffnessMatrixCoord(Ke,this->nodes,this->NumberofNodes(),transformenum);
    31533165
    31543166}
     
    51715183
    51725184        /*Transform Coordinate System*/
    5173         TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYEnum);
     5185        ::TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYEnum);
    51745186
    51755187        /*Clean up and return*/
     
    52515263
    52525264        /*Transform Coordinate System*/
    5253         TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYZEnum);
     5265        ::TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYZEnum);
    52545266
    52555267        /*Clean up and return*/
     
    66536665
    66546666        /*Transform Coordinate System*/
    6655         TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
     6667        ::TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
    66566668
    66576669        /*Clean-up and return*/
     
    67396751
    67406752        /*Transform Coordinate System*/
    6741         TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
     6753        ::TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
    67426754
    67436755        /*Clean up and return*/
     
    68656877
    68666878        /*Transform Coordinate System*/
    6867         TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
     6879        ::TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
    68686880
    68696881        /*Clean-up and return*/
     
    69917003
    69927004        /*Transform Coordinate System*/
    6993         TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
     7005        ::TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
    69947006
    69957007        /*Clean up and return*/
     
    70577069
    70587070        /*Transform Coordinate System*/ //Do not transform, already done in the matrices
    7059         TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
     7071        ::TransformStiffnessMatrixCoord(Ke,node_list,numnodes,cs_list);
    70607072
    70617073        /*clean-up and return*/
     
    72807292
    72817293        /*Transform Coordinate System*/
    7282         TransformStiffnessMatrixCoord(Ke,tria->nodes,NUMVERTICES2D,XYEnum);
     7294        ::TransformStiffnessMatrixCoord(Ke,tria->nodes,NUMVERTICES2D,XYEnum);
    72837295
    72847296        /*Clean up and return*/
     
    74157427
    74167428        /*Transform Coordinate System*/
    7417         TransformStiffnessMatrixCoord(Ke,tria->nodes,NUMVERTICES2D,XYEnum);
     7429        ::TransformStiffnessMatrixCoord(Ke,tria->nodes,NUMVERTICES2D,XYEnum);
    74187430
    74197431        /*Clean up and return*/
     
    75147526
    75157527        /*Transform Coordinate System*/
    7516         TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);
     7528        ::TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);
    75177529
    75187530        /*Clean up and return*/
     
    76057617
    76067618        /*Transform Coordinate System*/
    7607         TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);
     7619        ::TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);
    76087620
    76097621        /*Clean up and return*/
     
    78217833
    78227834        /*Transform Coordinate System*/
    7823         TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list);
     7835        ::TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list);
    78247836
    78257837        /*Clean up and return*/
     
    78937905
    78947906        /*DO NOT Transform Coordinate System: this stiffness matrix is already expressed in tangential coordinates*/
    7895         //TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYZEnum);
     7907        //::TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYZEnum);
    78967908
    78977909        /*Clean up and return*/
     
    92759287
    92769288        /*Transform Coordinate System*/
    9277         TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYEnum);
     9289        ::TransformStiffnessMatrixCoord(Ke,nodes,NUMVERTICES,XYEnum);
    92789290
    92799291        /*Clean up and return*/
     
    93669378
    93679379        /*Transform Coordinate System*/
    9368         TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list);
     9380        ::TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list);
    93699381
    93709382        /*Clean up and return*/
  • issm/trunk-jpl/src/c/classes/Elements/Penta.h

    r16817 r16818  
    2323class ElementMatrix;
    2424class ElementVector;
    25 
     25class GaussPenta;
    2626#include "../../shared/Exceptions/exceptions.h"
    2727#include "../../shared/Enum/Enum.h"
     
    249249                Gauss*         NewGaussBase(int order);
    250250                ElementVector* NewElementVector(int approximation_enum);
     251                ElementMatrix* NewElementMatrix(int approximation_enum);
    251252                void           NodalFunctions(IssmDouble* basis,Gauss* gauss);
    252253                void           NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
     
    266267                void           TransformSolutionCoord(IssmDouble* values,int numnodes,int transformenum);      /*Tiling only*/
    267268                void           TransformSolutionCoord(IssmDouble* values,int numnodes,int* transformenum_list);/*Tiling only*/
     269                void           TransformStiffnessMatrixCoord(ElementMatrix* Ke,int transformenum);
     270                void           TransformStiffnessMatrixCoord(ElementMatrix* Ke,int* transformenum_list){_error_("not implemented yet");};
     271                void           TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int transformenum){_error_("not implemented yet");};
     272                void           TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int* transformenum_list){_error_("not implemented yet");};
     273                void           ViscositySSA(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not implemented");};
    268274
    269275                #ifdef _HAVE_STRESSBALANCE_
  • issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp

    r16739 r16818  
    5555/*Reference Element numerics*/
    5656/*FUNCTION PentaRef::GetBSSAHO {{{*/
    57 void PentaRef::GetBSSAHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss){
     57void PentaRef::GetBSSAHO(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    5858        /*Compute B  matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF2.
    5959         * For node i, Bi can be expressed in the actual coordinate system
     
    8686/*}}}*/
    8787/*FUNCTION PentaRef::GetBSSAFS{{{*/
    88 void PentaRef::GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss){
     88void PentaRef::GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    8989        /*Compute B  matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF2.
    9090         * For node i, Bi can be expressed in the actual coordinate system
     
    146146/*}}}*/
    147147/*FUNCTION PentaRef::GetBHO {{{*/
    148 void PentaRef::GetBHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss){
     148void PentaRef::GetBHO(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    149149        /*Compute B  matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF2.
    150150         * For node i, Bi can be expressed in the actual coordinate system
     
    186186/*}}}*/
    187187/*FUNCTION PentaRef::GetBprimeHO {{{*/
    188 void PentaRef::GetBprimeHO(IssmDouble* B,IssmDouble* xyz_list,GaussPenta* gauss){
     188void PentaRef::GetBprimeHO(IssmDouble* B,IssmDouble* xyz_list,Gauss* gauss){
    189189        /*Compute B  prime matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF2.
    190190         * For node i, Bi can be expressed in the actual coordinate system
     
    226226/*}}}*/
    227227/*FUNCTION PentaRef::GetBprimeSSAFS{{{*/
    228 void PentaRef::GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussPenta* gauss){
     228void PentaRef::GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss){
    229229        /*Compute Bprime  matrix. Bprime=[Bprime1 Bprime2 Bprime3 Bprime4 Bprime5 Bprime6] where Bprimei is of size 5*NDOF2.
    230230         * For node i, Bprimei can be expressed in the actual coordinate system
     
    278278/*}}}*/
    279279/*FUNCTION PentaRef::GetBFSstrainrate {{{*/
    280 void PentaRef::GetBFSstrainrate(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss){
     280void PentaRef::GetBFSstrainrate(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    281281
    282282        /*Compute B  matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 3*NDOF4.
     
    331331/*}}}*/
    332332/*FUNCTION PentaRef::GetBFS {{{*/
    333 void PentaRef::GetBFS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss){
     333void PentaRef::GetBFS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    334334
    335335        /*Compute B  matrix. B=[Bv1 Bv2 ... Bp1 Bp2 ...] where Bvi is of size 3*NDOF3.
     
    410410/*}}}*/
    411411/*FUNCTION PentaRef::GetBFSGLS {{{*/
    412 void PentaRef::GetBFSGLS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss){
     412void PentaRef::GetBFSGLS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    413413
    414414        /*Compute B  matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 3*NDOF4.
     
    476476/*}}}*/
    477477/*FUNCTION PentaRef::GetBprimeFS {{{*/
    478 void PentaRef::GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, GaussPenta* gauss){
     478void PentaRef::GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss){
    479479        /*      Compute B'  matrix. B'=[B1' B2' B3' B4' B5' B6' Bb'] where Bi' is of size 3*NDOF2.
    480480         *      For node i, Bi' can be expressed in the actual coordinate system
     
    554554/*}}}*/
    555555/*FUNCTION PentaRef::GetBprimeFSGLS {{{*/
    556 void PentaRef::GetBprimeFSGLS(IssmDouble* B_prime, IssmDouble* xyz_list, GaussPenta* gauss){
     556void PentaRef::GetBprimeFSGLS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss){
    557557        /*      Compute B'  matrix. B'=[B1' B2' B3' B4' B5' B6' Bb'] where Bi' is of size 3*NDOF2.
    558558         *      For node i, Bi' can be expressed in the actual coordinate system
     
    621621/*}}}*/
    622622/*FUNCTION PentaRef::GetBAdvec{{{*/
    623 void PentaRef::GetBAdvec(IssmDouble* B_advec, IssmDouble* xyz_list, GaussPenta* gauss){
     623void PentaRef::GetBAdvec(IssmDouble* B_advec, IssmDouble* xyz_list, Gauss* gauss){
    624624        /*Compute B  matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF1.
    625625         * For node i, Bi' can be expressed in the actual coordinate system
     
    652652/*}}}*/
    653653/*FUNCTION PentaRef::GetBConduct{{{*/
    654 void PentaRef::GetBConduct(IssmDouble* B_conduct, IssmDouble* xyz_list, GaussPenta* gauss){
     654void PentaRef::GetBConduct(IssmDouble* B_conduct, IssmDouble* xyz_list, Gauss* gauss){
    655655        /*Compute B  matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF1.
    656656         * For node i, Bi' can be expressed in the actual coordinate system
     
    683683/*}}}*/
    684684/*FUNCTION PentaRef::GetBVert{{{*/
    685 void PentaRef::GetBVert(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss){
     685void PentaRef::GetBVert(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    686686        /*      Compute B  matrix. B=[dh1/dz dh2/dz dh3/dz dh4/dz dh5/dz dh6/dz];
    687687                where hi is the interpolation function for node i.*/
     
    704704/*}}}*/
    705705/*FUNCTION PentaRef::GetBprimeAdvec{{{*/
    706 void PentaRef::GetBprimeAdvec(IssmDouble* Bprime_advec, IssmDouble* xyz_list, GaussPenta* gauss){
     706void PentaRef::GetBprimeAdvec(IssmDouble* Bprime_advec, IssmDouble* xyz_list, Gauss* gauss){
    707707        /*Compute B  matrix. B=[B1 B2 B3 B4 B5 B6] where Bi is of size 5*NDOF1.
    708708         * For node i, Bi' can be expressed in the actual coordinate system
     
    735735/*}}}*/
    736736/*FUNCTION PentaRef::GetBprimeVert{{{*/
    737 void PentaRef::GetBprimeVert(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss){
     737void PentaRef::GetBprimeVert(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    738738
    739739        GetNodalFunctions(B,gauss);
     
    742742/*}}}*/
    743743/*FUNCTION PentaRef::GetBHOFriction{{{*/
    744 void PentaRef::GetBHOFriction(IssmDouble* B, GaussPenta* gauss){
     744void PentaRef::GetBHOFriction(IssmDouble* B, Gauss* gauss){
    745745        /*Compute B  matrix. B=[B1 B2 B3] where Bi is square and of size 2x2.
    746746         ** For node i, Bi can be expressed in the actual coordinate system
     
    772772/*}}}*/
    773773/*FUNCTION PentaRef::GetLFS{{{*/
    774 void PentaRef::GetLFS(IssmDouble* LFS, GaussPenta* gauss){
     774void PentaRef::GetLFS(IssmDouble* LFS, Gauss* gauss){
    775775        /* Compute L  matrix. L=[L1 L2 L3] where Li is square and of size numdof.
    776776         * For node i, Li can be expressed in the actual coordinate system
     
    812812/*}}}*/
    813813/*FUNCTION PentaRef::GetLprimeFS {{{*/
    814 void PentaRef::GetLprimeFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, GaussPenta* gauss){
     814void PentaRef::GetLprimeFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, Gauss* gauss_in){
    815815        /* Compute Lprime  matrix. Lprime=[Lp1 Lp2 Lp3] where Lpi is square and of size numdof.
    816816         * For node i, Lpi can be expressed in the actual coordinate system
     
    851851        IssmDouble L1L2l3[NUMNODESP1_2d];
    852852        IssmDouble dbasis[3][NUMNODESP1];
     853
     854        /*Cast gauss to GaussPenta*/
     855        _assert_(gauss_in->Enum()==GaussPentaEnum);
     856        GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);
    853857
    854858        /*Get L1L2l3 in actual coordinate system: */
     
    921925/*}}}*/
    922926/*FUNCTION PentaRef::GetLSSAFS {{{*/
    923 void PentaRef::GetLSSAFS(IssmDouble* LFS, GaussPenta* gauss){
     927void PentaRef::GetLSSAFS(IssmDouble* LFS, Gauss* gauss_in){
    924928        /*
    925929         * Compute L  matrix. L=[L1 L2 L3] where Li is square and of size numdof.
     
    939943        int num_dof=2;
    940944        IssmDouble L1L2l3[NUMNODESP1_2d];
     945
     946        /*Cast gauss to GaussPenta*/
     947        _assert_(gauss_in->Enum()==GaussPentaEnum);
     948        GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);
    941949
    942950        /*Get L1L2l3 in actual coordinate system: */
     
    967975/*}}}*/
    968976/*FUNCTION PentaRef::GetLprimeSSAFS {{{*/
    969 void PentaRef::GetLprimeSSAFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, GaussPenta* gauss){
     977void PentaRef::GetLprimeSSAFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, Gauss* gauss_in){
    970978        /* Compute Lprime  matrix. Lprime=[Lp1 Lp2 Lp3] where Lpi is square and of size numdof.
    971979         * For node i, Lpi can be expressed in the actual coordinate system
     
    986994        IssmDouble L1L2l3[NUMNODESP1_2d];
    987995        IssmDouble dbasis[3][NUMNODESP1];
     996
     997        /*Cast gauss to GaussPenta*/
     998        _assert_(gauss_in->Enum()==GaussPentaEnum);
     999        GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);
    9881000
    9891001        /*Get L1L2l3 in actual coordinate system: */
     
    10701082/*}}}*/
    10711083/*FUNCTION PentaRef::GetLFSSSA {{{*/
    1072 void PentaRef::GetLFSSSA(IssmDouble* LFS, GaussPenta* gauss){
     1084void PentaRef::GetLFSSSA(IssmDouble* LFS, Gauss* gauss_in){
    10731085        /* Compute L  matrix. L=[L1 L2 L3] where Li is square and of size numdof.
    10741086         * For node i, Li can be expressed in the actual coordinate system
     
    10831095        int num_dof=3;
    10841096        IssmDouble L1L2l3[NUMNODESP1_2d];
     1097
     1098        /*Cast gauss to GaussPenta*/
     1099        _assert_(gauss_in->Enum()==GaussPentaEnum);
     1100        GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);
    10851101
    10861102        /*Get L1L2l3 in actual coordinate system: */
     
    11071123/*}}}*/
    11081124/*FUNCTION PentaRef::GetLprimeFSSSA {{{*/
    1109 void PentaRef::GetLprimeFSSSA(IssmDouble* LprimeFS, IssmDouble* xyz_list, GaussPenta* gauss){
     1125void PentaRef::GetLprimeFSSSA(IssmDouble* LprimeFS, IssmDouble* xyz_list, Gauss* gauss_in){
    11101126        /* Compute Lprime  matrix. Lprime=[Lp1 Lp2 Lp3] where Lpi is square and of size numdof.
    11111127         * For node i, Lpi can be expressed in the actual coordinate system
     
    11211137        IssmDouble dbasis[3][NUMNODESP1];
    11221138
     1139        /*Cast gauss to GaussPenta*/
     1140        _assert_(gauss_in->Enum()==GaussPentaEnum);
     1141        GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);
     1142
    11231143        /*Get L1L2l3 in actual coordinate system: */
    11241144        L1L2l3[0]=gauss->coord1*(1-gauss->coord4)/2.0;
     
    11411161/*}}}*/
    11421162/*FUNCTION PentaRef::GetJacobian {{{*/
    1143 void PentaRef::GetJacobian(IssmDouble* J, IssmDouble* xyz_list,GaussPenta* gauss){
     1163void PentaRef::GetJacobian(IssmDouble* J, IssmDouble* xyz_list,Gauss* gauss_in){
    11441164        /*The Jacobian is constant over the element, discard the gaussian points.
    11451165         * J is assumed to have been allocated of size NDOF2xNDOF2.*/
     
    11501170        IssmDouble y1,y2,y3,y4,y5,y6;
    11511171        IssmDouble z1,z2,z3,z4,z5,z6;
     1172
     1173        /*Cast gauss to GaussPenta*/
     1174        _assert_(gauss_in->Enum()==GaussPentaEnum);
     1175        GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);
    11521176
    11531177        /*Figure out xi,eta and zi (parametric coordinates), for this gaussian point: */
     
    11941218/*}}}*/
    11951219/*FUNCTION PentaRef::GetJacobianDeterminant {{{*/
    1196 void PentaRef::GetJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,GaussPenta* gauss){
     1220void PentaRef::GetJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,Gauss* gauss){
    11971221        /*On a penta, Jacobian varies according to coordinates. We need to get the Jacobian, and take
    11981222         * the determinant of it: */
     
    12091233/*}}}*/
    12101234/*FUNCTION PentaRef::GetTriaJacobianDeterminant{{{*/
    1211 void PentaRef::GetTriaJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,GaussPenta* gauss){
     1235void PentaRef::GetTriaJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,Gauss* gauss){
    12121236        /*The Jacobian determinant is constant over the element, discard the gaussian points.
    12131237         * J is assumed to have been allocated of size NDOF2xNDOF2.*/
     
    12291253/*}}}*/
    12301254/*FUNCTION PentaRef::GetSegmentJacobianDeterminant{{{*/
    1231 void PentaRef::GetSegmentJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,GaussPenta* gauss){
     1255void PentaRef::GetSegmentJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,Gauss* gauss){
    12321256        /*The Jacobian determinant is constant over the element, discard the gaussian points.
    12331257         * J is assumed to have been allocated of size NDOF2xNDOF2.*/
     
    12461270/*}}}*/
    12471271/*FUNCTION PentaRef::GetJacobianInvert {{{*/
    1248 void PentaRef::GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,GaussPenta* gauss){
     1272void PentaRef::GetJacobianInvert(IssmDouble* Jinv, IssmDouble* xyz_list,Gauss* gauss){
    12491273
    12501274        /*Jacobian*/
     
    12591283/*}}}*/
    12601284/*FUNCTION PentaRef::GetNodalFunctions{{{*/
    1261 void PentaRef::GetNodalFunctions(IssmDouble* basis,GaussPenta* gauss){
     1285void PentaRef::GetNodalFunctions(IssmDouble* basis,Gauss* gauss_in){
    12621286        /*This routine returns the values of the nodal functions  at the gaussian point.*/
    12631287
    12641288        _assert_(basis);
     1289
     1290        /*Cast gauss to GaussPenta*/
     1291        _assert_(gauss_in->Enum()==GaussPentaEnum);
     1292        GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);
    12651293
    12661294        /*Get current coordinates in reference element*/
     
    13401368/*}}}*/
    13411369/*FUNCTION PentaRef::GetNodalFunctionsVelocity{{{*/
    1342 void PentaRef::GetNodalFunctionsVelocity(IssmDouble* basis,GaussPenta* gauss){
     1370void PentaRef::GetNodalFunctionsVelocity(IssmDouble* basis,Gauss* gauss){
    13431371        /*This routine returns the values of the nodal functions  at the gaussian point.*/
    13441372
     
    13751403/*}}}*/
    13761404/*FUNCTION PentaRef::GetNodalFunctionsPressure{{{*/
    1377 void PentaRef::GetNodalFunctionsPressure(IssmDouble* basis,GaussPenta* gauss){
     1405void PentaRef::GetNodalFunctionsPressure(IssmDouble* basis,Gauss* gauss){
    13781406        /*This routine returns the values of the nodal functions  at the gaussian point.*/
    13791407
     
    14101438/*}}}*/
    14111439/*FUNCTION PentaRef::GetNodalFunctionsDerivatives{{{*/
    1412 void PentaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, GaussPenta* gauss){
     1440void PentaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){
    14131441
    14141442        /*This routine returns the values of the nodal functions derivatives  (with respect to the
     
    14451473/*}}}*/
    14461474/*FUNCTION PentaRef::GetNodalFunctionsDerivativesVelocity{{{*/
    1447 void PentaRef::GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list, GaussPenta* gauss){
     1475void PentaRef::GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){
    14481476        switch(this->element_type){
    14491477                case P1P1Enum:
     
    14781506/*}}}*/
    14791507/*FUNCTION PentaRef::GetNodalFunctionsDerivativesPressure{{{*/
    1480 void PentaRef::GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list, GaussPenta* gauss){
     1508void PentaRef::GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){
    14811509        switch(this->element_type){
    14821510                case P1P1Enum:
     
    15111539/*}}}*/
    15121540/*FUNCTION PentaRef::GetNodalFunctionsDerivativesReference{{{*/
    1513 void PentaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,GaussPenta* gauss){
     1541void PentaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss_in){
    15141542
    15151543        /*This routine returns the values of the nodal functions derivatives  (with respect to the
    15161544         * natural coordinate system) at the gaussian point. */
    15171545
    1518         _assert_(dbasis && gauss);
     1546        _assert_(dbasis && gauss_in);
     1547
     1548        /*Cast gauss to GaussPenta*/
     1549        _assert_(gauss_in->Enum()==GaussPentaEnum);
     1550        GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);
    15191551
    15201552        /*Get current coordinates in reference element*/
     
    17391771/*}}}*/
    17401772/*FUNCTION PentaRef::GetNodalFunctionsMINI{{{*/
    1741 void PentaRef::GetNodalFunctionsMINI(IssmDouble* l1l7, GaussPenta* gauss){
     1773void PentaRef::GetNodalFunctionsMINI(IssmDouble* l1l7, Gauss* gauss_in){
    17421774        /*This routine returns the values of the nodal functions  at the gaussian point.*/
     1775
     1776        /*Cast gauss to GaussPenta*/
     1777        _assert_(gauss_in->Enum()==GaussPentaEnum);
     1778        GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);
    17431779
    17441780        l1l7[0]=gauss->coord1*(1.0-gauss->coord4)/2.0;
     
    17531789/*}}}*/
    17541790/*FUNCTION PentaRef::GetNodalFunctionsMINIDerivatives{{{*/
    1755 void PentaRef::GetNodalFunctionsMINIDerivatives(IssmDouble* dbasismini,IssmDouble* xyz_list, GaussPenta* gauss){
     1791void PentaRef::GetNodalFunctionsMINIDerivatives(IssmDouble* dbasismini,IssmDouble* xyz_list, Gauss* gauss){
    17561792
    17571793        /*This routine returns the values of the nodal functions derivatives  (with respect to the
     
    17831819/*}}}*/
    17841820/*FUNCTION PentaRef::GetNodalFunctionsMINIDerivativesReference{{{*/
    1785 void PentaRef::GetNodalFunctionsMINIDerivativesReference(IssmDouble* dbasis,GaussPenta* gauss){
    1786 
     1821void PentaRef::GetNodalFunctionsMINIDerivativesReference(IssmDouble* dbasis,Gauss* gauss_in){
    17871822        /*This routine returns the values of the nodal functions derivatives  (with respect to the
    17881823         * natural coordinate system) at the gaussian point. */
     1824
     1825        /*Cast gauss to GaussPenta*/
     1826        _assert_(gauss_in->Enum()==GaussPentaEnum);
     1827        GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);
     1828
     1829
    17891830        IssmDouble zeta=gauss->coord4;
    17901831
     
    18201861/*}}}*/
    18211862/*FUNCTION PentaRef::GetNodalFunctionsP1 {{{*/
    1822 void PentaRef::GetNodalFunctionsP1(IssmDouble* basis, GaussPenta* gauss){
     1863void PentaRef::GetNodalFunctionsP1(IssmDouble* basis, Gauss* gauss_in){
    18231864        /*This routine returns the values of the nodal functions  at the gaussian point.*/
     1865
     1866        /*Cast gauss to GaussPenta*/
     1867        _assert_(gauss_in->Enum()==GaussPentaEnum);
     1868        GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);
    18241869
    18251870        basis[0]=gauss->coord1*(1-gauss->coord4)/2.0;
     
    18331878/*}}}*/
    18341879/*FUNCTION PentaRef::GetNodalFunctionsP1Derivatives {{{*/
    1835 void PentaRef::GetNodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list, GaussPenta* gauss){
     1880void PentaRef::GetNodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){
    18361881
    18371882        /*This routine returns the values of the nodal functions derivatives  (with respect to the
     
    18621907/*}}}*/
    18631908/*FUNCTION PentaRef::GetNodalFunctionsP1DerivativesReference {{{*/
    1864 void PentaRef::GetNodalFunctionsP1DerivativesReference(IssmDouble* dbasis,GaussPenta* gauss){
     1909void PentaRef::GetNodalFunctionsP1DerivativesReference(IssmDouble* dbasis,Gauss* gauss_in){
    18651910
    18661911        /*This routine returns the values of the nodal functions derivatives  (with respect to the
    18671912         * natural coordinate system) at the gaussian point. Those values vary along xi,eta,z */
     1913
     1914        /*Cast gauss to GaussPenta*/
     1915        _assert_(gauss_in->Enum()==GaussPentaEnum);
     1916        GaussPenta* gauss = dynamic_cast<GaussPenta*>(gauss_in);
    18681917
    18691918        IssmDouble zeta=gauss->coord4;
     
    18961945/*}}}*/
    18971946/*FUNCTION PentaRef::GetQuadJacobianDeterminant{{{*/
    1898 void PentaRef::GetQuadJacobianDeterminant(IssmDouble* Jdet,IssmDouble xyz_list[4][3],GaussPenta* gauss){
     1947void PentaRef::GetQuadJacobianDeterminant(IssmDouble* Jdet,IssmDouble xyz_list[4][3],Gauss* gauss){
    18991948        /*This routine returns the values of the nodal functions  at the gaussian point.*/
    19001949
     
    19221971/*}}}*/
    19231972/*FUNCTION PentaRef::GetInputValue{{{*/
    1924 void PentaRef::GetInputValue(IssmDouble* pvalue,IssmDouble* plist,GaussPenta* gauss){
     1973void PentaRef::GetInputValue(IssmDouble* pvalue,IssmDouble* plist,Gauss* gauss){
    19251974        /*P1 interpolation on Gauss point*/
    19261975
     
    19371986/*}}}*/
    19381987/*FUNCTION PentaRef::GetInputDerivativeValue{{{*/
    1939 void PentaRef::GetInputDerivativeValue(IssmDouble* p, IssmDouble* plist,IssmDouble* xyz_list, GaussPenta* gauss){
     1988void PentaRef::GetInputDerivativeValue(IssmDouble* p, IssmDouble* plist,IssmDouble* xyz_list, Gauss* gauss){
    19401989        /*From node values of parameter p (p_list[0], p_list[1], p_list[2],
    19411990         * p_list[3], p_list[4] and p_list[4]), return parameter derivative value at
  • issm/trunk-jpl/src/c/classes/Elements/PentaRef.h

    r16233 r16818  
    77#define _PENTAREF_H_
    88
    9 class GaussPenta;
     9class Gauss;
    1010class PentaRef{
    1111
     
    2222
    2323                /*Numerics*/
    24                 void GetNodalFunctions(IssmDouble* basis, GaussPenta* gauss);
    25                 void GetNodalFunctionsVelocity(IssmDouble* basis, GaussPenta* gauss);
    26                 void GetNodalFunctionsPressure(IssmDouble* basis, GaussPenta* gauss);
    27                 void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,GaussPenta* gauss);
    28                 void GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,GaussPenta* gauss);
    29                 void GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list,GaussPenta* gauss);
    30                 void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,GaussPenta* gauss);
    31                 void GetNodalFunctionsP1(IssmDouble* l1l6, GaussPenta* gauss);
    32                 void GetNodalFunctionsMINI(IssmDouble* l1l7, GaussPenta* gauss);
    33                 void GetNodalFunctionsP1Derivatives(IssmDouble* dh1dh6,IssmDouble* xyz_list, GaussPenta* gauss);
    34                 void GetNodalFunctionsMINIDerivatives(IssmDouble* dh1dh7,IssmDouble* xyz_list, GaussPenta* gauss);
    35                 void GetNodalFunctionsP1DerivativesReference(IssmDouble* dl1dl6,GaussPenta* gauss);
    36                 void GetNodalFunctionsMINIDerivativesReference(IssmDouble* dl1dl7,GaussPenta* gauss);
    37                 void GetQuadJacobianDeterminant(IssmDouble*  Jdet, IssmDouble xyz_list[4][3],GaussPenta* gauss);
    38                 void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,GaussPenta* gauss);
    39                 void GetJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,GaussPenta* gauss);
    40                 void GetTriaJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,GaussPenta* gauss);
    41                 void GetSegmentJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,GaussPenta* gauss);
    42                 void GetJacobianInvert(IssmDouble*  Jinv, IssmDouble* xyz_list,GaussPenta* gauss);
    43                 void GetBSSAHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
    44                 void GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
    45                 void GetBHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
    46                 void GetBFSstrainrate(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
    47                 void GetBFS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
    48                 void GetBFSGLS(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
    49                 void GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussPenta* gauss);
    50                 void GetBprimeHO(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
    51                 void GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, GaussPenta* gauss);
    52                 void GetBprimeFSGLS(IssmDouble* B_prime, IssmDouble* xyz_list, GaussPenta* gauss);
    53                 void GetBprimeVert(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
    54                 void GetBAdvec(IssmDouble* B_advec, IssmDouble* xyz_list, GaussPenta* gauss);
    55                 void GetBConduct(IssmDouble* B_conduct, IssmDouble* xyz_list, GaussPenta* gauss);
    56                 void GetBVert(IssmDouble* B, IssmDouble* xyz_list, GaussPenta* gauss);
    57                 void GetBprimeAdvec(IssmDouble* Bprime_advec, IssmDouble* xyz_list, GaussPenta* gauss);
    58                 void GetBHOFriction(IssmDouble* L, GaussPenta* gauss);
    59                 void GetLFS(IssmDouble* LFS, GaussPenta* gauss);
    60                 void GetLprimeFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, GaussPenta* gauss);
    61                 void GetLSSAFS(IssmDouble* LSSAFS, GaussPenta* gauss);
    62                 void GetLprimeSSAFS(IssmDouble* LprimeSSAFS, IssmDouble* xyz_list, GaussPenta* gauss);
    63                 void GetLFSSSA(IssmDouble* LFSSSA, GaussPenta* gauss);
    64                 void GetLprimeFSSSA(IssmDouble* LprimeFSSSA, IssmDouble* xyz_list, GaussPenta* gauss);
    65                 void GetInputValue(IssmDouble* pvalue,IssmDouble* plist, GaussPenta* gauss);
    66                 void GetInputValue(IssmDouble* pvalue,IssmDouble* plist,GaussTria* gauss){_error_("only PentaGauss are supported");};
    67                 void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, GaussPenta* gauss);
    68                 void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, GaussTria* gauss){_error_("only PentaGauss are supported");};
     24                void GetNodalFunctions(IssmDouble* basis, Gauss* gauss);
     25                void GetNodalFunctionsVelocity(IssmDouble* basis, Gauss* gauss);
     26                void GetNodalFunctionsPressure(IssmDouble* basis, Gauss* gauss);
     27                void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
     28                void GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
     29                void GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
     30                void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss);
     31                void GetNodalFunctionsP1(IssmDouble* l1l6, Gauss* gauss);
     32                void GetNodalFunctionsMINI(IssmDouble* l1l7, Gauss* gauss);
     33                void GetNodalFunctionsP1Derivatives(IssmDouble* dh1dh6,IssmDouble* xyz_list, Gauss* gauss);
     34                void GetNodalFunctionsMINIDerivatives(IssmDouble* dh1dh7,IssmDouble* xyz_list, Gauss* gauss);
     35                void GetNodalFunctionsP1DerivativesReference(IssmDouble* dl1dl6,Gauss* gauss);
     36                void GetNodalFunctionsMINIDerivativesReference(IssmDouble* dl1dl7,Gauss* gauss);
     37                void GetQuadJacobianDeterminant(IssmDouble*  Jdet, IssmDouble xyz_list[4][3],Gauss* gauss);
     38                void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,Gauss* gauss);
     39                void GetJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,Gauss* gauss);
     40                void GetTriaJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,Gauss* gauss);
     41                void GetSegmentJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,Gauss* gauss);
     42                void GetJacobianInvert(IssmDouble*  Jinv, IssmDouble* xyz_list,Gauss* gauss);
     43                void GetBSSAHO(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss);
     44                void GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss);
     45                void GetBHO(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss);
     46                void GetBFSstrainrate(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss);
     47                void GetBFS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss);
     48                void GetBFSGLS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss);
     49                void GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss);
     50                void GetBprimeHO(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss);
     51                void GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss);
     52                void GetBprimeFSGLS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss);
     53                void GetBprimeVert(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss);
     54                void GetBAdvec(IssmDouble* B_advec, IssmDouble* xyz_list, Gauss* gauss);
     55                void GetBConduct(IssmDouble* B_conduct, IssmDouble* xyz_list, Gauss* gauss);
     56                void GetBVert(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss);
     57                void GetBprimeAdvec(IssmDouble* Bprime_advec, IssmDouble* xyz_list, Gauss* gauss);
     58                void GetBHOFriction(IssmDouble* L, Gauss* gauss);
     59                void GetLFS(IssmDouble* LFS, Gauss* gauss);
     60                void GetLprimeFS(IssmDouble* LprimeFS, IssmDouble* xyz_list, Gauss* gauss);
     61                void GetLSSAFS(IssmDouble* LSSAFS, Gauss* gauss);
     62                void GetLprimeSSAFS(IssmDouble* LprimeSSAFS, IssmDouble* xyz_list, Gauss* gauss);
     63                void GetLFSSSA(IssmDouble* LFSSSA, Gauss* gauss);
     64                void GetLprimeFSSSA(IssmDouble* LprimeFSSSA, IssmDouble* xyz_list, Gauss* gauss);
     65                void GetInputValue(IssmDouble* pvalue,IssmDouble* plist, Gauss* gauss);
     66                void GetInputDerivativeValue(IssmDouble* pvalues, IssmDouble* plist,IssmDouble* xyz_list, Gauss* gauss);
    6967
    7068                void BasalNodeIndices(int* pnumindices,int** pindices,int finiteelement);
  • issm/trunk-jpl/src/c/classes/Elements/Seg.h

    r16817 r16818  
    138138                Gauss*      NewGaussBase(int order){_error_("not implemented yet");};
    139139                ElementVector* NewElementVector(int approximation_enum){_error_("not implemented yet");};
     140                ElementMatrix* NewElementMatrix(int approximation_enum){_error_("not implemented yet");};
    140141                void           ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not implemented yet");};
     142                void           ViscositySSA(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){_error_("not implemented");};
    141143                #ifdef _HAVE_THERMAL_
    142144                void UpdateBasalConstraintsEnthalpy(void){_error_("not implemented yet");};
     
    178180                void        TransformSolutionCoord(IssmDouble* values,int numnodes,int transformenum){_error_("not implemented yet");};
    179181                void        TransformSolutionCoord(IssmDouble* values,int numnodes,int* transformenum_list){_error_("not implemented yet");};
     182                void        TransformStiffnessMatrixCoord(ElementMatrix* Ke,int transformenum){_error_("not implemented yet");};
     183                void        TransformStiffnessMatrixCoord(ElementMatrix* Ke,int* transformenum_list){_error_("not implemented yet");};
     184                void        TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int transformenum){_error_("not implemented yet");};
     185                void        TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int* transformenum_list){_error_("not implemented yet");};
    180186                void UpdateConstraintsExtrudeFromBase(){_error_("not implemented");};
    181187                void UpdateConstraintsExtrudeFromTop(){_error_("not implemented");};
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r16817 r16818  
    15021502}
    15031503/*}}}*/
    1504 /*FUNCTION Tria::GetStrainRate2d(IssmDouble* epsilon,IssmDouble* xyz_list, GaussTria* gauss, Input* vx_input, Input* vy_input){{{*/
    1505 void Tria::GetStrainRate2d(IssmDouble* epsilon,IssmDouble* xyz_list, GaussTria* gauss, Input* vx_input, Input* vy_input){
     1504/*FUNCTION Tria::GetStrainRate2d(IssmDouble* epsilon,IssmDouble* xyz_list, Gauss* gauss, Input* vx_input, Input* vy_input){{{*/
     1505void Tria::GetStrainRate2d(IssmDouble* epsilon,IssmDouble* xyz_list, Gauss* gauss, Input* vx_input, Input* vy_input){
    15061506        /*Compute the 2d Strain Rate (3 components):
    15071507         * epsilon=[exx eyy exy] */
     
    21942194}
    21952195/*}}}*/
     2196/*FUNCTION Tria::NewElementMatrix{{{*/
     2197ElementMatrix* Tria::NewElementMatrix(int approximation_enum){
     2198        return new ElementMatrix(nodes,this->NumberofNodes(),this->parameters,approximation_enum);
     2199}
     2200/*}}}*/
    21962201/*FUNCTION Tria::NoIceInElement {{{*/
    21972202bool   Tria::NoIceInElement(){
     
    27122717}
    27132718/*}}}*/
    2714 /*FUNCTION Tria::TransformSolutionCoord{{{*/
     2719/*FUNCTION Tria::TransformSolutionCoord(IssmDouble* values,int transformenum){{{*/
    27152720void Tria::TransformSolutionCoord(IssmDouble* values,int transformenum){
    27162721
     
    27192724}
    27202725/*}}}*/
    2721 /*FUNCTION Tria::TransformSolutionCoord{{{*/
     2726/*FUNCTION Tria::TransformSolutionCoord(IssmDouble* values,int* transformenum_list){{{*/
    27222727void Tria::TransformSolutionCoord(IssmDouble* values,int* transformenum_list){
    27232728
     
    27262731}
    27272732/*}}}*/
    2728 /*FUNCTION Tria::TransformLoadVectorCoord{{{*/
     2733/*FUNCTION Tria::TransformLoadVectorCoord(ElementVector* pe,int transformenum){{{*/
    27292734void Tria::TransformLoadVectorCoord(ElementVector* pe,int transformenum){
    27302735
     
    27332738}
    27342739/*}}}*/
    2735 /*FUNCTION Tria::TransformLoadVectorCoord{{{*/
     2740/*FUNCTION Tria::TransformLoadVectorCoord(ElementVector* pe,int* transformenum_list){{{*/
    27362741void Tria::TransformLoadVectorCoord(ElementVector* pe,int* transformenum_list){
    27372742
    27382743        ::TransformLoadVectorCoord(pe,this->nodes,this->NumberofNodes(),transformenum_list);
     2744
     2745}
     2746/*}}}*/
     2747/*FUNCTION Tria::TransformStiffnessMatrixCoord(ElementMatrix* pe,int transformenum){{{*/
     2748void Tria::TransformStiffnessMatrixCoord(ElementMatrix* Ke,int transformenum){
     2749
     2750        ::TransformStiffnessMatrixCoord(Ke,this->nodes,this->NumberofNodes(),transformenum);
    27392751
    27402752}
     
    28842896}
    28852897/*}}}*/
     2898/*FUNCTION Tria::ViscositySSA{{{*/
     2899void Tria::ViscositySSA(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input){
     2900
     2901        /*Intermediaries*/
     2902        IssmDouble viscosity;
     2903        IssmDouble epsilon[3];/* epsilon=[exx,eyy,exy];    */
     2904
     2905        this->GetStrainRate2d(&epsilon[0],xyz_list,gauss,vx_input,vy_input);
     2906        material->GetViscosity2d(&viscosity, &epsilon[0]);
     2907
     2908        /*Assign output pointer*/
     2909        *pviscosity=viscosity;
     2910}
     2911/*}}}*/
    28862912
    28872913#ifdef _HAVE_RESPONSES_
     
    35313557
    35323558        /*Transform Coordinate System*/
    3533         TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list);
     3559        ::TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list);
    35343560
    35353561        /*Clean up and return*/
     
    36043630
    36053631        /*DO NOT Transform Coordinate System: this stiffness matrix is already expressed in tangential coordinates*/
    3606         //TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list);
     3632        //::TransformStiffnessMatrixCoord(Ke,nodes,(vnumnodes+pnumnodes),cs_list);
    36073633
    36083634        /*Clean up and return*/
     
    36843710
    36853711        /*Transform Coordinate System*/
    3686         TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);
     3712        ::TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);
    36873713
    36883714        /*Clean up and return*/
     
    37693795
    37703796        /*Transform Coordinate System*/
    3771         TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);
     3797        ::TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);
    37723798
    37733799        /*Clean up and return*/
     
    42994325
    43004326        /*Transform Coordinate System*/
    4301         TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);
     4327        ::TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);
    43024328
    43034329        /*Clean up and return*/
     
    60166042
    60176043        /*Transform Coordinate System*/
    6018         TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);
     6044        ::TransformStiffnessMatrixCoord(Ke,nodes,numnodes,XYEnum);
    60196045
    60206046        /*Clean up and return*/
  • issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r16817 r16818  
    2222class ElementVector;
    2323class Vertex;
     24class GaussTria;
    2425
    2526#include "../../shared/Exceptions/exceptions.h"
     
    265266                void           GetInputValue(IssmDouble* pvalue,int enum_type);
    266267                void           GetMaterialInputValue(IssmDouble* pvalue,Node* node,int enumtype);
    267                 void           GetStrainRate2d(IssmDouble* epsilon,IssmDouble* xyz_list, GaussTria* gauss, Input* vx_input, Input* vy_input);
     268                void           GetStrainRate2d(IssmDouble* epsilon,IssmDouble* xyz_list,Gauss* gauss, Input* vx_input, Input* vy_input);
    268269                void             InputChangeName(int enum_type,int enum_type_old);
    269270                void             InputUpdateFromSolutionOneDof(IssmDouble* solution,int enum_type);
     
    277278                Gauss*         NewGaussBase(int order){_error_("not implemented yet");};
    278279                ElementVector* NewElementVector(int approximation_enum);
     280                ElementMatrix* NewElementMatrix(int approximation_enum);
    279281                void           NodalFunctions(IssmDouble* basis,Gauss* gauss);
    280282                void           NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
     
    293295                void           TransformSolutionCoord(IssmDouble* values,int numnodes,int transformenum){_error_("not implemented yet");};
    294296                void           TransformSolutionCoord(IssmDouble* values,int numnodes,int* transformenum_list){_error_("not implemented yet");};
     297                void           TransformStiffnessMatrixCoord(ElementMatrix* Ke,int transformenum);
     298                void           TransformStiffnessMatrixCoord(ElementMatrix* Ke,int* transformenum_list){_error_("not implemented yet");};
     299                void           TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int transformenum){_error_("not implemented yet");};
     300                void           TransformStiffnessMatrixCoord(ElementMatrix* Ke,int numnodes,int* transformenum_list){_error_("not implemented yet");};
    295301                void           ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not implemented yet");};
     302                void           ViscositySSA(IssmDouble* pviscosity,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input);
     303
    296304                #ifdef _HAVE_STRESSBALANCE_
    297305                ElementMatrix* CreateKMatrixStressbalanceSSA(void);
  • issm/trunk-jpl/src/c/classes/Elements/TriaRef.cpp

    r16729 r16818  
    5252/*Reference Element numerics*/
    5353/*FUNCTION TriaRef::GetBHydro {{{*/
    54 void TriaRef::GetBHydro(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss){
     54void TriaRef::GetBHydro(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    5555        /*Compute B  matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2.
    5656         * For node i, Bi can be expressed in the actual coordinate system
     
    8181/*}}}*/
    8282/*FUNCTION TriaRef::GetBSSA {{{*/
    83 void TriaRef::GetBSSA(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss){
     83void TriaRef::GetBSSA(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    8484        /*Compute B  matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2.
    8585         * For node i, Bi can be expressed in the actual coordinate system
     
    115115/*}}}*/
    116116/*FUNCTION TriaRef::GetBSSAFS {{{*/
    117 void TriaRef::GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss){
     117void TriaRef::GetBSSAFS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    118118
    119119        /*Compute B  matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2.
     
    150150/*}}}*/
    151151/*FUNCTION TriaRef::GetSegmentBFlux{{{*/
    152 void TriaRef::GetSegmentBFlux(IssmDouble* B,GaussTria* gauss, int index1,int index2){
     152void TriaRef::GetSegmentBFlux(IssmDouble* B,Gauss* gauss, int index1,int index2){
    153153        /*Compute B  matrix. B=[phi1 phi2 -phi3 -phi4]
    154154         *
     
    176176/*}}}*/
    177177/*FUNCTION TriaRef::GetSegmentBprimeFlux{{{*/
    178 void TriaRef::GetSegmentBprimeFlux(IssmDouble* Bprime,GaussTria* gauss, int index1,int index2){
     178void TriaRef::GetSegmentBprimeFlux(IssmDouble* Bprime,Gauss* gauss, int index1,int index2){
    179179        /*Compute Bprime  matrix. Bprime=[phi1 phi2 phi3 phi4]
    180180         *
     
    202202/*}}}*/
    203203/*FUNCTION TriaRef::GetBExtrusion{{{*/
    204 void TriaRef::GetBExtrusion(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss){
     204void TriaRef::GetBExtrusion(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    205205        /*      Compute B  matrix. B=[dh1/dz dh2/dz dh3/dz dh4/dz dh5/dz dh6/dz];
    206206                where hi is the interpolation function for node i.*/
     
    223223/*}}}*/
    224224/*FUNCTION TriaRef::GetBFS {{{*/
    225 void TriaRef::GetBFS(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss){
     225void TriaRef::GetBFS(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    226226        /*Compute B  matrix. B=[Bv1 Bv2 ... Bp1 Bp2 ...] where Bvi is of size 3*NDOF3.
    227227         * For node i, Bvi can be expressed in the actual coordinate system
     
    278278/*}}}*/
    279279/*FUNCTION TriaRef::GetBprimeFS {{{*/
    280 void TriaRef::GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, GaussTria* gauss){
     280void TriaRef::GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss){
    281281        /*      Compute B'  matrix. B'=[B1' B2' B3' B4' B5' B6' Bb'] where Bi' is of size 3*NDOF2.
    282282         *      For node i, Bi' can be expressed in the actual coordinate system
     
    333333/*}}}*/
    334334/*FUNCTION TriaRef::GetBMasstransport{{{*/
    335 void TriaRef::GetBMasstransport(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss){
     335void TriaRef::GetBMasstransport(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss){
    336336        /*Compute B  matrix. B=[B1 B2 B3] where Bi is of size 3*NDOF2.
    337337         * For node i, Bi can be expressed in the actual coordinate system
     
    362362/*}}}*/
    363363/*FUNCTION TriaRef::GetBprimeSSA {{{*/
    364 void TriaRef::GetBprimeSSA(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss){
     364void TriaRef::GetBprimeSSA(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss){
    365365
    366366        /*Compute B'  matrix. B'=[B1' B2' B3'] where Bi' is of size 3*NDOF2.
     
    397397/*}}}*/
    398398/*FUNCTION TriaRef::GetBprimeSSAFS {{{*/
    399 void TriaRef::GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss){
     399void TriaRef::GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss){
    400400        /*Compute Bprime  matrix. Bprime=[Bprime1 Bprime2 Bprime3] where Bprimei is of size 3*NDOF2.
    401401         * For node i, Bprimei can be expressed in the actual coordinate system
     
    434434/*}}}*/
    435435/*FUNCTION TriaRef::GetBprimeMasstransport{{{*/
    436 void TriaRef::GetBprimeMasstransport(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss){
     436void TriaRef::GetBprimeMasstransport(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss){
    437437        /*Compute B'  matrix. B'=[B1' B2' B3'] where Bi' is of size 3*NDOF2.
    438438         * For node i, Bi' can be expressed in the actual coordinate system
     
    463463/*}}}*/
    464464/*FUNCTION TriaRef::GetBSSAFriction{{{*/
    465 void TriaRef::GetBSSAFriction(IssmDouble* B, IssmDouble* xyz_list,GaussTria* gauss){
     465void TriaRef::GetBSSAFriction(IssmDouble* B, IssmDouble* xyz_list,Gauss* gauss){
    466466        /*Compute B  matrix. B=[B1 B2 B3] where Bi is square and of size 2.
    467467         * For node i, Bi can be expressed in the actual coordinate system
     
    494494/*}}}*/
    495495/*FUNCTION TriaRef::GetLFS{{{*/
    496 void TriaRef::GetLFS(IssmDouble* LFS, GaussTria* gauss){
     496void TriaRef::GetLFS(IssmDouble* LFS, Gauss* gauss){
    497497        /* Compute L  matrix. L=[L1 L2 L3] where Li is square and of size numdof.
    498498         * For node i, Li can be expressed in the actual coordinate system
     
    527527/*}}}*/
    528528/*FUNCTION TriaRef::GetJacobian{{{*/
    529 void TriaRef::GetJacobian(IssmDouble* J, IssmDouble* xyz_list,GaussTria* gauss){
     529void TriaRef::GetJacobian(IssmDouble* J, IssmDouble* xyz_list,Gauss* gauss){
    530530        /*The Jacobian is constant over the element, discard the gaussian points.
    531531         * J is assumed to have been allocated of size NDOF2xNDOF2.*/
     
    545545/*}}}*/
    546546/*FUNCTION TriaRef::GetSegmentJacobianDeterminant{{{*/
    547 void TriaRef::GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss){
     547void TriaRef::GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss){
    548548        /*The Jacobian determinant is constant over the element, discard the gaussian points.
    549549         * J is assumed to have been allocated*/
     
    560560/*}}}*/
    561561/*FUNCTION TriaRef::GetJacobianDeterminant{{{*/
    562 void TriaRef::GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss){
     562void TriaRef::GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss){
    563563        /*The Jacobian determinant is constant over the element, discard the gaussian points.
    564564         * J is assumed to have been allocated of size NDOF2xNDOF2.*/
     
    575575/*}}}*/
    576576/*FUNCTION TriaRef::GetJacobianInvert{{{*/
    577 void TriaRef::GetJacobianInvert(IssmDouble*  Jinv, IssmDouble* xyz_list,GaussTria* gauss){
     577void TriaRef::GetJacobianInvert(IssmDouble*  Jinv, IssmDouble* xyz_list,Gauss* gauss){
    578578
    579579        /*Jacobian*/
     
    588588}
    589589/*}}}*/
    590 /*FUNCTION TriaRef::GetNodalFunctions(IssmDouble* basis,GaussTria* gauss){{{*/
    591 void TriaRef::GetNodalFunctions(IssmDouble* basis,GaussTria* gauss){
     590/*FUNCTION TriaRef::GetNodalFunctions(IssmDouble* basis,Gauss* gauss){{{*/
     591void TriaRef::GetNodalFunctions(IssmDouble* basis,Gauss* gauss){
    592592        /*This routine returns the values of the nodal functions  at the gaussian point.*/
    593593
     
    597597}
    598598/*}}}*/
    599 /*FUNCTION TriaRef::GetNodalFunctions(IssmDouble* basis,GaussTria* gauss,int finiteelement){{{*/
    600 void TriaRef::GetNodalFunctions(IssmDouble* basis,GaussTria* gauss,int finiteelement){
     599/*FUNCTION TriaRef::GetNodalFunctions(IssmDouble* basis,Gauss* gauss,int finiteelement){{{*/
     600void TriaRef::GetNodalFunctions(IssmDouble* basis,Gauss* gauss_in,int finiteelement){
    601601        /*This routine returns the values of the nodal functions  at the gaussian point.*/
    602602
    603603        _assert_(basis);
     604
     605        /*Cast gauss to GaussTria*/
     606        _assert_(gauss_in->Enum()==GaussTriaEnum);
     607        GaussTria* gauss = dynamic_cast<GaussTria*>(gauss_in);
    604608
    605609        switch(finiteelement){
     
    633637/*}}}*/
    634638/*FUNCTION TriaRef::GetNodalFunctionsVelocity{{{*/
    635 void TriaRef::GetNodalFunctionsVelocity(IssmDouble* basis,GaussTria* gauss){
     639void TriaRef::GetNodalFunctionsVelocity(IssmDouble* basis,Gauss* gauss){
    636640        /*This routine returns the values of the nodal functions  at the gaussian point.*/
    637641
     
    668672/*}}}*/
    669673/*FUNCTION TriaRef::GetNodalFunctionsPressure{{{*/
    670 void TriaRef::GetNodalFunctionsPressure(IssmDouble* basis,GaussTria* gauss){
     674void TriaRef::GetNodalFunctionsPressure(IssmDouble* basis,Gauss* gauss){
    671675        /*This routine returns the values of the nodal functions  at the gaussian point.*/
    672676
     
    703707/*}}}*/
    704708/*FUNCTION TriaRef::GetSegmentNodalFunctions{{{*/
    705 void TriaRef::GetSegmentNodalFunctions(IssmDouble* basis,GaussTria* gauss,int index1,int index2){
     709void TriaRef::GetSegmentNodalFunctions(IssmDouble* basis,Gauss* gauss,int index1,int index2){
    706710        /*This routine returns the values of the nodal functions  at the gaussian point.*/
    707711
     
    742746}
    743747/*}}}*/
    744 /*FUNCTION TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, GaussTria* gauss){{{*/
    745 void TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, GaussTria* gauss){
     748/*FUNCTION TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){{{*/
     749void TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){
    746750
    747751        GetNodalFunctionsDerivatives(dbasis,xyz_list,gauss,this->element_type);
     
    749753}
    750754/*}}}*/
    751 /*FUNCTION TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, GaussTria* gauss,int finiteelement){{{*/
    752 void TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, GaussTria* gauss,int finiteelement){
     755/*FUNCTION TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss,int finiteelement){{{*/
     756void TriaRef::GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss,int finiteelement){
    753757
    754758        /*This routine returns the values of the nodal functions derivatives  (with respect to the
     
    781785/*}}}*/
    782786/*FUNCTION TriaRef::GetNodalFunctionsDerivativesPressure{{{*/
    783 void TriaRef::GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list, GaussTria* gauss){
     787void TriaRef::GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){
    784788        switch(this->element_type){
    785789                case P1P1Enum:
     
    814818/*}}}*/
    815819/*FUNCTION TriaRef::GetNodalFunctionsDerivativesVelocity{{{*/
    816 void TriaRef::GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list, GaussTria* gauss){
     820void TriaRef::GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss){
    817821        switch(this->element_type){
    818822                case P1P1Enum:
     
    846850}
    847851/*}}}*/
    848 /*FUNCTION TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,GaussTria* gauss){{{*/
    849 void TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,GaussTria* gauss){
     852/*FUNCTION TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss){{{*/
     853void TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss){
    850854        /*This routine returns the values of the nodal functions derivatives  (with respect to the
    851855         * natural coordinate system) at the gaussian point. */
     
    855859}
    856860/*}}}*/
    857 /*FUNCTION TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,GaussTria* gauss,int finiteelement){{{*/
    858 void TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,GaussTria* gauss,int finiteelement){
     861/*FUNCTION TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss,int finiteelement){{{*/
     862void TriaRef::GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss_in,int finiteelement){
    859863        /*This routine returns the values of the nodal functions derivatives  (with respect to the
    860864         * natural coordinate system) at the gaussian point. */
    861865
    862         _assert_(dbasis && gauss);
     866        _assert_(dbasis && gauss_in);
     867
     868        /*Cast gauss to GaussTria*/
     869        _assert_(gauss_in->Enum()==GaussTriaEnum);
     870        GaussTria* gauss = dynamic_cast<GaussTria*>(gauss_in);
    863871
    864872        switch(finiteelement){
     
    915923/*}}}*/
    916924/*FUNCTION TriaRef::GetInputDerivativeValue{{{*/
    917 void TriaRef::GetInputDerivativeValue(IssmDouble* p, IssmDouble* plist,IssmDouble* xyz_list, GaussTria* gauss){
     925void TriaRef::GetInputDerivativeValue(IssmDouble* p, IssmDouble* plist,IssmDouble* xyz_list, Gauss* gauss){
    918926
    919927        /*From node values of parameter p (plist[0],plist[1],plist[2]), return parameter derivative value at gaussian
     
    947955}
    948956/*}}}*/
    949 /*FUNCTION TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, GaussTria* gauss){{{*/
    950 void TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, GaussTria* gauss){
     957/*FUNCTION TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, Gauss* gauss){{{*/
     958void TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, Gauss* gauss){
    951959
    952960        GetInputValue(p,plist,gauss,this->element_type);
    953961}
    954962/*}}}*/
    955 /*FUNCTION TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, GaussTria* gauss,int finiteelement){{{*/
    956 void TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, GaussTria* gauss,int finiteelement){
     963/*FUNCTION TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, Gauss* gauss,int finiteelement){{{*/
     964void TriaRef::GetInputValue(IssmDouble* p, IssmDouble* plist, Gauss* gauss,int finiteelement){
    957965
    958966        /*Output*/
  • issm/trunk-jpl/src/c/classes/Elements/TriaRef.h

    r16442 r16818  
    77#define _TRIAREF_H_
    88
    9 class GaussTria;
     9class Gauss;
    1010
    1111class TriaRef{
     
    2323
    2424                /*Numerics*/
    25                 void GetBExtrusion(IssmDouble* B_prime, IssmDouble* xyz_list, GaussTria* gauss);
    26                 void GetBFS(IssmDouble* B_prime, IssmDouble* xyz_list, GaussTria* gauss);
    27                 void GetBSSA(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss);
    28                 void GetBSSAFS(IssmDouble* B , IssmDouble* xyz_list, GaussTria* gauss);
    29                 void GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, GaussTria* gauss);
    30                 void GetBprimeSSA(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss);
    31                 void GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss);
    32                 void GetBprimeMasstransport(IssmDouble* Bprime, IssmDouble* xyz_list, GaussTria* gauss);
    33                 void GetBMasstransport(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss);
    34                 void GetBHydro(IssmDouble* B, IssmDouble* xyz_list, GaussTria* gauss);
    35                 void GetBSSAFriction(IssmDouble* L, IssmDouble* xyz_list,GaussTria* gauss);
    36                 void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,GaussTria* gauss);
    37                 void GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss);
    38                 void GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,GaussTria* gauss);
    39                 void GetJacobianInvert(IssmDouble*  Jinv, IssmDouble* xyz_list,GaussTria* gauss);
    40                 void GetLFS(IssmDouble* LFS, GaussTria* gauss);
    41                 void GetNodalFunctions(IssmDouble* basis,GaussTria* gauss);
    42                 void GetNodalFunctions(IssmDouble* basis,GaussTria* gauss,int finiteelement);
    43                 void GetNodalFunctionsVelocity(IssmDouble* basis, GaussTria* gauss);
    44                 void GetNodalFunctionsPressure(IssmDouble* basis, GaussTria* gauss);
    45                 void GetSegmentNodalFunctions(IssmDouble* basis,GaussTria* gauss, int index1,int index2);
    46                 void GetSegmentBFlux(IssmDouble* B,GaussTria* gauss, int index1,int index2);
    47                 void GetSegmentBprimeFlux(IssmDouble* Bprime,GaussTria* gauss, int index1,int index2);
    48                 void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, GaussTria* gauss);
    49                 void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, GaussTria* gauss,int finiteelement);
    50                 void GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,GaussTria* gauss);
    51                 void GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list,GaussTria* gauss);
    52                 void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,GaussTria* gauss);
    53                 void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,GaussTria* gauss,int finiteelement);
    54                 void GetInputValue(IssmDouble* pp, IssmDouble* plist, GaussTria* gauss);
    55                 void GetInputValue(IssmDouble* pp, IssmDouble* plist, GaussTria* gauss,int finiteelement);
    56                 void GetInputDerivativeValue(IssmDouble* pp, IssmDouble* plist,IssmDouble* xyz_list, GaussTria* gauss);
     25                void GetBExtrusion(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss);
     26                void GetBFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss);
     27                void GetBSSA(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss);
     28                void GetBSSAFS(IssmDouble* B , IssmDouble* xyz_list, Gauss* gauss);
     29                void GetBprimeFS(IssmDouble* B_prime, IssmDouble* xyz_list, Gauss* gauss);
     30                void GetBprimeSSA(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss);
     31                void GetBprimeSSAFS(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss);
     32                void GetBprimeMasstransport(IssmDouble* Bprime, IssmDouble* xyz_list, Gauss* gauss);
     33                void GetBMasstransport(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss);
     34                void GetBHydro(IssmDouble* B, IssmDouble* xyz_list, Gauss* gauss);
     35                void GetBSSAFriction(IssmDouble* L, IssmDouble* xyz_list,Gauss* gauss);
     36                void GetJacobian(IssmDouble* J, IssmDouble* xyz_list,Gauss* gauss);
     37                void GetSegmentJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss);
     38                void GetJacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss);
     39                void GetJacobianInvert(IssmDouble*  Jinv, IssmDouble* xyz_list,Gauss* gauss);
     40                void GetLFS(IssmDouble* LFS, Gauss* gauss);
     41                void GetNodalFunctions(IssmDouble* basis,Gauss* gauss);
     42                void GetNodalFunctions(IssmDouble* basis,Gauss* gauss,int finiteelement);
     43                void GetNodalFunctionsVelocity(IssmDouble* basis, Gauss* gauss);
     44                void GetNodalFunctionsPressure(IssmDouble* basis, Gauss* gauss);
     45                void GetSegmentNodalFunctions(IssmDouble* basis,Gauss* gauss, int index1,int index2);
     46                void GetSegmentBFlux(IssmDouble* B,Gauss* gauss, int index1,int index2);
     47                void GetSegmentBprimeFlux(IssmDouble* Bprime,Gauss* gauss, int index1,int index2);
     48                void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss);
     49                void GetNodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list, Gauss* gauss,int finiteelement);
     50                void GetNodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
     51                void GetNodalFunctionsDerivativesPressure(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
     52                void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss);
     53                void GetNodalFunctionsDerivativesReference(IssmDouble* dbasis,Gauss* gauss,int finiteelement);
     54                void GetInputValue(IssmDouble* pp, IssmDouble* plist, Gauss* gauss);
     55                void GetInputValue(IssmDouble* pp, IssmDouble* plist, Gauss* gauss,int finiteelement);
     56                void GetInputDerivativeValue(IssmDouble* pp, IssmDouble* plist,IssmDouble* xyz_list, Gauss* gauss);
    5757
    5858                void NodeOnEdgeIndices(int* pnumindices,int** pindices,int index,int finiteelement);
  • issm/trunk-jpl/src/c/classes/Inputs/BoolInput.h

    r16799 r16818  
    77
    88/*Headers:*/
    9 /*{{{*/
    109#include "./Input.h"
    11 class GaussTria;
    12 class GaussPenta;
    13 /*}}}*/
    1410
    1511class BoolInput: public Input{
     
    5450                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    5551                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
    56                 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    57                 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    58                 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    59                 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    60                 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    61                 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    62                 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
     52                void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     53                void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     54                void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     55                void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     56                void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     57                void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     58                void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
    6359                void ChangeEnum(int newenumtype);
    6460                void SquareMin(IssmDouble* psquaremin, Parameters* parameters);
  • issm/trunk-jpl/src/c/classes/Inputs/ControlInput.cpp

    r16799 r16818  
    235235        values->GetInputValue(pvalue);
    236236}/*}}}*/
    237 /*FUNCTION ControlInput::GetInputValue(Issm* pvalue,Gauss* gauss){{{*/
     237/*FUNCTION ControlInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){{{*/
    238238void ControlInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){
    239239        values->GetInputValue(pvalue,gauss);
    240240}/*}}}*/
    241 /*FUNCTION ControlInput::GetGradientValue(IssmDouble* pvalue,GaussTria* gauss){{{*/
    242 void ControlInput::GetGradientValue(IssmDouble* pvalue,GaussTria* gauss){
    243         gradient->GetInputValue(pvalue,gauss);
    244 }/*}}}*/
    245 /*FUNCTION ControlInput::GetGradientValue(IssmDouble* pvalue,GaussPenta* gauss){{{*/
    246 void ControlInput::GetGradientValue(IssmDouble* pvalue,GaussPenta* gauss){
     241/*FUNCTION ControlInput::GetGradientValue{{{*/
     242void ControlInput::GetGradientValue(IssmDouble* pvalue,Gauss* gauss){
    247243        gradient->GetInputValue(pvalue,gauss);
    248244}/*}}}*/
  • issm/trunk-jpl/src/c/classes/Inputs/ControlInput.h

    r16799 r16818  
    99/*{{{*/
    1010#include "./Input.h"
    11 class GaussTria;
    12 class GaussPenta;
     11class Gauss;
     12class Gauss;
    1313/*}}}*/
    1414
     
    4747                /*}}}*/
    4848                /*numerics: {{{*/
    49                 void GetGradientValue(IssmDouble* pvalue,GaussTria* gauss);
    50                 void GetGradientValue(IssmDouble* pvalue,GaussPenta* gauss);
     49                void GetGradientValue(IssmDouble* pvalue,Gauss* gauss);
    5150                void SetInput(Input* in_input);
    5251                void GetInputValue(bool* pvalue);
     
    6059                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    6160                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
    62                 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    63                 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    64                 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    65                 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    66                 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    67                 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    68                 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
     61                void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     62                void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     63                void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     64                void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     65                void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     66                void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     67                void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
    6968                void ChangeEnum(int newenumtype){_error_("not implemented yet");};
    7069                void SquareMin(IssmDouble* psquaremin,Parameters* parameters){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Inputs/DatasetInput.h

    r16799 r16818  
    99/*{{{*/
    1010#include "./Input.h"
    11 class GaussTria;
    12 class GaussPenta;
     11class Gauss;
     12class Gauss;
    1313/*}}}*/
    1414
     
    5555                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    5656                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
    57                 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    58                 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    59                 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    60                 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    61                 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    62                 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    63                 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
     57                void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     58                void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     59                void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     60                void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     61                void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     62                void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     63                void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
    6464                void ChangeEnum(int newenumtype){_error_("not implemented yet");};
    6565                void SquareMin(IssmDouble* psquaremin,Parameters* parameters){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.cpp

    r16799 r16818  
    123123void DoubleInput::GetInputValue(IssmDouble* pvalue,Gauss* gauss){*pvalue=this->value;}
    124124/*}}}*/
    125 /*FUNCTION DoubleInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){{{*/
    126 void DoubleInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){
     125/*FUNCTION DoubleInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){{{*/
     126void DoubleInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){
    127127        /*Epsilon is zero as vx is constant over the element*/
    128128        for(int i=0;i<3;i++) epsilonvx[i]=0;
    129129}
    130130/*}}}*/
    131 /*FUNCTION DoubleInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){{{*/
    132 void DoubleInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){
     131/*FUNCTION DoubleInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){{{*/
     132void DoubleInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){
    133133        /*Epsilon is zero as vy is constant over the element*/
    134134        for(int i=0;i<3;i++) epsilonvy[i]=0;
    135135}
    136136/*}}}*/
    137 /*FUNCTION DoubleInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){{{*/
    138 void DoubleInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){
     137/*FUNCTION DoubleInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){{{*/
     138void DoubleInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){
    139139        /*Epsilon is zero as vx is constant over the element*/
    140140        for(int i=0;i<6;i++) epsilonvx[i]=0;
    141141}
    142142/*}}}*/
    143 /*FUNCTION DoubleInput::GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){{{*/
    144 void DoubleInput::GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){
     143/*FUNCTION DoubleInput::GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){{{*/
     144void DoubleInput::GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){
    145145        /*Epsilon is zero as vy is constant over the element*/
    146146        for(int i=0;i<6;i++) epsilonvy[i]=0;
    147147}
    148148/*}}}*/
    149 /*FUNCTION DoubleInput::GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){{{*/
    150 void DoubleInput::GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){
     149/*FUNCTION DoubleInput::GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){{{*/
     150void DoubleInput::GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){
    151151        /*Epsilon is zero as vz is constant over the element*/
    152152        for(int i=0;i<6;i++) epsilonvz[i]=0;
    153153}
    154154/*}}}*/
    155 /*FUNCTION DoubleInput::GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){{{*/
    156 void DoubleInput::GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){
     155/*FUNCTION DoubleInput::GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){{{*/
     156void DoubleInput::GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){
    157157        /*Epsilon is zero as vx is constant over the element*/
    158158        for(int i=0;i<5;i++) epsilonvx[i]=0;
    159159}
    160160/*}}}*/
    161 /*FUNCTION DoubleInput::GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){{{*/
    162 void DoubleInput::GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){
     161/*FUNCTION DoubleInput::GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){{{*/
     162void DoubleInput::GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){
    163163        /*Epsilon is zero as vy is constant over the element*/
    164164        for(int i=0;i<5;i++) epsilonvy[i]=0;
  • issm/trunk-jpl/src/c/classes/Inputs/DoubleInput.h

    r16799 r16818  
    99/*{{{*/
    1010#include "./Input.h"
    11 class GaussTria;
    12 class GaussPenta;
     11class Gauss;
     12class Gauss;
    1313/*}}}*/
    1414
     
    5353                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    5454                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
    55                 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss);
    56                 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss);
    57                 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss);
    58                 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss);
    59                 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss);
    60                 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss);
    61                 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss);
     55                void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss);
     56                void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss);
     57                void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss);
     58                void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss);
     59                void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss);
     60                void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss);
     61                void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss);
    6262                void ChangeEnum(int newenumtype);
    6363                void SquareMin(IssmDouble* psquaremin,Parameters* parameters);
  • issm/trunk-jpl/src/c/classes/Inputs/Input.h

    r16799 r16818  
    1212class Node;
    1313class Gauss;
    14 class GaussTria;
     14class Gauss;
    1515class GaussSeg;
    1616class Parameters;
    17 class GaussPenta;
     17class Gauss;
    1818template <class doubletype> class Vector;
    1919/*}}}*/
     
    3636                virtual void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes)=0;
    3737                virtual void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime)=0;
    38                 virtual void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss)=0;
    39                 virtual void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss)=0;
    40                 virtual void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss)=0;
    41                 virtual void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss)=0;
    42                 virtual void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss)=0;
    43                 virtual void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss)=0;
    44                 virtual void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss)=0;
     38                virtual void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss)=0;
     39                virtual void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss)=0;
     40                virtual void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss)=0;
     41                virtual void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss)=0;
     42                virtual void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss)=0;
     43                virtual void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss)=0;
     44                virtual void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss)=0;
    4545                virtual void ChangeEnum(int newenumtype)=0;
    4646                virtual void Configure(Parameters* parameters)=0;
  • issm/trunk-jpl/src/c/classes/Inputs/IntInput.h

    r16799 r16818  
    99/*{{{*/
    1010#include "./Input.h"
    11 class GaussTria;
    12 class GaussPenta;
     11class Gauss;
     12class Gauss;
    1313/*}}}*/
    1414
     
    5555                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
    5656
    57                 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    58                 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    59                 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    60                 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    61                 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    62                 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    63                 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
     57                void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     58                void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     59                void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     60                void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     61                void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     62                void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     63                void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
    6464                void ChangeEnum(int newenumtype);
    6565                void SquareMin(IssmDouble* psquaremin,Parameters* parameters);
  • issm/trunk-jpl/src/c/classes/Inputs/PentaInput.cpp

    r16799 r16818  
    155155/*}}}*/
    156156/*FUNCTION PentaInput::GetVxStrainRate3d{{{*/
    157 void PentaInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){
     157void PentaInput::GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){
    158158
    159159        /*Intermediary*/
     
    181181/*}}}*/
    182182/*FUNCTION PentaInput::GetVyStrainRate3d{{{*/
    183 void PentaInput::GetVyStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){
     183void PentaInput::GetVyStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){
    184184
    185185        /*Intermediary*/
     
    206206/*}}}*/
    207207/*FUNCTION PentaInput::GetVzStrainRate3d{{{*/
    208 void PentaInput::GetVzStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){
     208void PentaInput::GetVzStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){
    209209
    210210        /*Intermediary*/
     
    231231/*}}}*/
    232232/*FUNCTION PentaInput::GetVxStrainRate3dHO{{{*/
    233 void PentaInput::GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){
     233void PentaInput::GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){
    234234
    235235        int i;
     
    257257/*}}}*/
    258258/*FUNCTION PentaInput::GetVyStrainRate3dHO{{{*/
    259 void PentaInput::GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){
     259void PentaInput::GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){
    260260
    261261        int i;
  • issm/trunk-jpl/src/c/classes/Inputs/PentaInput.h

    r16799 r16818  
    1010#include "./Input.h"
    1111#include "../Elements/PentaRef.h"
    12 class GaussTria;
    13 class GaussPenta;
     12class Gauss;
     13class Gauss;
    1414/*}}}*/
    1515
     
    5454                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
    5555
    56                 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    57                 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    58                 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss);
    59                 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss);
    60                 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss);
    61                 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss);
    62                 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss);
     56                void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     57                void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     58                void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss);
     59                void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss);
     60                void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss);
     61                void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss);
     62                void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss);
    6363                void ChangeEnum(int newenumtype);
    6464
  • issm/trunk-jpl/src/c/classes/Inputs/SegInput.h

    r16799 r16818  
    1111#include "../Elements/SegRef.h"
    1212class GaussSeg;
    13 class GaussPenta;
     13class Gauss;
    1414/*}}}*/
    1515
     
    5454                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");};
    5555                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime){_error_("not implemented yet");};
    56                 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    57                 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    58                 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    59                 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    60                 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    61                 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    62                 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
     56                void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     57                void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     58                void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     59                void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     60                void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     61                void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     62                void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
    6363                void ChangeEnum(int newenumtype){_error_("not implemented yet");};
    6464
  • issm/trunk-jpl/src/c/classes/Inputs/TransientInput.h

    r16799 r16818  
    99/*{{{*/
    1010#include "./Input.h"
    11 class GaussTria;
     11class Gauss;
    1212class Parameters;
    13 class GaussPenta;
     13class Gauss;
    1414/*}}}*/
    1515
     
    5959                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes);
    6060                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime);
    61                 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    62                 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");};
    63                 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    64                 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    65                 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    66                 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    67                 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
     61                void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     62                void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     63                void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     64                void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     65                void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     66                void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     67                void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
    6868                void ChangeEnum(int newenumtype);
    6969
  • issm/trunk-jpl/src/c/classes/Inputs/TriaInput.cpp

    r16799 r16818  
    142142/*}}}*/
    143143/*FUNCTION TriaInput::GetVxStrainRate2d{{{*/
    144 void TriaInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){
     144void TriaInput::GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){
    145145
    146146        /*Intermediary*/
     
    168168/*}}}*/
    169169/*FUNCTION TriaInput::GetVyStrainRate2d{{{*/
    170 void TriaInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){
     170void TriaInput::GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){
    171171
    172172        /*Intermediary*/
  • issm/trunk-jpl/src/c/classes/Inputs/TriaInput.h

    r16799 r16818  
    1010#include "./Input.h"
    1111#include "../Elements/TriaRef.h"
    12 class GaussTria;
    13 class GaussPenta;
     12class Gauss;
     13class Gauss;
    1414/*}}}*/
    1515
     
    5454                void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes);
    5555                void GetInputUpToCurrentTimeAverages(IssmDouble** pvalues, IssmDouble** ptimes, int* pnumtimes, IssmDouble currenttime);
    56                 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss);
    57                 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss);
    58                 void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    59                 void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    60                 void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    61                 void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
    62                 void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");};
     56                void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss);
     57                void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss);
     58                void GetVxStrainRate3d(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     59                void GetVyStrainRate3d(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     60                void GetVzStrainRate3d(IssmDouble* epsilonvz,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     61                void GetVxStrainRate3dHO(IssmDouble* epsilonvx,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
     62                void GetVyStrainRate3dHO(IssmDouble* epsilonvy,IssmDouble* xyz_list, Gauss* gauss){_error_("not implemented yet");};
    6363                void ChangeEnum(int newenumtype);
    6464
Note: See TracChangeset for help on using the changeset viewer.