Changeset 16910


Ignore:
Timestamp:
11/24/13 10:22:53 (11 years ago)
Author:
Mathieu Morlighem
Message:

NEW: moving some functions from Tria and Penta to Element.cpp, because these functions do not depend on the type of element

Location:
issm/trunk-jpl/src/c/classes/Elements
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r16907 r16910  
    2323class Matpar;
    2424class Input;
     25class Inputs;
    2526class Gauss;
    2627class ElementVector;
     
    3334class Element: public Object,public Update{
    3435
     36        public:
     37                Inputs   *inputs;
     38                Node    **nodes;
     39
    3540        public:
    36 
    37                 virtual        ~Element(){};
    38 
    39                 virtual bool        AllActive(void)=0;
    40                 virtual bool        AnyActive(void)=0;
     41                /*Constructors/Destructores*/
     42                Element();
     43                ~Element();
     44
     45                /*Functions*/
     46                void   AddInput(Input* input_in);
     47                bool   AllActive(void);
     48                bool   AnyActive(void);
     49                Input* GetInput(int inputenum);
     50
     51                /*Virtual functions*/
     52                virtual void   AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
     53                virtual void   AddInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
     54                virtual void   AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
    4155                virtual IssmDouble CharacteristicLength(void)=0;
    4256                virtual void   Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters)=0;
    4357                virtual void   SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters)=0;
    4458                virtual void   SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int* flagsindices,int set1_enum,int set2_enum)=0;
    45                 virtual void   AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
    46                 virtual void   AddInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
    47                 virtual void   AddInput(Input* input_in)=0;
    48                 virtual void   AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
    4959                virtual ElementMatrix* CreateKMatrix(void)=0;
    5060                virtual void   CreateDVector(Vector<IssmDouble>* df)=0;
     
    114124                virtual void   GetInputListOnVertices(IssmDouble* pvalue,int enumtype)=0;
    115125                virtual void   GetInputListOnVertices(IssmDouble* pvalue,int enumtype,IssmDouble defaultvalue)=0;
    116                 virtual Input* GetInput(int inputenum)=0;
    117126                virtual Input* GetMaterialInput(int inputenum)=0;
    118127                virtual void   GetInputValue(IssmDouble* pvalue,Node* node,int enumtype)=0;
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r16908 r16910  
    2222/*FUNCTION Penta::Penta(){{{*/
    2323Penta::Penta(){
    24 
    25         this->nodes             = NULL;
    2624        this->vertices          = NULL;
    2725        this->material          = NULL;
     
    3432/*FUNCTION Penta::~Penta(){{{*/
    3533Penta::~Penta(){
    36         delete inputs;
    3734        this->parameters=NULL;
    3835}
     
    126123        _assert_(this->inputs);
    127124        this->inputs->AddInput(new PentaInput(input_enum,values,interpolation_enum));
    128 }
    129 /*}}}*/
    130 /*FUNCTION Tria::AddInput{{{*/
    131 void  Penta::AddInput(Input* input_in){
    132 
    133         /*Call inputs method*/
    134         _assert_(this->inputs);
    135         this->inputs->AddInput(input_in);
    136125}
    137126/*}}}*/
     
    13191308int Penta::GetNumberOfVertices(void){
    13201309        return NUMVERTICES;
    1321 }
    1322 /*}}}*/
    1323 /*FUNCTION Penta::GetInput(int inputenum) {{{*/
    1324 Input* Penta::GetInput(int inputenum){
    1325         return inputs->GetInput(inputenum);
    13261310}
    13271311/*}}}*/
  • issm/trunk-jpl/src/c/classes/Elements/Penta.h

    r16907 r16910  
    3535                int          sid;
    3636
    37                 Node       **nodes;                       // set of nodes
    3837                Vertex     **vertices;                    // 6 vertices
    3938                Material    *material;                    // 1 material ice
     
    4241
    4342                Parameters  *parameters;                  //pointer to solution parameters
    44                 Inputs      *inputs;
    4543
    4644                /*Penta constructors and destructor: {{{*/
     
    6866                /*}}}*/
    6967                /*Element virtual functions definitions: {{{*/
    70                 bool        AllActive(void){_error_("not implemented yet");};
    71                 bool        AnyActive(void){_error_("not implemented yet");};
    7268                void   BasalFrictionCreateInput(void);
    7369                IssmDouble CharacteristicLength(void){_error_("not implemented yet");};
     
    209205                void           AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum);
    210206                void           AddInput(int input_enum, IssmDouble* values, int interpolation_enum);
    211                 void           AddInput(Input* input_in);
    212207                void           AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum);
    213208                void             NormalBase(IssmDouble* bed_normal, IssmDouble* xyz_list);
     
    232227                void           GetConnectivityList(int* connectivity);
    233228                int            GetElementType(void);
    234                 Input*         GetInput(int inputenum);
    235229                Input*         GetMaterialInput(int inputenum);
    236230                void           GetInputListOnVertices(IssmDouble* pvalue,int enumtype);
  • issm/trunk-jpl/src/c/classes/Elements/Seg.cpp

    r16876 r16910  
    2121/*FUNCTION Seg::Seg(){{{*/
    2222Seg::Seg(){
    23         this->nodes      = NULL;
    2423        this->vertices   = NULL;
    2524        this->material   = NULL;
     
    4847                        this->material = NULL;
    4948                        this->matpar   = NULL;
    50 
    5149                }
    5250/*}}}*/
    5351/*FUNCTION Seg::~Seg(){{{*/
    5452Seg::~Seg(){
    55         delete inputs;
    5653        this->parameters=NULL;
    5754}
     
    524521}
    525522/*}}}*/
    526 /*FUNCTION Seg::GetInput(int inputenum) {{{*/
    527 Input* Seg::GetInput(int inputenum){
    528         return inputs->GetInput(inputenum);
    529 }
    530 /*}}}*/
    531523/*FUNCTION Seg::GetNumberOfNodes;{{{*/
    532524int Seg::GetNumberOfNodes(void){
  • issm/trunk-jpl/src/c/classes/Elements/Seg.h

    r16907 r16910  
    3333                int          sid;
    3434
    35                 Node       **nodes;                       // nodes
    3635                Vertex     **vertices;                    // 3 vertices
    3736                Material    *material;                    // 1 material ice
     
    3938
    4039                Parameters  *parameters;                  //pointer to solution parameters
    41                 Inputs      *inputs;
    4240
    4341                /*Seg constructors, destructors {{{*/
     
    6765                /*}}}*/
    6866                /*Element virtual functions definitions: {{{*/
    69                 bool        AllActive(void){_error_("not implemented yet");};
    70                 bool        AnyActive(void){_error_("not implemented yet");};
    7167                void        AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
    7268                void        AddInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
    73                 void        AddInput(Input* input_in){_error_("not implemented yet");};
    7469                void        AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
    7570                IssmDouble  CharacteristicLength(void){_error_("not implemented yet");};
     
    145140                void        GetGroundedPart(int* point1,IssmDouble* fraction1, IssmDouble* fraction2,bool* mainlyfloating){_error_("not implemented yet");};
    146141                IssmDouble  GetGroundedPortion(IssmDouble* xyz_list){_error_("not implemented yet");};
    147                 Input*      GetInput(int inputenum);
    148142                Input*      GetMaterialInput(int inputenum){_error_("not implemented yet");};
    149143                void        GetInputListOnVertices(IssmDouble* pvalue,int enumtype){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r16900 r16910  
    2626/*FUNCTION Tria::Tria(){{{*/
    2727Tria::Tria(){
    28         this->nodes      = NULL;
    2928        this->vertices   = NULL;
    3029        this->material   = NULL;
     
    3231        this->inputs     = NULL;
    3332        this->parameters = NULL;
    34 
    3533}
    3634/*}}}*/
     
    5452                this->material = NULL;
    5553                this->matpar   = NULL;
    56 
    5754}
    5855/*}}}*/
    5956/*FUNCTION Tria::~Tria(){{{*/
    6057Tria::~Tria(){
    61         delete inputs;
    6258        this->parameters=NULL;
    6359}
     
    189185        _assert_(this->inputs);
    190186        this->inputs->AddInput(new TriaInput(input_enum,values,interpolation_enum));
    191 }
    192 /*}}}*/
    193 /*FUNCTION Tria::AddInput{{{*/
    194 void  Tria::AddInput(Input* input_in){
    195 
    196         /*Call inputs method*/
    197         _assert_(this->inputs);
    198         this->inputs->AddInput(input_in);
    199187}
    200188/*}}}*/
     
    13951383int Tria::GetNumberOfVertices(void){
    13961384        return NUMVERTICES;
    1397 }
    1398 /*}}}*/
    1399 /*FUNCTION Tria::GetInput(int inputenum) {{{*/
    1400 Input* Tria::GetInput(int inputenum){
    1401         return inputs->GetInput(inputenum);
    14021385}
    14031386/*}}}*/
     
    64006383
    64016384#ifdef _HAVE_HYDROLOGY_
    6402 /*FUNCTION Tria::AllActive{{{*/
    6403 bool Tria::AllActive(void){
    6404 
    6405         /*Intermediaries*/
    6406         const int  numnodes = NUMVERTICES;
    6407 
    6408         for(int i=0;i<numnodes;i++){
    6409                 if(!this->nodes[i]->IsActive()) return false;
    6410         }
    6411 
    6412         return true;
    6413 }
    6414 /*}}}*/
    6415 /*FUNCTION Tria::AnyActive{{{*/
    6416 bool Tria::AnyActive(void){
    6417 
    6418         /*Intermediaries*/
    6419         const int  numnodes = NUMVERTICES;
    6420 
    6421         for(int i=0;i<numnodes;i++){
    6422                 if(this->nodes[i]->IsActive()) return true;
    6423         }
    6424 
    6425         return false;
    6426 }/*}}}*/
    64276385/*FUNCTION Tria::CreateHydrologyWaterVelocityInput {{{*/
    64286386void Tria::CreateHydrologyWaterVelocityInput(void){
  • issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r16907 r16910  
    3535                int          sid;
    3636
    37                 Node       **nodes;                       // nodes
    3837                Vertex     **vertices;                    // 3 vertices
    3938                Material    *material;                    // 1 material ice
     
    4140
    4241                Parameters  *parameters;                  //pointer to solution parameters
    43                 Inputs      *inputs;
    4442
    4543                /*Tria constructors, destructors {{{*/
     
    6765                /*}}}*/
    6866                /*Element virtual functions definitions: {{{*/
    69                 bool        AllActive(void);
    70                 bool        AnyActive(void);
    7167                IssmDouble  CharacteristicLength(void);
    7268                void        ComputeBasalStress(Vector<IssmDouble>* sigma_b);
     
    220216                void           AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum);
    221217                void           AddInput(int input_enum, IssmDouble* values, int interpolation_enum);
    222                 void           AddInput(Input* input_in);
    223218                void           AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum);
    224219                ElementMatrix* CreateKMatrix(void);
     
    273268                void           NormalBase(IssmDouble* normal,IssmDouble* xyz_list);
    274269                IssmDouble     GetMaterialParameter(int enum_in);
    275                 Input*         GetInput(int inputenum);
    276270                Input*         GetMaterialInput(int inputenum);
    277271                void           GetInputListOnVertices(IssmDouble* pvalue,int enumtype);
Note: See TracChangeset for help on using the changeset viewer.