Changeset 5513


Ignore:
Timestamp:
08/23/10 13:56:13 (15 years ago)
Author:
Mathieu Morlighem
Message:

Added InfinityNorm methods for inputs

Location:
issm/trunk/src/c/objects/Inputs
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Inputs/BoolInput.h

    r5017 r5513  
    6060                void SquareMin(double* psquaremin, bool process_units,Parameters* parameters);
    6161                void ConstrainMin(double minimum){ISSMERROR("not implemented yet");};
     62                double InfinityNorm(void){ISSMERROR("InfinityNorm not implemented for booleans");};
    6263                void Scale(double scale_factor);
    6364                void AXPY(Input* xinput,double scalar);
  • issm/trunk/src/c/objects/Inputs/DoubleInput.h

    r5017 r5513  
    6262                void AXPY(Input* xinput,double scalar);
    6363                void Constrain(double cm_min, double cm_max);
     64                double InfinityNorm(void){ISSMERROR("not implemented yet");};
    6465                void Extrude(void){ISSMERROR("not supported yet");};
    6566                void VerticallyIntegrate(Input* thickness_input);
  • issm/trunk/src/c/objects/Inputs/Input.h

    r5017 r5513  
    3636                virtual void GetVyStrainRate3dPattyn(double* epsilonvy,double* xyz_list, double* gauss)=0;
    3737                virtual void ChangeEnum(int newenumtype)=0;
    38                
    39                 virtual Input* SpawnTriaInput(int* indices)=0;
    40                 virtual Input* PointwiseDivide(Input* inputB)=0;
    41                 virtual ElementResult* SpawnResult(int step, double time)=0;
     38
    4239                virtual void SquareMin(double* psquaremin, bool process_units,Parameters* parameters)=0;
    4340                virtual void ConstrainMin(double minimum)=0;
     41                virtual double InfinityNorm(void)=0;
    4442                virtual void Scale(double scale_factor)=0;
    4543                virtual void AXPY(Input* xinput,double scalar)=0;
     
    4947                virtual void GetVectorFromInputs(Vec vector,int* doflist)=0;
    5048                virtual void GetValuesPtr(double** pvalues,int* pnum_values)=0;
     49               
     50                virtual Input* SpawnTriaInput(int* indices)=0;
     51                virtual Input* PointwiseDivide(Input* inputB)=0;
     52                virtual ElementResult* SpawnResult(int step, double time)=0;
     53
    5154                /*}}}*/
    5255
  • issm/trunk/src/c/objects/Inputs/IntInput.h

    r5017 r5513  
    6363                void AXPY(Input* xinput,double scalar);
    6464                void Constrain(double cm_min, double cm_max);
     65                double InfinityNorm(void){ISSMERROR("InfinityNorm not implemented for integers");};
    6566                void Extrude(void){ISSMERROR("not supported yet");};
    6667                void VerticallyIntegrate(Input* thickness_input){ISSMERROR("not supported yet");};
  • issm/trunk/src/c/objects/Inputs/PentaVertexInput.cpp

    r5103 r5513  
    438438}
    439439/*}}}*/
     440/*FUNCTION PentaVertexInput::InfinityNorm{{{1*/
     441double PentaVertexInput::InfinityNorm(void){
     442
     443        /*Output*/
     444        const int numgrids=6;
     445        double norm=0;
     446
     447        for(int i=0;i<numgrids;i++) if(fabs(values[i])>norm) norm=fabs(values[i]);
     448        return norm;
     449}
     450/*}}}*/
    440451/*FUNCTION PentaVertexInput::Scale{{{1*/
    441452void PentaVertexInput::Scale(double scale_factor){
  • issm/trunk/src/c/objects/Inputs/PentaVertexInput.h

    r5017 r5513  
    6464                void AXPY(Input* xinput,double scalar);
    6565                void Constrain(double cm_min, double cm_max);
     66                double InfinityNorm(void);
    6667                void Extrude(void);
    6768                void VerticallyIntegrate(Input* thickness_input);
  • issm/trunk/src/c/objects/Inputs/TriaVertexInput.cpp

    r5103 r5513  
    290290}
    291291/*}}}*/
     292/*FUNCTION TriaVertexInput::InfinityNorm{{{1*/
     293double TriaVertexInput::InfinityNorm(void){
     294
     295        /*Output*/
     296        double norm=0;
     297        const int numgrids=3;
     298
     299        for(int i=0;i<numgrids;i++) if(fabs(values[i])>norm) norm=fabs(values[i]);
     300        return norm;
     301}
     302/*}}}*/
    292303/*FUNCTION TriaVertexInput::Scale{{{1*/
    293304void TriaVertexInput::Scale(double scale_factor){
  • issm/trunk/src/c/objects/Inputs/TriaVertexInput.h

    r5017 r5513  
    6464                void AXPY(Input* xinput,double scalar);
    6565                void Constrain(double cm_min, double cm_max);
     66                double InfinityNorm(void);
    6667                void Extrude(void){ISSMERROR("not supported yet");};
    6768                void VerticallyIntegrate(Input* thickness_input){ISSMERROR("not supported yet");};
Note: See TracChangeset for help on using the changeset viewer.