Ignore:
Timestamp:
03/20/14 05:57:57 (11 years ago)
Author:
Mathieu Morlighem
Message:

CHG: working on MINI elements FS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp

    r17491 r17493  
    238238int Tetra::GetNumberOfVertices(void){
    239239        return NUMVERTICES;
     240}
     241/*}}}*/
     242/*FUNCTION Tetra::GetNumberOfNodesPressure         THIS ONE (and corresponding TetraRef function){{{*/
     243int Tetra::GetNumberOfNodesPressure(void){
     244        return this->NumberofNodesPressure();
     245}
     246/*}}}*/
     247/*FUNCTION Tetra::GetNumberOfNodesVelocity;{{{*/
     248int Tetra::GetNumberOfNodesVelocity(void){
     249        return this->NumberofNodesVelocity();
    240250}
    241251/*}}}*/
     
    548558}
    549559/*}}}*/
     560/*FUNCTION Tetra::NodalFunctionsVelocity{{{*/
     561void Tetra::NodalFunctionsVelocity(IssmDouble* basis, Gauss* gauss){
     562
     563        _assert_(gauss->Enum()==GaussTetraEnum);
     564        this->GetNodalFunctionsVelocity(basis,(GaussTetra*)gauss);
     565
     566}
     567/*}}}*/
     568/*FUNCTION Tetra::NodalFunctionsPressure{{{*/
     569void Tetra::NodalFunctionsPressure(IssmDouble* basis, Gauss* gauss){
     570
     571        _assert_(gauss->Enum()==GaussTetraEnum);
     572        this->GetNodalFunctionsPressure(basis,(GaussTetra*)gauss);
     573
     574}
     575/*}}}*/
    550576/*FUNCTION Tetra::NodalFunctionsDerivatives{{{*/
    551577void Tetra::NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){
     
    553579        _assert_(gauss->Enum()==GaussTetraEnum);
    554580        this->GetNodalFunctionsDerivatives(dbasis,xyz_list,(GaussTetra*)gauss);
     581
     582}
     583/*}}}*/
     584/*FUNCTION Tetra::NodalFunctionsDerivativesVelocity{{{*/
     585void Tetra::NodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){
     586
     587        _assert_(gauss->Enum()==GaussTetraEnum);
     588        this->GetNodalFunctionsDerivativesVelocity(dbasis,xyz_list,(GaussTetra*)gauss);
    555589
    556590}
     
    575609
    576610        for(int i=0;i<3;i++) normal[i]=normal[i]/norm;
     611}
     612/*}}}*/
     613/*FUNCTION Tetra::NumberofNodesPressure{{{*/
     614int Tetra::NumberofNodesPressure(void){
     615        return TetraRef::NumberofNodesPressure();
     616}
     617/*}}}*/
     618/*FUNCTION Tetra::NumberofNodesVelocity{{{*/
     619int Tetra::NumberofNodesVelocity(void){
     620        return TetraRef::NumberofNodesVelocity();
    577621}
    578622/*}}}*/
     
    752796                        tetra_node_ids[9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+5]+1;
    753797                        break;
     798                case MINIEnum: case MINIcondensedEnum:
     799                        numnodes         = 9;
     800                        tetra_node_ids   = xNew<int>(numnodes);
     801                        tetra_node_ids[0]=iomodel->nodecounter+iomodel->elements[4*index+0];
     802                        tetra_node_ids[1]=iomodel->nodecounter+iomodel->elements[4*index+1];
     803                        tetra_node_ids[2]=iomodel->nodecounter+iomodel->elements[4*index+2];
     804                        tetra_node_ids[3]=iomodel->nodecounter+iomodel->elements[4*index+3];
     805                        tetra_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+index+1;
     806
     807                        tetra_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[4*index+0];
     808                        tetra_node_ids[6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[4*index+1];
     809                        tetra_node_ids[7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[4*index+2];
     810                        tetra_node_ids[8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofelements+iomodel->elements[4*index+3];
     811                        break;
     812                        numnodes        = 14;
     813                        tetra_node_ids   = xNew<int>(numnodes);
     814                        tetra_node_ids[0]=iomodel->nodecounter+iomodel->elements[4*index+0];
     815                        tetra_node_ids[1]=iomodel->nodecounter+iomodel->elements[4*index+1];
     816                        tetra_node_ids[2]=iomodel->nodecounter+iomodel->elements[4*index+2];
     817                        tetra_node_ids[3]=iomodel->nodecounter+iomodel->elements[4*index+3];
     818                        tetra_node_ids[4]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+0]+1;
     819                        tetra_node_ids[5]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+1]+1;
     820                        tetra_node_ids[6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+2]+1;
     821                        tetra_node_ids[7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+3]+1;
     822                        tetra_node_ids[8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+4]+1;
     823                        tetra_node_ids[9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[6*index+5]+1;
     824
     825                        tetra_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[4*index+0];
     826                        tetra_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[4*index+1];
     827                        tetra_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[4*index+2];
     828                        tetra_node_ids[13]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->numberofedges+iomodel->elements[4*index+3];
     829                        break;
    754830                default:
    755831                        _error_("Finite element "<<EnumToStringx(finiteelement_type)<<" not supported yet");
Note: See TracChangeset for help on using the changeset viewer.