Changeset 18922


Ignore:
Timestamp:
12/03/14 21:00:05 (10 years ago)
Author:
seroussi
Message:

CHG: minor reordering Penta.h

File:
1 edited

Legend:

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

    r18884 r18922  
    4343                int     ObjectEnum();
    4444                /*}}}*/
    45                 /*Update virtual functions definitions: {{{*/
    46                 void  InputUpdateFromVector(IssmDouble* vector, int name, int type);
    47                 #ifdef _HAVE_DAKOTA_
    48                 void  InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type);
    49                 void  InputUpdateFromMatrixDakota(IssmDouble* matrix, int nows, int ncols, int name, int type);
    50                 #endif
    51                 void  InputUpdateFromIoModel(int index, IoModel* iomodel);
    52                 /*}}}*/
    53                 /*Element virtual functions definitions: {{{*/
    54                 IssmDouble CharacteristicLength(void){_error_("not implemented yet");};
    55                 void   ComputeBasalStress(Vector<IssmDouble>* sigma_b);
    56                 void   ComputeSigmaNN(){_error_("not implemented yet");};
    57                 void   ComputeStressTensor();
    58                 void   ComputeDeviatoricStressTensor();
    59                 void   StressIntensityFactor();
    60                 void   StrainRateparallel();
    61                 void   StrainRateperpendicular();
    62                 void   CalvingRateLevermann();
    63                 void   Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
    64                 void   ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz);
    65                 int    FiniteElement(void);
    66                 void   FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating);
    67                 void   SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters);
    68                 void   ResetHooks();
    69                 void   Delta18oParameterization(void);
    70                 Penta* GetUpperPenta(void);
    71                 Penta* GetLowerPenta(void);
    72                 Penta* GetSurfacePenta(void);
    73                 Penta* GetBasalPenta(void);
    74                 Element* GetUpperElement(void);
    75                 Element* GetBasalElement(void);
    76                 void        GetLevelsetPositivePart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlynegative,IssmDouble* levelsetvalues){_error_("not implemented yet");};
    77                 void   GetGroundedPart(int* point1,IssmDouble* fraction1, IssmDouble* fraction2,bool* mainlyfloating);
    78                 IssmDouble GetGroundedPortion(IssmDouble* xyz_list);
    79                 int    GetNodeIndex(Node* node);
    80                 int    GetNumberOfNodes(void);
    81                 int    GetNumberOfNodes(int enum_type);
    82                 int    GetNumberOfVertices(void);
    83                 void   GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type);
    84                 void   GetVerticesCoordinatesBase(IssmDouble** pxyz_list);
    85                 void   GetVerticesCoordinatesTop(IssmDouble** pxyz_list);
    86 
    87                 void   InputDepthAverageAtBase(int enum_type,int average_enum_type);
    88                 void   InputScale(int enum_type,IssmDouble scale_factor);
    89                 int    NumberofNodesVelocity(void);
    90                 int    NumberofNodesPressure(void);
    91                 int    VelocityInterpolation();
    92                 int    PressureInterpolation();
    93                 int    TensorInterpolation(){_error_("not implemented yet");};
    94                 bool   IsZeroLevelset(int levelset_enum);
    95                 bool   IsIcefront(void);
    96                 bool   IsFaceOnBoundary(void){_error_("not implemented yet");};
    97                 void   ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum);
    98                 void   GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum);
    99                 void   GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level){_error_("not implemented yet");};
    100                 void   PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm);
    101                 void   ReduceMatrices(ElementMatrix* Ke,ElementVector* pe);
    102                 void   ResetFSBasalBoundaryCondition(void);
    103                 void   SetTemporaryElementType(int element_type_in);
    104            Element* SpawnBasalElement(void);
    105                 Element* SpawnTopElement(void);
    106                 IssmDouble SurfaceArea(void);
    107                 void   Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement);
    108                 int    NodalValue(IssmDouble* pvalue, int index, int natureofdataenum);
    109                 IssmDouble TimeAdapt();
    110                 void   ValueP1OnGauss(IssmDouble* pvalue,IssmDouble* values,Gauss* gauss);
    111                 void   ValueP1DerivativesOnGauss(IssmDouble* dvalue,IssmDouble* values,IssmDouble* xyz_list,Gauss* gauss);
    112                 int    VertexConnectivity(int vertexindex);
    113                 void   VerticalSegmentIndices(int** pindices,int* pnumseg);
    114                 void   ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
    115 
    116                 void   AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part);
    117                 IssmDouble IceVolume(void);
    118                 IssmDouble IceVolumeAboveFloatation(void);
    119                 IssmDouble TotalSmb(void);
    120                 IssmDouble MassFlux(IssmDouble* segment);
    121                 IssmDouble MassFlux(IssmDouble x1,IssmDouble y1, IssmDouble x2, IssmDouble y2,int segment_id);
    122                 void   ElementResponse(IssmDouble* presponse,int response_enum);
    123 
    124                 #ifdef _HAVE_GIA_
    125                 void   GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y);
    126                 #endif
    127 
    128                 void   GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid);
    129                 void   SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index);
    130                 void   ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index);
    131                 void   ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum);
    132                 void   InputControlUpdate(IssmDouble scalar,bool save_parameter);
    133                 IssmDouble Misfit(int modelenum,int observationenum,int weightsenum){_error_("not implemented yet");};
    134                 IssmDouble MisfitArea(int weightsenum){_error_("not implemented yet");};
    135                 IssmDouble Masscon(IssmDouble* levelset){_error_("not implemented yet");};
    136 
    137                 void   PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding);
    138                 int    UpdatePotentialUngrounding(IssmDouble* potential_sheet_ungrounding,Vector<IssmDouble>* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf);
    139                 /*}}}*/
    140                 /*Penta specific routines:{{{*/
     45                /*Penta routines:{{{*/
    14146                void           AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum);
    14247                void           AddInput(int input_enum, IssmDouble* values, int interpolation_enum);
    143                 void             NormalBase(IssmDouble* bed_normal, IssmDouble* xyz_list);
    144                 void           NormalSection(IssmDouble* normal,IssmDouble* xyz_list);
    145                 void             NormalTop(IssmDouble* bed_normal, IssmDouble* xyz_list);
     48                void           AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part);
     49                IssmDouble     CharacteristicLength(void){_error_("not implemented yet");};
     50                void           CalvingRateLevermann();
     51                void           ComputeBasalStress(Vector<IssmDouble>* sigma_b);
     52                void           ComputeDeviatoricStressTensor();
     53                void           ComputeSigmaNN(){_error_("not implemented yet");};
     54                void           ComputeStressTensor();
     55                void           Configure(Elements* elements,Loads* loads,Nodes* nodes,Vertices* vertices,Materials* materials,Parameters* parameters);
     56                void           ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index);
     57                void           ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum);
    14658                ElementMatrix* CreateBasalMassMatrix(void);
     59                void           Delta18oParameterization(void);
     60                void           ElementResponse(IssmDouble* presponse,int response_enum);
     61                void           ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz);
     62                int            FiniteElement(void);
     63                void           FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating);
    14764                void           GetAreaCoordinates(IssmDouble *area_coordinates,IssmDouble* xyz_zero,IssmDouble* xyz_list,int numpoints);
     65                Element*       GetBasalElement(void);
     66                Penta*         GetBasalPenta(void);
    14867                int            GetElementType(void);
     68                void           GetGroundedPart(int* point1,IssmDouble* fraction1, IssmDouble* fraction2,bool* mainlyfloating);
     69                IssmDouble     GetGroundedPortion(IssmDouble* xyz_list);
     70                void           GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum);
    14971                void           GetInputValue(IssmDouble* pvalue,Node* node,int enumtype);
     72                void           GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level){_error_("not implemented yet");};
     73                void           GetLevelsetPositivePart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlynegative,IssmDouble* levelsetvalues){_error_("not implemented yet");};
    15074                Node*          GetNode(int node_number);
     75                int            GetNodeIndex(Node* node);
     76                int            GetNumberOfNodes(void);
     77                int            GetNumberOfNodes(int enum_type);
     78                int            GetNumberOfVertices(void);
     79                Penta*         GetLowerPenta(void);
     80                void           GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type);
     81                Penta*         GetSurfacePenta(void);
     82                Element*       GetUpperElement(void);
     83                Penta*         GetUpperPenta(void);
     84                void           GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid);
     85                void           GetVerticesCoordinatesBase(IssmDouble** pxyz_list);
     86                void           GetVerticesCoordinatesTop(IssmDouble** pxyz_list);
     87                IssmDouble     IceVolume(void);
     88                IssmDouble     IceVolumeAboveFloatation(void);
     89                void           InputControlUpdate(IssmDouble scalar,bool save_parameter);
     90                void           InputDepthAverageAtBase(int enum_type,int average_enum_type);
    15191                void             InputExtrude(int enum_type,int start);
     92                void           InputScale(int enum_type,IssmDouble scale_factor);
     93                void           InputUpdateFromIoModel(int index, IoModel* iomodel);
    15294                void           InputUpdateFromSolutionOneDof(IssmDouble* solutiong,int enum_type);
    15395                void           InputUpdateFromSolutionOneDofCollapsed(IssmDouble* solutiong,int enum_type);
     96                void           InputUpdateFromVector(IssmDouble* vector, int name, int type);
     97                bool           IsFaceOnBoundary(void){_error_("not implemented yet");};
     98                bool           IsIcefront(void);
     99                bool           IsNodeOnShelfFromFlags(IssmDouble* flags);
     100                bool             IsOnBase(void);
    154101                bool             IsOnSurface(void);
    155                 bool             IsOnBase(void);
    156                 bool           IsNodeOnShelfFromFlags(IssmDouble* flags);
     102                bool           IsZeroLevelset(int levelset_enum);
    157103                void           JacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,Gauss* gauss);
     104                void           JacobianDeterminantBase(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss);
    158105                void           JacobianDeterminantLine(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss);
    159106                void           JacobianDeterminantSurface(IssmDouble*  pJdet, IssmDouble* xyz_list,Gauss* gauss);
    160                 void           JacobianDeterminantBase(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss);
    161107                void           JacobianDeterminantTop(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss);
     108                IssmDouble     Masscon(IssmDouble* levelset){_error_("not implemented yet");};
     109                IssmDouble     MassFlux(IssmDouble* segment);
     110                IssmDouble     MassFlux(IssmDouble x1,IssmDouble y1, IssmDouble x2, IssmDouble y2,int segment_id);
     111                IssmDouble     MinEdgeLength(IssmDouble* xyz_list);
     112                IssmDouble     Misfit(int modelenum,int observationenum,int weightsenum){_error_("not implemented yet");};
     113                IssmDouble     MisfitArea(int weightsenum){_error_("not implemented yet");};
    162114                Gauss*         NewGauss(void);
    163115                Gauss*         NewGauss(int order);
     
    169121                Gauss*         NewGaussTop(int order);
    170122                void           NodalFunctions(IssmDouble* basis,Gauss* gauss);
     123                void           NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
     124                void           NodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
     125                void           NodalFunctionsMINIDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
     126                void           NodalFunctionsPressure(IssmDouble* basis,Gauss* gauss);
    171127                void           NodalFunctionsP1(IssmDouble* basis,Gauss* gauss);
     128                void           NodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
    172129                void           NodalFunctionsP2(IssmDouble* basis,Gauss* gauss);
    173                 void           NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
    174                 void           NodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
    175                 void           NodalFunctionsMINIDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
    176                 void           NodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss);
     130                void           NodalFunctionsTensor(IssmDouble* basis,Gauss* gauss);
    177131                void           NodalFunctionsVelocity(IssmDouble* basis,Gauss* gauss);
    178                 void           NodalFunctionsPressure(IssmDouble* basis,Gauss* gauss);
    179                 void           NodalFunctionsTensor(IssmDouble* basis,Gauss* gauss);
    180                 IssmDouble     MinEdgeLength(IssmDouble* xyz_list);
     132                void             NormalBase(IssmDouble* bed_normal, IssmDouble* xyz_list);
     133                void           NormalSection(IssmDouble* normal,IssmDouble* xyz_list);
     134                void             NormalTop(IssmDouble* bed_normal, IssmDouble* xyz_list);
     135                int            NodalValue(IssmDouble* pvalue, int index, int natureofdataenum);
     136                int            NumberofNodesPressure(void);
     137                int            NumberofNodesVelocity(void);
     138                void           PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm);
     139                void           PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding);
     140                int            PressureInterpolation();
     141                void           ReduceMatrices(ElementMatrix* Ke,ElementVector* pe);
     142                void           ResetFSBasalBoundaryCondition(void);
     143                void           ResetHooks();
    181144                void             SetClone(int* minranks);
     145                void           SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index);
     146                void           SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters);
     147                void           SetTemporaryElementType(int element_type_in);
     148           Element*       SpawnBasalElement(void);
     149                Element*       SpawnTopElement(void);
    182150                Tria*            SpawnTria(int index1,int index2,int index3);
    183151                IssmDouble     StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa);
    184 
     152                void           StressIntensityFactor();
     153                void           StrainRateparallel();
     154                void           StrainRateperpendicular();
     155                IssmDouble     SurfaceArea(void);
     156                int            TensorInterpolation(){_error_("not implemented yet");};
     157                IssmDouble     TimeAdapt();
     158                IssmDouble     TotalSmb(void);
     159                void           Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement);
    185160                void           UpdateConstraintsExtrudeFromBase(void);
    186161                void           UpdateConstraintsExtrudeFromTop(void);
     162                int            UpdatePotentialUngrounding(IssmDouble* potential_sheet_ungrounding,Vector<IssmDouble>* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf);
     163                void           ValueP1DerivativesOnGauss(IssmDouble* dvalue,IssmDouble* values,IssmDouble* xyz_list,Gauss* gauss);
     164                void           ValueP1OnGauss(IssmDouble* pvalue,IssmDouble* values,Gauss* gauss);
     165                int            VelocityInterpolation();
     166                int            VertexConnectivity(int vertexindex);
     167                void           VerticalSegmentIndices(int** pindices,int* pnumseg);
     168                void           ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
     169                void           ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum);
     170
     171                #ifdef _HAVE_DAKOTA_
     172                void           InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type);
     173                void           InputUpdateFromMatrixDakota(IssmDouble* matrix, int nows, int ncols, int name, int type);
     174                #endif
     175
     176                #ifdef _HAVE_GIA_
     177                void           GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y);
     178                #endif
    187179                /*}}}*/
    188180};
Note: See TracChangeset for help on using the changeset viewer.