Changeset 18388


Ignore:
Timestamp:
08/14/14 13:35:15 (11 years ago)
Author:
Mathieu Morlighem
Message:

NEW: extended penlaty method to all Spc classes

Location:
issm/trunk-jpl/src/c/classes/Constraints
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/c/classes/Constraints/Constraint.h

    r18344 r18388  
    2323                virtual void PenaltyDofAndValue(int* dof,IssmDouble* value,Nodes* nodes,Parameters* parameters)=0;
    2424                virtual bool InAnalysis(int analysis_type)=0;
     25                virtual void ActivatePenaltyMethod(void)=0;
    2526
    2627};
  • TabularUnified issm/trunk-jpl/src/c/classes/Constraints/Constraints.cpp

    r18064 r18388  
    1212
    1313#include "./Constraints.h"
     14#include "./Constraint.h"
    1415#include "../../shared/shared.h"
    1516#include "../../toolkits/toolkits.h"
     
    3435}
    3536/*}}}*/
     37void Constraints::ActivatePenaltyMethod(int in_analysis){/*{{{*/
     38
     39        for(int i=0;i<this->Size();i++){
     40                Constraint* constraint=(Constraint*)this->GetObjectByOffset(i);
     41                if(constraint->InAnalysis(in_analysis)){
     42                        constraint->ActivatePenaltyMethod();
     43                }
     44        }
     45
     46}
     47/*}}}*/
  • TabularUnified issm/trunk-jpl/src/c/classes/Constraints/Constraints.h

    r18064 r18388  
    2727
    2828                /*numerics*/
    29                 int   NumberOfConstraints(void);
     29                int  NumberOfConstraints(void);
     30                void ActivatePenaltyMethod(int in_analysis);
    3031
    3132};
  • TabularUnified issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.cpp

    r18237 r18388  
    2020SpcDynamic::SpcDynamic(int spc_sid,int spc_nodeid, int spc_dof,int spc_analysis_type){/*{{{*/
    2121
    22         sid=spc_sid;
    23         nodeid=spc_nodeid;
    24         dof=spc_dof;
    25         value=0;
    26         analysis_type=spc_analysis_type;
    27         isset=false;
     22        sid           = spc_sid;
     23        nodeid        = spc_nodeid;
     24        dof           = spc_dof;
     25        value         = 0;
     26        analysis_type = spc_analysis_type;
     27        isset         = false;
     28        penalty       = false;
    2829
    2930        return;
     
    7879
    7980/*Constraint virtual functions definitions: */
     81void SpcDynamic::ActivatePenaltyMethod(void){/*{{{*/
     82        this->penalty = true;
     83}
     84/*}}}*/
    8085bool SpcDynamic::InAnalysis(int in_analysis_type){/*{{{*/
    8186        if (in_analysis_type==this->analysis_type) return true;
  • TabularUnified issm/trunk-jpl/src/c/classes/Constraints/SpcDynamic.h

    r18344 r18388  
    1414
    1515        private:
    16                 int     sid; /*! id, to track it*/
    17                 int     nodeid; /*!node id*/
    18                 int dof; /*!component*/
    19                 IssmDouble value; /*value*/
    20                 bool isset;
    21                 int analysis_type;
     16                int        sid;             /*! id, to track it */
     17                int        nodeid;          /*!node id          */
     18                int        dof;             /*!component        */
     19                IssmDouble value;           /*value             */
     20                bool       isset;
     21                int        analysis_type;
     22                bool       penalty;         /*Is this a penalty constraint */
    2223
    2324        public:
    2425
    25                 /*SpcDynamic constructors, destructors:{{{*/
     26                /*SpcDynamic constructors, destructors*/
    2627                SpcDynamic();
    2728                SpcDynamic(int sid,int nodeid, int dof,int analysis_type);
    2829                ~SpcDynamic();
    29                 /*}}}*/
    30                 /*Object virtual functions definitions:{{{ */
    31                 void  Echo();
    32                 void  DeepEcho();
    33                 int   Id();
    34                 int   ObjectEnum();
    35                 Object* copy();
    36                 /*}}}*/
    37                 /*Constraint virtual functions definitions: {{{*/
    38                 void   ConstrainNode(Nodes* nodes,Parameters* parameters);
    39                 bool   InAnalysis(int analysis_type);
    40                 void   PenaltyDofAndValue(int* dof,IssmDouble* value,Nodes* nodes,Parameters* parameters){_error_("not implemented yet");};
    41                 /*}}}*/
    42                 /*SpcDynamic management:{{{ */
    43                 int    GetNodeId();
    44                 int    GetDof();
     30
     31                /*Object virtual functions definitions*/
     32                void    Echo();
     33                void    DeepEcho();
     34                int     Id();
     35                int     ObjectEnum();
     36                Object *copy();
     37
     38                /*Constraint virtual functions definitions*/
     39                void ConstrainNode(Nodes* nodes,Parameters* parameters);
     40                bool InAnalysis(int analysis_type);
     41                void ActivatePenaltyMethod(void);
     42                void PenaltyDofAndValue(int* dof,IssmDouble* value,Nodes* nodes,Parameters* parameters){_error_("not implemented yet");};
     43
     44                /*SpcDynamic management*/
     45                int        GetNodeId();
     46                int        GetDof();
    4547                IssmDouble GetValue();
    46                 void   SetDynamicConstraint(Nodes* nodes,IssmDouble *yg_serial);
    47                 /*}}}*/
     48                void       SetDynamicConstraint(Nodes  *nodes,IssmDouble *yg_serial);
    4849
    4950};
  • TabularUnified issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.cpp

    r18237 r18388  
    2525        value         = spc_value;
    2626        analysis_type = spc_analysis_type;
     27        penalty       = false;
    2728
    2829        return;
     
    8081
    8182/*Constraint virtual functions definitions: */
     83void SpcStatic::ActivatePenaltyMethod(void){/*{{{*/
     84           this->penalty = true;
     85}
     86/*}}}*/
    8287bool SpcStatic::InAnalysis(int in_analysis_type){/*{{{*/
    8388        if (in_analysis_type==this->analysis_type) return true;
  • TabularUnified issm/trunk-jpl/src/c/classes/Constraints/SpcStatic.h

    r18344 r18388  
    1414
    1515        private:
    16                 int     sid; /*! id, to track it*/
    17                 int     nodeid; /*!node id*/
    18                 int dof; /*!component*/
    19                 IssmDouble value; /*value*/
    20                 int analysis_type;
     16                int        sid;             /*! id, to track it */
     17                int        nodeid;          /*!node id          */
     18                int        dof;             /*!component        */
     19                IssmDouble value;           /*value             */
     20                int        analysis_type;
     21                bool       penalty;         /*Is this a penalty constraint */
    2122
    2223        public:
     
    3536                /*}}}*/
    3637                /*Constraint virtual functions definitions: {{{*/
     38                void ActivatePenaltyMethod(void);
    3739                void   ConstrainNode(Nodes* nodes,Parameters* parameters);
    3840                bool   InAnalysis(int analysis_type);
  • TabularUnified issm/trunk-jpl/src/c/classes/Constraints/SpcTransient.cpp

    r18344 r18388  
    2828SpcTransient::SpcTransient(int spc_sid,int spc_nodeid, int spc_dof,int spc_nsteps, IssmDouble* spc_times, IssmDouble* spc_values,int spc_analysis_type){/*{{{*/
    2929
    30         penalty= false;
    31         sid    = spc_sid;
    32         nodeid = spc_nodeid;
    33         dof    = spc_dof;
    34         nsteps = spc_nsteps;
     30        penalty = false;
     31        sid     = spc_sid;
     32        nodeid  = spc_nodeid;
     33        dof     = spc_dof;
     34        nsteps  = spc_nsteps;
    3535        if(spc_nsteps){
    3636                values = xNew<IssmDouble>(spc_nsteps);
     
    8787
    8888/*Constraint virtual functions definitions:*/
     89void SpcTransient::ActivatePenaltyMethod(void){/*{{{*/
     90           this->penalty = true;
     91}
     92/*}}}*/
    8993bool SpcTransient::InAnalysis(int in_analysis_type){/*{{{*/
    9094
  • TabularUnified issm/trunk-jpl/src/c/classes/Constraints/SpcTransient.h

    r18344 r18388  
    1414
    1515        private:
    16                 bool        penalty;         /*Is this a penalty constraint */
    1716                int         sid;             /* id, to track it             */
    1817                int         nodeid;          /*node id                      */
     
    2221                int         nsteps;          /*number of time steps         */
    2322                int         analysis_type;
     23                bool        penalty;         /*Is this a penalty constraint */
    2424
    2525        public:
     
    3838                /*}}}*/
    3939                /*Constraint virtual functions definitions: {{{*/
     40                void ActivatePenaltyMethod(void);
    4041                void   ConstrainNode(Nodes* nodes,Parameters* parameters);
    4142                bool   InAnalysis(int analysis_type);
Note: See TracChangeset for help on using the changeset viewer.