Ice Sheet System Model  4.18
Code documentation
Public Member Functions | Data Fields
Seg Class Reference

#include <Seg.h>

Inheritance diagram for Seg:
Element ElementHook SegRef Object

Public Member Functions

 Seg ()
 
 Seg (int seg_id, int seg_sid, int seg_lid, IoModel *iomodel, int nummodels)
 
 ~Seg ()
 
Objectcopy ()
 
void Marshall (char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
 
int ObjectEnum ()
 
void AverageOntoPartition (Vector< IssmDouble > *partition_contributions, Vector< IssmDouble > *partition_areas, IssmDouble *vertex_response, IssmDouble *qmu_part)
 
void CalvingRateLevermann (void)
 
IssmDouble CharacteristicLength (void)
 
void ComputeDeviatoricStressTensor ()
 
void ComputeEsaStrainAndVorticity ()
 
void ComputeSigmaNN ()
 
void ComputeStressTensor ()
 
void Configure (Elements *elements, Loads *loads, Nodes *nodesin, Vertices *verticesin, Materials *materials, Parameters *parameters, Inputs2 *inputs2in)
 
void ControlInputSetGradient (IssmDouble *gradient, int enum_type, int control_index, int offset, int N, int M)
 
void ControlInputSetGradient (IssmDouble *gradient, int enum_type, int control_index)
 
void ControlToVectors (Vector< IssmPDouble > *vector_control, Vector< IssmPDouble > *vector_gradient, int control_enum)
 
void ElementResponse (IssmDouble *presponse, int response_enum)
 
void ElementSizes (IssmDouble *hx, IssmDouble *hy, IssmDouble *hz)
 
int FiniteElement (void)
 
IssmDouble FloatingArea (bool scaled)
 
void FSContactMigration (Vector< IssmDouble > *vertexgrounded, Vector< IssmDouble > *vertexfloating)
 
ElementGetBasalElement (void)
 
int GetElementType (void)
 
void GetGroundedPart (int *point1, IssmDouble *fraction1, IssmDouble *fraction2, bool *mainlyfloating)
 
IssmDouble GetGroundedPortion (IssmDouble *xyz_list)
 
void GetIcefrontCoordinates (IssmDouble **pxyz_front, IssmDouble *xyz_list, int levelsetenum)
 
Input2GetInput2 (int enumtype)
 
Input2GetInput2 (int enumtype, IssmDouble time)
 
Input2GetInput2 (int inputenum, IssmDouble start_time, IssmDouble end_time, int averaging_method)
 
void GetInputListOnVertices (IssmDouble *pvalue, Input2 *input, IssmDouble default_value)
 
void GetInputListOnNodes (IssmDouble *pvalue, Input2 *input, IssmDouble default_value)
 
void GetInputValue (IssmDouble *pvalue, Vertex *vertex, int enumtype)
 
void GetLevelCoordinates (IssmDouble **pxyz_front, IssmDouble *xyz_list, int levelsetenum, IssmDouble level)
 
void GetLevelsetPositivePart (int *point1, IssmDouble *fraction1, IssmDouble *fraction2, bool *mainlynegative, IssmDouble *levelsetvalues)
 
int GetNumberOfNodes (void)
 
int GetNumberOfNodes (int enum_type)
 
int GetNumberOfVertices (void)
 
void GetVectorFromControlInputs (Vector< IssmDouble > *gradient, int control_enum, int control_index, const char *data, int offset)
 
void GetVectorFromControlInputs (Vector< IssmDouble > *gradient, int control_enum, int control_index, const char *data)
 
void GetVerticesCoordinates (IssmDouble **pxyz_list)
 
void GetVerticesCoordinatesBase (IssmDouble **pxyz_list)
 
void GetVerticesCoordinatesTop (IssmDouble **pxyz_list)
 
IssmDouble GroundedArea (bool scaled)
 
IssmDouble IceVolume (bool scaled)
 
IssmDouble IceVolumeAboveFloatation (bool scaled)
 
void InputDepthAverageAtBase (int enum_type, int average_enum_type)
 
void InputExtrude (int enum_type, int start)
 
void InputUpdateFromIoModel (int index, IoModel *iomodel)
 
void InputUpdateFromSolutionOneDof (IssmDouble *solution, int inputenum)
 
void InputUpdateFromSolutionOneDofCollapsed (IssmDouble *solution, int inputenum)
 
void InputUpdateFromVector (IssmDouble *vector, int name, int type)
 
bool IsFaceOnBoundary (void)
 
bool IsIcefront (void)
 
bool IsNodeOnShelfFromFlags (IssmDouble *flags)
 
bool IsZeroLevelset (int levelset_enum)
 
void JacobianDeterminant (IssmDouble *Jdet, IssmDouble *xyz_list, Gauss *gauss)
 
void JacobianDeterminantBase (IssmDouble *pJdet, IssmDouble *xyz_list_base, Gauss *gauss)
 
void JacobianDeterminantLine (IssmDouble *Jdet, IssmDouble *xyz_list, Gauss *gauss)
 
void JacobianDeterminantSurface (IssmDouble *pJdet, IssmDouble *xyz_list, Gauss *gauss)
 
void JacobianDeterminantTop (IssmDouble *pJdet, IssmDouble *xyz_list_base, Gauss *gauss)
 
IssmDouble Masscon (IssmDouble *levelset)
 
IssmDouble MassFlux (IssmDouble *segment)
 
IssmDouble MassFlux (IssmDouble x1, IssmDouble y1, IssmDouble x2, IssmDouble y2, int segment_id)
 
void MaterialUpdateFromTemperature (void)
 
IssmDouble MinEdgeLength (IssmDouble *xyz_list)
 
IssmDouble Misfit (int modelenum, int observationenum, int weightsenum)
 
IssmDouble MisfitArea (int weightsenum)
 
GaussNewGauss (void)
 
GaussNewGauss (int order)
 
GaussNewGauss (IssmDouble *xyz_list, IssmDouble *xyz_list_front, int order)
 
GaussNewGauss (IssmDouble *xyz_list, IssmDouble *xyz_list_front, int order_horiz, int order_vert)
 
GaussNewGauss (int point1, IssmDouble fraction1, IssmDouble fraction2, bool mainlyfloating, int order)
 
GaussNewGauss (int point1, IssmDouble fraction1, IssmDouble fraction2, int order)
 
GaussNewGaussBase (int order)
 
GaussNewGaussLine (int vertex1, int vertex2, int order)
 
GaussNewGaussTop (int order)
 
int NodalValue (IssmDouble *pvalue, int index, int natureofdataenum)
 
void NodalFunctions (IssmDouble *basis, Gauss *gauss)
 
void NodalFunctionsDerivatives (IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
 
void NodalFunctionsDerivativesVelocity (IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
 
void NodalFunctionsMINIDerivatives (IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
 
void NodalFunctionsPressure (IssmDouble *basis, Gauss *gauss)
 
void NodalFunctionsP1 (IssmDouble *basis, Gauss *gauss)
 
void NodalFunctionsP1Derivatives (IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
 
void NodalFunctionsP2 (IssmDouble *basis, Gauss *gauss)
 
void NodalFunctionsTensor (IssmDouble *basis, Gauss *gauss)
 
void NodalFunctionsVelocity (IssmDouble *basis, Gauss *gauss)
 
void NormalBase (IssmDouble *normal, IssmDouble *xyz_list)
 
void NormalSection (IssmDouble *normal, IssmDouble *xyz_list)
 
void NormalTop (IssmDouble *normal, IssmDouble *xyz_list)
 
int NumberofNodesPressure (void)
 
int NumberofNodesVelocity (void)
 
void PotentialUngrounding (Vector< IssmDouble > *potential_sheet_ungrounding)
 
int PressureInterpolation (void)
 
void ReduceMatrices (ElementMatrix *Ke, ElementVector *pe)
 
void ResetFSBasalBoundaryCondition (void)
 
void ResetHooks ()
 
void SetControlInputsFromVector (IssmDouble *vector, int control_enum, int control_index, int offset, int N, int M)
 
void SetControlInputsFromVector (IssmDouble *vector, int control_enum, int control_index)
 
void SetCurrentConfiguration (Elements *elements, Loads *loads, Nodes *nodes, Materials *materials, Parameters *parameters)
 
void SetTemporaryElementType (int element_type_in)
 
ElementSpawnBasalElement (void)
 
ElementSpawnTopElement (void)
 
IssmDouble StabilizationParameter (IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa)
 
void StabilizationParameterAnisotropic (IssmDouble *tau_parameter_anisotropic, IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble hx, IssmDouble hy, IssmDouble hz, IssmDouble kappa)
 
void StrainRateparallel (void)
 
void StrainRateperpendicular (void)
 
void StressIntensityFactor (void)
 
IssmDouble SurfaceArea (void)
 
int TensorInterpolation (void)
 
IssmDouble TimeAdapt ()
 
IssmDouble TotalFloatingBmb (bool scaled)
 
IssmDouble TotalGroundedBmb (bool scaled)
 
IssmDouble TotalSmb (bool scaled)
 
void Update (Inputs2 *inputs2, int index, IoModel *iomodel, int analysis_counter, int analysis_type, int finitelement)
 
void UpdateConstraintsExtrudeFromBase ()
 
void UpdateConstraintsExtrudeFromTop ()
 
int UpdatePotentialUngrounding (IssmDouble *vertices_potentially_ungrounding, Vector< IssmDouble > *vec_nodes_on_iceshelf, IssmDouble *nodes_on_iceshelf)
 
void ValueP1DerivativesOnGauss (IssmDouble *dvalue, IssmDouble *values, IssmDouble *xyz_list, Gauss *gauss)
 
void ValueP1OnGauss (IssmDouble *pvalue, IssmDouble *values, Gauss *gauss)
 
int VelocityInterpolation (void)
 
int VertexConnectivity (int vertexindex)
 
void VerticalSegmentIndices (int **pindices, int *pnumseg)
 
void VerticalSegmentIndicesBase (int **pindices, int *pnumseg)
 
IssmDouble GetArea3D (void)
 
IssmDouble GetAreaSpherical (void)
 
- Public Member Functions inherited from Element
 Element ()
 
 ~Element ()
 
bool AnyFSet (void)
 
void ComputeLambdaS (void)
 
void ComputeNewDamage ()
 
void ComputeStrainRate ()
 
void CoordinateSystemTransform (IssmDouble **ptransform, Node **nodes, int numnodes, int *cs_array)
 
void DeepEcho ()
 
void DeleteMaterials (void)
 
void Delta18oParameterization (void)
 
void Delta18opdParameterization (void)
 
void SmbGradCompParameterization (void)
 
IssmDouble Divergence (void)
 
void dViscositydBFS (IssmDouble *pdmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *vz_input)
 
void dViscositydBHO (IssmDouble *pdmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
 
void dViscositydBSSA (IssmDouble *pdmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
 
void dViscositydDSSA (IssmDouble *pdmudB, int dim, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
 
void Echo ()
 
void FindParam (bool *pvalue, int paramenum)
 
void FindParam (int *pvalue, int paramenum)
 
void FindParam (IssmDouble *pvalue, int paramenum)
 
IssmDouble FindParam (int paramenum)
 
void FindParam (int **pvalues, int *psize, int paramenum)
 
IssmDouble FloatingArea (IssmDouble *mask, bool scaled)
 
void GetDofList (int **pdoflist, int approximation_enum, int setenum)
 
void GetDofListPressure (int **pdoflist, int setenum)
 
void GetDofListVelocity (int **pdoflist, int setenum)
 
void GetDofListLocal (int **pdoflist, int approximation_enum, int setenum)
 
void GetDofListLocalPressure (int **pdoflist, int setenum)
 
void GetDofListLocalVelocity (int **pdoflist, int setenum)
 
void GetInputListOnNodes (IssmDouble *pvalue, int enumtype)
 
void GetInputListOnNodes (IssmDouble *pvalue, int enumtype, IssmDouble defaultvalue)
 
void GetInputListOnNodesVelocity (IssmDouble *pvalue, int enumtype)
 
void GetInputListOnVertices (IssmDouble *pvalue, int enumtype)
 
void GetInputListOnVerticesAtTime (IssmDouble *pvalue, int enumtype, IssmDouble time)
 
void GetInputListOnVertices (IssmDouble *pvalue, int enumtype, IssmDouble defaultvalue)
 
void GetInputLocalMinMaxOnNodes (IssmDouble *min, IssmDouble *max, IssmDouble *ug)
 
void GetInputValue (bool *pvalue, int enum_type)
 
void GetInputValue (int *pvalue, int enum_type)
 
void GetInput2Value (bool *pvalue, int enum_type)
 
void GetInput2Value (int *pvalue, int enum_type)
 
void GetInput2Value (IssmDouble *pvalue, int enum_type)
 
void GetInputValue (IssmDouble *pvalue, Gauss *gauss, int enum_type)
 
NodeGetNode (int nodeindex)
 
int GetNodeIndex (Node *node)
 
void GetNodesLidList (int *lidlist)
 
void GetNodesSidList (int *sidlist)
 
void GetPhi (IssmDouble *phi, IssmDouble *epsilon, IssmDouble viscosity)
 
void GetSolutionFromInputsOneDof (Vector< IssmDouble > *solution, int solutionenum)
 
void GetVectorFromInputs (Vector< IssmDouble > *vector, int name_enum, int type)
 
void GetVectorFromInputs (Vector< IssmDouble > *vector, int name_enum, int type, IssmDouble time)
 
void GetVerticesLidList (int *lidlist)
 
void GetVerticesPidList (int *pidlist)
 
void GetVerticesConnectivityList (int *connectivitylist)
 
void GetVerticesCoordinates (IssmDouble **xyz_list)
 
void GetVerticesSidList (int *sidlist)
 
IssmDouble GetXcoord (IssmDouble *xyz_list, Gauss *gauss)
 
IssmDouble GetYcoord (IssmDouble *xyz_list, Gauss *gauss)
 
IssmDouble GetZcoord (IssmDouble *xyz_list, Gauss *gauss)
 
void GradientIndexing (int *indexing, int control_index)
 
IssmDouble GroundedArea (IssmDouble *mask, bool scaled)
 
bool HasNodeOnBase ()
 
bool HasNodeOnSurface ()
 
IssmDouble IceMass (bool scaled)
 
IssmDouble IceMass (IssmDouble *mask, bool scaled)
 
IssmDouble IceVolume (IssmDouble *mask, bool scaled)
 
IssmDouble IceVolumeAboveFloatation (IssmDouble *mask, bool scaled)
 
int Id ()
 
void InputCreate (IssmDouble *vector, Inputs2 *inputs2, IoModel *iomodel, int M, int N, int vector_type, int vector_enum, int code)
 
void ControlInputCreate (IssmDouble *doublearray, IssmDouble *independents_min, IssmDouble *independents_max, Inputs2 *inputs2, IoModel *iomodel, int M, int N, IssmDouble scale, int input_enum, int id)
 
void DatasetInputAdd (int enum_type, IssmDouble *vector, Inputs2 *inputs2, IoModel *iomodel, int M, int N, int vector_type, int vector_enum, int code, int input_enum)
 
void InputUpdateFromConstant (IssmDouble constant, int name)
 
void InputUpdateFromConstant (int constant, int name)
 
void InputUpdateFromConstant (bool constant, int name)
 
bool IsFloating ()
 
bool IsGrounded ()
 
bool IsOnBase ()
 
bool IsOnSurface ()
 
bool IsIceInElement ()
 
bool IsIceOnlyInElement ()
 
bool IsOceanInElement ()
 
bool IsLandInElement ()
 
void Ismip6FloatingiceMeltingRate ()
 
void LinearFloatingiceMeltingRate ()
 
void SpatialLinearFloatingiceMeltingRate ()
 
void MantlePlumeGeothermalFlux ()
 
void MarshallElement (char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction, int numanalyses)
 
void MigrateGroundingLine (IssmDouble *sheet_ungrounding)
 
void MismipFloatingiceMeltingRate ()
 
void BeckmannGoosseFloatingiceMeltingRate ()
 
void MungsmtpParameterization (void)
 
ElementMatrixNewElementMatrix (int approximation_enum=NoneApproximationEnum)
 
ElementMatrixNewElementMatrixCoupling (int number_nodes, int approximation_enum=NoneApproximationEnum)
 
ElementVectorNewElementVector (int approximation_enum=NoneApproximationEnum)
 
void PicoUpdateBoxid (int *pmax_boxid_basin)
 
void PicoUpdateBox (int loopboxid)
 
void PicoComputeBasalMelt ()
 
void PositiveDegreeDay (IssmDouble *pdds, IssmDouble *pds, IssmDouble signorm, bool ismungsm, bool issetpddfac)
 
void PositiveDegreeDaySicopolis (bool isfirnwarming)
 
void ResultInterpolation (int *pinterpolation, int *nodesperelement, int *parray_size, int output_enum)
 
void ResultToPatch (IssmDouble *values, int nodesperelement, int output_enum)
 
void ResultToMatrix (IssmDouble *values, int ncols, int output_enum)
 
void ResultToVector (Vector< IssmDouble > *vector, int output_enum)
 
void SetwiseNodeConnectivity (int *d_nz, int *o_nz, Node *node, bool *flags, int *flagsindices, int set1_enum, int set2_enum)
 
void SetBoolInput (Inputs2 *inputs2, int enum_in, bool value)
 
void SetIntInput (Inputs2 *inputs2, int enum_in, int value)
 
void SmbSemic ()
 
int Sid ()
 
void SmbGemb (IssmDouble timeinputs, int count)
 
void StrainRateESA (IssmDouble *epsilon, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
 
void StrainRateFS (IssmDouble *epsilon, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *vz_input)
 
void StrainRateHO (IssmDouble *epsilon, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
 
void StrainRateHO2dvertical (IssmDouble *epsilon, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
 
void StrainRateSSA (IssmDouble *epsilon, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input)
 
void StrainRateSSA1d (IssmDouble *epsilon, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input)
 
void StressMaxPrincipalCreateInput (void)
 
IssmDouble TotalFloatingBmb (IssmDouble *mask, bool scaled)
 
IssmDouble TotalGroundedBmb (IssmDouble *mask, bool scaled)
 
IssmDouble TotalSmb (IssmDouble *mask, bool scaled)
 
void TransformInvStiffnessMatrixCoord (ElementMatrix *Ke, int cs_enum)
 
void TransformInvStiffnessMatrixCoord (ElementMatrix *Ke, Node **nodes, int numnodes, int cs_enum)
 
void TransformInvStiffnessMatrixCoord (ElementMatrix *Ke, Node **nodes, int numnodes, int *cs_array)
 
void TransformLoadVectorCoord (ElementVector *pe, int cs_enum)
 
void TransformLoadVectorCoord (ElementVector *pe, int *cs_array)
 
void TransformLoadVectorCoord (ElementVector *pe, Node **nodes, int numnodes, int cs_enum)
 
void TransformLoadVectorCoord (ElementVector *pe, Node **nodes, int numnodes, int *cs_array)
 
void TransformLoadVectorCoord (ElementVector *pe, int numnodes, int transformenum)
 
void TransformLoadVectorCoord (ElementVector *pe, int numnodes, int *transformenum_list)
 
void TransformSolutionCoord (IssmDouble *solution, int cs_enum)
 
void TransformSolutionCoord (IssmDouble *solution, int *cs_array)
 
void TransformSolutionCoord (IssmDouble *solution, int numnodes, int cs_enum)
 
void TransformSolutionCoord (IssmDouble *solution, int numnodes, int *cs_array)
 
void TransformSolutionCoord (IssmDouble *solution, Node **nodes, int numnodes, int cs_enum)
 
void TransformSolutionCoord (IssmDouble *solution, Node **nodes, int numnodes, int *cs_array)
 
void TransformStiffnessMatrixCoord (ElementMatrix *Ke, int cs_enum)
 
void TransformStiffnessMatrixCoord (ElementMatrix *Ke, int *cs_array)
 
void TransformStiffnessMatrixCoord (ElementMatrix *Ke, Node **nodes, int numnodes, int cs_enum)
 
void TransformStiffnessMatrixCoord (ElementMatrix *Ke, Node **nodes, int numnodes, int *cs_array)
 
void TransformStiffnessMatrixCoord (ElementMatrix *Ke, int numnodes, int *transformenum_list)
 
void ViscousHeatingCreateInput (void)
 
void ThermalToEnthalpy (IssmDouble *penthalpy, IssmDouble temperature, IssmDouble waterfraction, IssmDouble pressure)
 
IssmDouble TMeltingPoint (IssmDouble pressure)
 
void EnthalpyToThermal (IssmDouble *ptemperature, IssmDouble *pwaterfraction, IssmDouble enthalpy, IssmDouble pressure)
 
IssmDouble EnthalpyDiffusionParameter (IssmDouble enthalpy, IssmDouble pressure)
 
IssmDouble EnthalpyDiffusionParameterVolume (int numvertices, IssmDouble *enthalpy, IssmDouble *pressure)
 
IssmDouble PureIceEnthalpy (IssmDouble pressure)
 
virtual void AddBasalInput2 (int input_enum, IssmDouble *values, int interpolation_enum)
 
virtual void AddInput2 (int input_enum, IssmDouble *values, int interpolation_enum)
 
virtual void AddControlInput (int input_enum, Inputs2 *inputs2, IoModel *iomodel, IssmDouble *values, IssmDouble *values_min, IssmDouble *values_max, int interpolation_enum, int id)
 
virtual void DatasetInputCreate (IssmDouble *array, int M, int N, int *individual_enums, int num_inputs, Inputs2 *inputs2, IoModel *iomodel, int input_enum)
 
virtual void BasalNodeIndices (int *pnumindices, int **pindices, int finiteelement)
 
virtual void CalvingRateVonmises (void)
 
virtual void CalvingCrevasseDepth (void)
 
virtual void CalvingFluxLevelset (void)
 
virtual void CalvingMeltingFluxLevelset (void)
 
virtual void ComputeBasalStress (void)
 
virtual void CreateDistanceInputFromSegmentlist (IssmDouble *distances, int distanceenum)
 
virtual void CreateInputTimeAverage (int transientinput_enum, int averagedinput_enum, IssmDouble init_time, IssmDouble end_time, int averaging_method)
 
virtual IssmDouble GetHorizontalSurfaceArea (void)
 
virtual IssmDouble GetIcefrontArea ()
 
virtual DatasetInput2GetDatasetInput2 (int inputenum)
 
virtual void GetInputValue (IssmDouble *pvalue, Node *node, int enumtype)
 
virtual int GetVertexIndex (Vertex *vertex)
 
virtual IssmDouble IcefrontMassFlux (bool scaled)
 
virtual IssmDouble IcefrontMassFluxLevelset (bool scaled)
 
virtual IssmDouble GroundinglineMassFlux (bool scaled)
 
virtual void DatasetInputExtrude (int input_enum, int start)
 
virtual void RignotMeltParameterization (void)
 
virtual void SetElementInput (int enum_in, IssmDouble values)
 
virtual void SetElementInput (Inputs2 *inputs2, int enum_in, IssmDouble values)
 
virtual void SetElementInput (Inputs2 *inputs2, int numindices, int *indices, IssmDouble *values, int enum_in)
 
virtual IssmDouble TotalCalvingFluxLevelset (bool scaled)
 
virtual IssmDouble TotalCalvingMeltingFluxLevelset (bool scaled)
 
virtual void ViscousHeating (IssmDouble *pphi, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *vz_input)
 
virtual void WriteFieldIsovalueSegment (DataSet *segments, int fieldenum, IssmDouble fieldvalue)
 
- Public Member Functions inherited from Object
virtual ~Object ()
 
- Public Member Functions inherited from ElementHook
 ElementHook ()
 
 ElementHook (int in_numanalyses, int material_id, int numvertices, IoModel *iomodel)
 
 ~ElementHook ()
 
void Marshall (char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
 
void DeepEcho ()
 
void Echo ()
 
void InitHookNeighbors (int *element_ids)
 
void SetHookNodes (int *node_ids, int numnodes, int analysis_counter)
 
void SpawnSegHook (ElementHook *triahook, int ndex1, int index2)
 
void SpawnTriaHook (ElementHook *triahook, int index1, int index2, int index3)
 
- Public Member Functions inherited from SegRef
 SegRef ()
 
 ~SegRef ()
 
void GetInputDerivativeValue (IssmDouble *p, IssmDouble *plist, IssmDouble *xyz_list, GaussSeg *gauss, int finiteelement)
 
void GetInputValue (IssmDouble *p, IssmDouble *plist, GaussSeg *gauss, int finiteelement)
 
void GetJacobian (IssmDouble *J, IssmDouble *xyz_list, GaussSeg *gauss)
 
void GetJacobianDeterminant (IssmDouble *Jdet, IssmDouble *xyz_list, GaussSeg *gauss)
 
void GetJacobianInvert (IssmDouble *Jinv, IssmDouble *xyz_list, GaussSeg *gauss)
 
void GetNodalFunctions (IssmDouble *basis, GaussSeg *gauss, int finiteelement)
 
void GetNodalFunctionsDerivatives (IssmDouble *dbasis, IssmDouble *xyz_list, GaussSeg *gauss, int finiteelement)
 
void GetNodalFunctionsDerivativesReference (IssmDouble *dbasis, GaussSeg *gauss, int finiteelement)
 
void Marshall (char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
 
int NumberofNodes (int finiteelement)
 

Data Fields

int iscollapsed
 
int collapsed_ids [2]
 
- Data Fields inherited from Element
int id
 
int sid
 
int lid
 
Inputs2inputs2
 
Node ** nodes
 
Vertex ** vertices
 
Materialmaterial
 
Parametersparameters
 
bool isonsurface
 
bool isonbase
 
int * element_type_list
 
int element_type
 
- Data Fields inherited from ElementHook
int numanalyses
 
Hook ** hnodes
 
Hookhvertices
 
Hookhmaterial
 
Hookhneighbors
 

Detailed Description

Definition at line 27 of file Seg.h.

Constructor & Destructor Documentation

◆ Seg() [1/2]

Seg::Seg ( )
inline

Definition at line 34 of file Seg.h.

34 {};

◆ Seg() [2/2]

Seg::Seg ( int  seg_id,
int  seg_sid,
int  seg_lid,
IoModel iomodel,
int  nummodels 
)

Definition at line 23 of file Seg.cpp.

24  :ElementHook(nummodels,seg_id,NUMVERTICES,iomodel){
25 
26  this->iscollapsed = 0;
27  this->collapsed_ids[0] = -1;
28  this->collapsed_ids[1] = -1;
29 
30  /*id: */
31  this->id = seg_id;
32  this->sid = seg_sid;
33  this->lid = seg_lid;
34 
35  /*surface and base*/
36  this->isonsurface = false;
37  this->isonbase = false;
38 
39  //this->parameters: we still can't point to it, it may not even exist. Configure will handle this.
40  this->parameters = NULL;
41 
42  /*initialize pointers:*/
43  this->nodes = NULL;
44  this->vertices = NULL;
45  this->material = NULL;
46 
47  /*Only allocate pointer*/
48  this->element_type_list=xNew<int>(nummodels);
49 
50  /*surface and base*/
51  this->isonsurface = true;
52  this->isonbase = true;
53  }

◆ ~Seg()

Seg::~Seg ( )

Definition at line 55 of file Seg.cpp.

55  {/*{{{*/
56  this->parameters=NULL;
57 }

Member Function Documentation

◆ copy()

Object * Seg::copy ( void  )
virtual

Implements Object.

Definition at line 59 of file Seg.cpp.

59  {/*{{{*/
60 
61  int i;
62  Seg* seg=NULL;
63 
64  seg=new Seg();
65 
66  seg->iscollapsed=this->iscollapsed;
67  seg->collapsed_ids[0]=this->collapsed_ids[0];
68  seg->collapsed_ids[1]=this->collapsed_ids[1];
69 
70  //deal with TriaRef mother class
71  int nanalyses = this->numanalyses;
72  if(nanalyses > 0){
73  seg->element_type_list=xNew<int>(nanalyses);
74  for(i=0;i<nanalyses;i++){
75  if (this->element_type_list[i]) seg->element_type_list[i]=this->element_type_list[i];
76  else seg->element_type_list[i] = 0;
77  }
78  }
79  else seg->element_type_list = NULL;
80  seg->element_type=this->element_type;
81  seg->numanalyses=nanalyses;
82 
83  //deal with ElementHook mother class
84  if (this->hnodes){
85  seg->hnodes=xNew<Hook*>(seg->numanalyses);
86  for(i=0;i<seg->numanalyses;i++){
87  if (this->hnodes[i]) seg->hnodes[i] = (Hook*)(this->hnodes[i]->copy());
88  else seg->hnodes[i] = NULL;
89  }
90  }
91  else seg->hnodes = NULL;
92 
93  seg->hvertices = (Hook*)this->hvertices->copy();
94  seg->hmaterial = (Hook*)this->hmaterial->copy();
95  seg->hneighbors = NULL;
96 
97  /*deal with Element fields: */
98  seg->id = this->id;
99  seg->sid = this->sid;
100  seg->lid = this->lid;
101  seg->isonbase = this->isonbase;
102  seg->isonsurface = this->isonsurface;
103 
104  /*point parameters: */
105  seg->parameters=this->parameters;
106 
107  /*recover objects: */
108  if (this->nodes){
109  unsigned int num_nodes = 3;
110  seg->nodes = xNew<Node*>(num_nodes); //we cannot rely on an analysis_counter to tell us which analysis_type we are running, so we just copy the nodes.
111  for(i=0;i<num_nodes;i++) if(this->nodes[i]) seg->nodes[i]=this->nodes[i]; else seg->nodes[i] = NULL;
112  }
113  else seg->nodes = NULL;
114 
115  seg->vertices = (Vertex**)this->hvertices->deliverp();
116  seg->material = (Material*)this->hmaterial->delivers();
117 
118  return seg;
119 
120 }

◆ Marshall()

void Seg::Marshall ( char **  pmarshalled_data,
int *  pmarshalled_data_size,
int  marshall_direction 
)
virtual

Implements Element.

Definition at line 122 of file Seg.cpp.

122  { /*{{{*/
123 
125  MARSHALLING(this->iscollapsed);
126  MARSHALLING(this->isonsurface);
127  MARSHALLING(this->isonbase);
128  MARSHALLING(this->collapsed_ids[0]);
129  MARSHALLING(this->collapsed_ids[1]);
130 
131  /*Call parent classes: */
132  ElementHook::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
133  Element::MarshallElement(pmarshalled_data,pmarshalled_data_size,marshall_direction,this->numanalyses);
134  SegRef::Marshall(pmarshalled_data,pmarshalled_data_size,marshall_direction);
135 
136  vertices = (Vertex**)this->hvertices->deliverp();
137  material = (Material*)this->hmaterial->delivers();
138 
139 }

◆ ObjectEnum()

int Seg::ObjectEnum ( void  )
virtual

Implements Object.

Definition at line 442 of file Seg.cpp.

442  {/*{{{*/
443 
444  return SegEnum;
445 
446 }

◆ AverageOntoPartition()

void Seg::AverageOntoPartition ( Vector< IssmDouble > *  partition_contributions,
Vector< IssmDouble > *  partition_areas,
IssmDouble vertex_response,
IssmDouble qmu_part 
)
inlinevirtual

Implements Element.

Definition at line 44 of file Seg.h.

44 {_error_("not implemented yet");};

◆ CalvingRateLevermann()

void Seg::CalvingRateLevermann ( void  )
inlinevirtual

Implements Element.

Definition at line 45 of file Seg.h.

45 {_error_("not implemented yet");};

◆ CharacteristicLength()

IssmDouble Seg::CharacteristicLength ( void  )
virtual

Implements Element.

Definition at line 142 of file Seg.cpp.

142  {/*{{{*/
143 
144  IssmDouble xyz_list[NUMVERTICES][3];
145  IssmDouble x1,y1,x2,y2;
146 
147  /*Get xyz list: */
149  x1=xyz_list[0][0]; y1=xyz_list[0][1];
150  x2=xyz_list[1][0]; y2=xyz_list[1][1];
151 
152  return sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1));
153 }

◆ ComputeDeviatoricStressTensor()

void Seg::ComputeDeviatoricStressTensor ( void  )
inlinevirtual

Implements Element.

Definition at line 47 of file Seg.h.

47 {_error_("not implemented yet");};

◆ ComputeEsaStrainAndVorticity()

void Seg::ComputeEsaStrainAndVorticity ( void  )
inlinevirtual

Implements Element.

Definition at line 48 of file Seg.h.

48 {_error_("not implemented yet!");};

◆ ComputeSigmaNN()

void Seg::ComputeSigmaNN ( void  )
inlinevirtual

Implements Element.

Definition at line 49 of file Seg.h.

49 {_error_("not implemented yet");};

◆ ComputeStressTensor()

void Seg::ComputeStressTensor ( void  )
inlinevirtual

Implements Element.

Definition at line 50 of file Seg.h.

50 {_error_("not implemented yet");};

◆ Configure()

void Seg::Configure ( Elements elements,
Loads loads,
Nodes nodesin,
Vertices verticesin,
Materials materials,
Parameters parameters,
Inputs2 inputs2in 
)
inlinevirtual

Implements Element.

Definition at line 51 of file Seg.h.

51 {_error_("not implemented yet");};

◆ ControlInputSetGradient() [1/2]

void Seg::ControlInputSetGradient ( IssmDouble gradient,
int  enum_type,
int  control_index,
int  offset,
int  N,
int  M 
)
inlinevirtual

Implements Element.

Definition at line 52 of file Seg.h.

52 {_error_("not implemented yet");};

◆ ControlInputSetGradient() [2/2]

void Seg::ControlInputSetGradient ( IssmDouble gradient,
int  enum_type,
int  control_index 
)
inlinevirtual

Implements Element.

Definition at line 53 of file Seg.h.

53 {_error_("not implemented yet");};

◆ ControlToVectors()

void Seg::ControlToVectors ( Vector< IssmPDouble > *  vector_control,
Vector< IssmPDouble > *  vector_gradient,
int  control_enum 
)
inlinevirtual

Implements Element.

Definition at line 54 of file Seg.h.

54 {_error_("not implemented yet");};

◆ ElementResponse()

void Seg::ElementResponse ( IssmDouble presponse,
int  response_enum 
)
inlinevirtual

Implements Element.

Definition at line 55 of file Seg.h.

55 {_error_("not implemented yet");};

◆ ElementSizes()

void Seg::ElementSizes ( IssmDouble hx,
IssmDouble hy,
IssmDouble hz 
)
inlinevirtual

Implements Element.

Definition at line 56 of file Seg.h.

56 {_error_("not implemented yet");};

◆ FiniteElement()

int Seg::FiniteElement ( void  )
virtual

Implements Element.

Definition at line 155 of file Seg.cpp.

155  {/*{{{*/
156  return this->element_type;
157 }

◆ FloatingArea()

IssmDouble Seg::FloatingArea ( bool  scaled)
inlinevirtual

Implements Element.

Definition at line 58 of file Seg.h.

58 {_error_("not implemented yet");};

◆ FSContactMigration()

void Seg::FSContactMigration ( Vector< IssmDouble > *  vertexgrounded,
Vector< IssmDouble > *  vertexfloating 
)
inlinevirtual

Implements Element.

Definition at line 59 of file Seg.h.

59 {_error_("not implemented yet");};

◆ GetBasalElement()

Element* Seg::GetBasalElement ( void  )
inlinevirtual

Implements Element.

Definition at line 60 of file Seg.h.

60 {_error_("not implemented yet");};

◆ GetElementType()

int Seg::GetElementType ( void  )
inlinevirtual

Implements Element.

Definition at line 61 of file Seg.h.

61 {_error_("not implemented yet");};

◆ GetGroundedPart()

void Seg::GetGroundedPart ( int *  point1,
IssmDouble fraction1,
IssmDouble fraction2,
bool *  mainlyfloating 
)
inlinevirtual

Implements Element.

Definition at line 62 of file Seg.h.

62 {_error_("not implemented yet");};

◆ GetGroundedPortion()

IssmDouble Seg::GetGroundedPortion ( IssmDouble xyz_list)
virtual

Implements Element.

Definition at line 257 of file Seg.cpp.

257  {/*{{{*/
258  /*Computeportion of the element that is grounded*/
259 
260  bool mainlyfloating = true;
261  const IssmPDouble epsilon = 1.e-15;
262  IssmDouble phi;
264 
265  /*Recover parameters and values*/
267 
268  /*Be sure that values are not zero*/
269  if(gl[0]==0.) gl[0]=gl[0]+epsilon;
270  if(gl[1]==0.) gl[1]=gl[1]+epsilon;
271 
272  if(gl[0]>0 && gl[1]>0) phi=1; // All grounded
273  else if(gl[0]<0 && gl[1]<0) phi=0; // All floating
274  else if(gl[0]<0 && gl[1]>0){ //1 grounded
275  phi=1./(1.-gl[0]/gl[1]);
276  }
277  else if(gl[1]<0 && gl[0]>0){ //0 grounded
278  phi=1./(1.-gl[1]/gl[0]);
279  }
280 
281  if(phi>1 || phi<0) _error_("Error. Problem with portion of grounded element: value should be between 0 and 1");
282 
283  return phi;
284 }

◆ GetIcefrontCoordinates()

void Seg::GetIcefrontCoordinates ( IssmDouble **  pxyz_front,
IssmDouble xyz_list,
int  levelsetenum 
)
virtual

Implements Element.

Definition at line 159 of file Seg.cpp.

159  {/*{{{*/
160 
161  /* Intermediaries */
162  int nrfrontnodes,index;
163  IssmDouble levelset[NUMVERTICES];
164 
165  /*Recover parameters and values*/
166  Element::GetInputListOnVertices(&levelset[0],levelsetenum);
167 
168  /* Get nodes where there is no ice */
169  nrfrontnodes=0;
170  for(int i=0;i<NUMVERTICES;i++){
171  if(levelset[i]>=0.){
172  index=i;
173  nrfrontnodes++;
174  }
175  }
176 
177  _assert_(nrfrontnodes==1);
178 
179  IssmDouble* xyz_front = xNew<IssmDouble>(3);
180 
181  /* Return nodes */
182  for(int dir=0;dir<3;dir++){
183  xyz_front[dir]=xyz_list[3*index+dir];
184  }
185 
186  *pxyz_front=xyz_front;
187 }/*}}}*/

◆ GetInput2() [1/3]

Input2 * Seg::GetInput2 ( int  enumtype)
virtual

Implements Element.

Definition at line 188 of file Seg.cpp.

188  {/*{{{*/
189 
190  if(this->iscollapsed){
191  TriaInput2* input = this->inputs2->GetTriaInput(inputenum);
192  if(!input) return input;
193 
194  /*Intermediaries*/
195  int numindices;
196  int indices[7];
197 
198  /*Check interpolation*/
199  int interpolation = input->GetInterpolation();
200  switch(interpolation){
201  case P0Enum:
202  numindices = 1;
203  indices[0] = this->lid;
204  input->Serve(numindices,&indices[0]);
205  break;
206  case P1Enum:
207  numindices = 2;
208  for(int i=0;i<numindices;i++) indices[i] = vertices[i]->lid;
209  input->Serve(numindices,&indices[0]);
210  break;
211  case P1DGEnum:
212  case P1bubbleEnum:
213  default:
214  input->ServeCollapsed(this->lid,this->collapsed_ids[0],this->collapsed_ids[1]);
215  break;
216  }
217  /*Flag as collapsed for later use*/
218  input->SetServeCollapsed(true);
219 
220  return input;
221  }
222  else{
223  SegInput2* input = this->inputs2->GetSegInput(inputenum);
224  if(!input) return input;
225 
226  /*Intermediaries*/
227  int numindices;
228  int indices[7];
229 
230  /*Check interpolation*/
231  int interpolation = input->GetInterpolation();
232  switch(interpolation){
233  case P0Enum:
234  numindices = 1;
235  indices[0] = this->lid;
236  input->Serve(numindices,&indices[0]);
237  break;
238  case P1Enum:
239  numindices = 3;
240  for(int i=0;i<3;i++) indices[i] = vertices[i]->lid;
241  input->Serve(numindices,&indices[0]);
242  break;
243  case P1DGEnum:
244  numindices = 3;
245  input->Serve(this->lid,numindices);
246  break;
247  default:
248  input->Serve(this->lid,this->GetNumberOfNodes(interpolation));
249  }
250 
251  return input;
252  }
253 }/*}}}*/

◆ GetInput2() [2/3]

Input2 * Seg::GetInput2 ( int  enumtype,
IssmDouble  time 
)
virtual

Implements Element.

Definition at line 254 of file Seg.cpp.

254  {/*{{{*/
255  _error_("not implemented yet");
256 }/*}}}*/

◆ GetInput2() [3/3]

Input2* Seg::GetInput2 ( int  inputenum,
IssmDouble  start_time,
IssmDouble  end_time,
int  averaging_method 
)
inlinevirtual

Implements Element.

Definition at line 67 of file Seg.h.

67 {_error_("not implemented yet!");};

◆ GetInputListOnVertices()

void Seg::GetInputListOnVertices ( IssmDouble pvalue,
Input2 input,
IssmDouble  default_value 
)
virtual

Implements Element.

Definition at line 303 of file Seg.cpp.

303  {/*{{{*/
304 
305  /*Checks in debugging mode*/
306  _assert_(pvalue);
307 
308  /* Start looping on the number of vertices: */
309  if(input){
310  GaussSeg gauss;
311  for(int iv=0;iv<NUMVERTICES;iv++){
312  gauss.GaussVertex(iv);
313  input->GetInputValue(&pvalue[iv],&gauss);
314  }
315  }
316  else{
317  for(int iv=0;iv<NUMVERTICES;iv++) pvalue[iv] = default_value;
318  }
319 }

◆ GetInputListOnNodes()

void Seg::GetInputListOnNodes ( IssmDouble pvalue,
Input2 input,
IssmDouble  default_value 
)
virtual

Implements Element.

Definition at line 321 of file Seg.cpp.

321  {/*{{{*/
322 
323  /*Checks in debugging mode*/
324  _assert_(pvalue);
325 
326  /*What type of finite element are we dealing with?*/
327  int fe = this->FiniteElement();
328  int numnodes = this->GetNumberOfNodes();
329 
330  /* Start looping on the number of vertices: */
331  if(input){
332  GaussSeg gauss;
333  for(int iv=0;iv<numnodes;iv++){
334  gauss.GaussNode(fe,iv);
335  input->GetInputValue(&pvalue[iv],&gauss);
336  }
337  }
338  else{
339  for(int iv=0;iv<numnodes;iv++) pvalue[iv] = default_value;
340  }
341 }

◆ GetInputValue()

void Seg::GetInputValue ( IssmDouble pvalue,
Vertex vertex,
int  enumtype 
)
inlinevirtual

Reimplemented from Element.

Definition at line 70 of file Seg.h.

70 {_error_("not implemented yet");};

◆ GetLevelCoordinates()

void Seg::GetLevelCoordinates ( IssmDouble **  pxyz_front,
IssmDouble xyz_list,
int  levelsetenum,
IssmDouble  level 
)
inlinevirtual

Implements Element.

Definition at line 71 of file Seg.h.

71 {_error_("not implemented");};

◆ GetLevelsetPositivePart()

void Seg::GetLevelsetPositivePart ( int *  point1,
IssmDouble fraction1,
IssmDouble fraction2,
bool *  mainlynegative,
IssmDouble levelsetvalues 
)
inlinevirtual

Implements Element.

Definition at line 72 of file Seg.h.

72 {_error_("not implemented yet");};

◆ GetNumberOfNodes() [1/2]

int Seg::GetNumberOfNodes ( void  )
virtual

Implements Element.

Definition at line 286 of file Seg.cpp.

286  {/*{{{*/
287  return this->NumberofNodes(this->element_type);
288 }

◆ GetNumberOfNodes() [2/2]

int Seg::GetNumberOfNodes ( int  enum_type)
inlinevirtual

Implements Element.

Definition at line 74 of file Seg.h.

74 {_error_("not implemented yet");};

◆ GetNumberOfVertices()

int Seg::GetNumberOfVertices ( void  )
virtual

Implements Element.

Definition at line 290 of file Seg.cpp.

290  {/*{{{*/
291  return NUMVERTICES;
292 }

◆ GetVectorFromControlInputs() [1/2]

void Seg::GetVectorFromControlInputs ( Vector< IssmDouble > *  gradient,
int  control_enum,
int  control_index,
const char *  data,
int  offset 
)
inlinevirtual

Implements Element.

Definition at line 76 of file Seg.h.

76 {_error_("not implemented yet");};

◆ GetVectorFromControlInputs() [2/2]

void Seg::GetVectorFromControlInputs ( Vector< IssmDouble > *  gradient,
int  control_enum,
int  control_index,
const char *  data 
)
inlinevirtual

Implements Element.

Definition at line 77 of file Seg.h.

77 {_error_("not implemented yet");};

◆ GetVerticesCoordinates()

void Seg::GetVerticesCoordinates ( IssmDouble **  pxyz_list)

Definition at line 294 of file Seg.cpp.

294  {/*{{{*/
295 
296  IssmDouble* xyz_list = xNew<IssmDouble>(NUMVERTICES*3);
298 
299  /*Assign output pointer*/
300  *pxyz_list = xyz_list;
301 
302 }/*}}}*/

◆ GetVerticesCoordinatesBase()

void Seg::GetVerticesCoordinatesBase ( IssmDouble **  pxyz_list)
inlinevirtual

Implements Element.

Definition at line 79 of file Seg.h.

79 {_error_("not implemented yet");};

◆ GetVerticesCoordinatesTop()

void Seg::GetVerticesCoordinatesTop ( IssmDouble **  pxyz_list)
inlinevirtual

Implements Element.

Definition at line 80 of file Seg.h.

80 {_error_("not implemented yet");};

◆ GroundedArea()

IssmDouble Seg::GroundedArea ( bool  scaled)
inlinevirtual

Implements Element.

Definition at line 81 of file Seg.h.

81 {_error_("not implemented yet");};

◆ IceVolume()

IssmDouble Seg::IceVolume ( bool  scaled)
inlinevirtual

Implements Element.

Definition at line 82 of file Seg.h.

82 {_error_("not implemented yet");};

◆ IceVolumeAboveFloatation()

IssmDouble Seg::IceVolumeAboveFloatation ( bool  scaled)
inlinevirtual

Implements Element.

Definition at line 83 of file Seg.h.

83 {_error_("not implemented yet");};

◆ InputDepthAverageAtBase()

void Seg::InputDepthAverageAtBase ( int  enum_type,
int  average_enum_type 
)
inlinevirtual

Implements Element.

Definition at line 84 of file Seg.h.

84 {_error_("not implemented yet");};

◆ InputExtrude()

void Seg::InputExtrude ( int  enum_type,
int  start 
)
inlinevirtual

Implements Element.

Definition at line 85 of file Seg.h.

85 {_error_("not implemented"); /*For penta only*/};

◆ InputUpdateFromIoModel()

void Seg::InputUpdateFromIoModel ( int  index,
IoModel iomodel 
)
inlinevirtual

Implements Element.

Definition at line 86 of file Seg.h.

86 {_error_("not implemented yet");};

◆ InputUpdateFromSolutionOneDof()

void Seg::InputUpdateFromSolutionOneDof ( IssmDouble solution,
int  inputenum 
)
inlinevirtual

Implements Element.

Definition at line 87 of file Seg.h.

87 {_error_("not implemented yet");};

◆ InputUpdateFromSolutionOneDofCollapsed()

void Seg::InputUpdateFromSolutionOneDofCollapsed ( IssmDouble solution,
int  inputenum 
)
inlinevirtual

Implements Element.

Definition at line 88 of file Seg.h.

88 {_error_("not implemented yet");};

◆ InputUpdateFromVector()

void Seg::InputUpdateFromVector ( IssmDouble vector,
int  name,
int  type 
)
inlinevirtual

Implements Element.

Definition at line 89 of file Seg.h.

89 {_error_("not implemented yet");};

◆ IsFaceOnBoundary()

bool Seg::IsFaceOnBoundary ( void  )
inlinevirtual

Implements Element.

Definition at line 90 of file Seg.h.

90 {_error_("not implemented yet");};

◆ IsIcefront()

bool Seg::IsIcefront ( void  )
virtual

Implements Element.

Definition at line 343 of file Seg.cpp.

343  {/*{{{*/
344 
345  bool isicefront;
346  int i,nrice;
348 
349  /*Retrieve all inputs and parameters*/
351 
352  /* If only one vertex has ice, there is an ice front here */
353  isicefront=false;
354  if(IsIceInElement()){
355  nrice=0;
356  for(i=0;i<NUMVERTICES;i++)
357  if(ls[i]<0.) nrice++;
358  if(nrice==1) isicefront= true;
359  }
360  return isicefront;
361 }/*}}}*/

◆ IsNodeOnShelfFromFlags()

bool Seg::IsNodeOnShelfFromFlags ( IssmDouble flags)
inlinevirtual

Implements Element.

Definition at line 92 of file Seg.h.

92 {_error_("not implemented yet");};

◆ IsZeroLevelset()

bool Seg::IsZeroLevelset ( int  levelset_enum)
inlinevirtual

Implements Element.

Definition at line 93 of file Seg.h.

93 {_error_("not implemented");};

◆ JacobianDeterminant()

void Seg::JacobianDeterminant ( IssmDouble Jdet,
IssmDouble xyz_list,
Gauss gauss 
)
virtual

Implements Element.

Definition at line 362 of file Seg.cpp.

362  {/*{{{*/
363 
364  _assert_(gauss->Enum()==GaussSegEnum);
365  this->GetJacobianDeterminant(pJdet,xyz_list,(GaussSeg*)gauss);
366 
367 }

◆ JacobianDeterminantBase()

void Seg::JacobianDeterminantBase ( IssmDouble pJdet,
IssmDouble xyz_list_base,
Gauss gauss 
)
inlinevirtual

Implements Element.

Definition at line 95 of file Seg.h.

95 {_error_("not implemented yet");};

◆ JacobianDeterminantLine()

void Seg::JacobianDeterminantLine ( IssmDouble Jdet,
IssmDouble xyz_list,
Gauss gauss 
)
inlinevirtual

Implements Element.

Definition at line 96 of file Seg.h.

96 {_error_("not implemented yet");};

◆ JacobianDeterminantSurface()

void Seg::JacobianDeterminantSurface ( IssmDouble pJdet,
IssmDouble xyz_list,
Gauss gauss 
)
virtual

Implements Element.

Definition at line 369 of file Seg.cpp.

369  {/*{{{*/
370 
371  *pJdet = 1.;
372 
373 }

◆ JacobianDeterminantTop()

void Seg::JacobianDeterminantTop ( IssmDouble pJdet,
IssmDouble xyz_list_base,
Gauss gauss 
)
inlinevirtual

Implements Element.

Definition at line 98 of file Seg.h.

98 {_error_("not implemented yet");};

◆ Masscon()

IssmDouble Seg::Masscon ( IssmDouble levelset)
inlinevirtual

Implements Element.

Definition at line 99 of file Seg.h.

99 {_error_("not implemented yet");};

◆ MassFlux() [1/2]

IssmDouble Seg::MassFlux ( IssmDouble segment)
inlinevirtual

Implements Element.

Definition at line 100 of file Seg.h.

100 {_error_("not implemented yet");};

◆ MassFlux() [2/2]

IssmDouble Seg::MassFlux ( IssmDouble  x1,
IssmDouble  y1,
IssmDouble  x2,
IssmDouble  y2,
int  segment_id 
)
inlinevirtual

Implements Element.

Definition at line 101 of file Seg.h.

101 {_error_("not implemented yet");}

◆ MaterialUpdateFromTemperature()

void Seg::MaterialUpdateFromTemperature ( void  )
inline

Definition at line 102 of file Seg.h.

102 {_error_("not implemented yet");};

◆ MinEdgeLength()

IssmDouble Seg::MinEdgeLength ( IssmDouble xyz_list)
inlinevirtual

Implements Element.

Definition at line 103 of file Seg.h.

103 {_error_("not implemented yet");};

◆ Misfit()

IssmDouble Seg::Misfit ( int  modelenum,
int  observationenum,
int  weightsenum 
)
inlinevirtual

Implements Element.

Definition at line 104 of file Seg.h.

104 {_error_("not implemented yet");};

◆ MisfitArea()

IssmDouble Seg::MisfitArea ( int  weightsenum)
inlinevirtual

Implements Element.

Definition at line 105 of file Seg.h.

105 {_error_("not implemented yet");};

◆ NewGauss() [1/6]

Gauss * Seg::NewGauss ( void  )
virtual

Implements Element.

Definition at line 375 of file Seg.cpp.

375  {/*{{{*/
376  return new GaussSeg();
377 }

◆ NewGauss() [2/6]

Gauss * Seg::NewGauss ( int  order)
virtual

Implements Element.

Definition at line 379 of file Seg.cpp.

379  {/*{{{*/
380  return new GaussSeg(order);
381 }

◆ NewGauss() [3/6]

Gauss * Seg::NewGauss ( IssmDouble xyz_list,
IssmDouble xyz_list_front,
int  order 
)
virtual

Implements Element.

Definition at line 383 of file Seg.cpp.

383  {/*{{{*/
384 
385  /*Output*/
386  Gauss* gauss = NULL;
387 
388  if(xyz_list_front[0] == xyz_list[0]){
389  gauss = new GaussSeg(-1.);
390  }
391  else if(xyz_list_front[0] == xyz_list[3*1+0]){
392  gauss = new GaussSeg(+1.);
393  }
394  else{
395  _error_("front is not located on element edge");
396  }
397 
398  return gauss;
399 }

◆ NewGauss() [4/6]

Gauss* Seg::NewGauss ( IssmDouble xyz_list,
IssmDouble xyz_list_front,
int  order_horiz,
int  order_vert 
)
inlinevirtual

Implements Element.

Definition at line 109 of file Seg.h.

109 {_error_("not implemented yet");};

◆ NewGauss() [5/6]

Gauss* Seg::NewGauss ( int  point1,
IssmDouble  fraction1,
IssmDouble  fraction2,
bool  mainlyfloating,
int  order 
)
inlinevirtual

Implements Element.

Definition at line 110 of file Seg.h.

110 {_error_("not implemented yet");};

◆ NewGauss() [6/6]

Gauss* Seg::NewGauss ( int  point1,
IssmDouble  fraction1,
IssmDouble  fraction2,
int  order 
)
inlinevirtual

Implements Element.

Definition at line 111 of file Seg.h.

111 {_error_("not implemented yet");};

◆ NewGaussBase()

Gauss* Seg::NewGaussBase ( int  order)
inlinevirtual

Implements Element.

Definition at line 112 of file Seg.h.

112 {_error_("not implemented yet");};

◆ NewGaussLine()

Gauss* Seg::NewGaussLine ( int  vertex1,
int  vertex2,
int  order 
)
inlinevirtual

Implements Element.

Definition at line 113 of file Seg.h.

113 {_error_("not implemented yet");};

◆ NewGaussTop()

Gauss* Seg::NewGaussTop ( int  order)
inlinevirtual

Implements Element.

Definition at line 114 of file Seg.h.

114 {_error_("not implemented yet");};

◆ NodalValue()

int Seg::NodalValue ( IssmDouble pvalue,
int  index,
int  natureofdataenum 
)
inlinevirtual

Implements Element.

Definition at line 115 of file Seg.h.

115 {_error_("not implemented yet");};

◆ NodalFunctions()

void Seg::NodalFunctions ( IssmDouble basis,
Gauss gauss 
)
virtual

Implements Element.

Definition at line 401 of file Seg.cpp.

401  {/*{{{*/
402 
403  _assert_(gauss->Enum()==GaussSegEnum);
404  this->GetNodalFunctions(basis,(GaussSeg*)gauss,this->element_type);
405 
406 }

◆ NodalFunctionsDerivatives()

void Seg::NodalFunctionsDerivatives ( IssmDouble dbasis,
IssmDouble xyz_list,
Gauss gauss 
)
virtual

Implements Element.

Definition at line 408 of file Seg.cpp.

408  {/*{{{*/
409 
410  _assert_(gauss->Enum()==GaussSegEnum);
411  this->GetNodalFunctionsDerivatives(dbasis,xyz_list,(GaussSeg*)gauss,this->element_type);
412 
413 }

◆ NodalFunctionsDerivativesVelocity()

void Seg::NodalFunctionsDerivativesVelocity ( IssmDouble dbasis,
IssmDouble xyz_list,
Gauss gauss 
)
inlinevirtual

Implements Element.

Definition at line 118 of file Seg.h.

118 {_error_("not implemented yet");};

◆ NodalFunctionsMINIDerivatives()

void Seg::NodalFunctionsMINIDerivatives ( IssmDouble dbasis,
IssmDouble xyz_list,
Gauss gauss 
)
inlinevirtual

Implements Element.

Definition at line 119 of file Seg.h.

119 {_error_("not implemented yet");};

◆ NodalFunctionsPressure()

void Seg::NodalFunctionsPressure ( IssmDouble basis,
Gauss gauss 
)
inlinevirtual

Implements Element.

Definition at line 120 of file Seg.h.

120 {_error_("not implemented yet");};

◆ NodalFunctionsP1()

void Seg::NodalFunctionsP1 ( IssmDouble basis,
Gauss gauss 
)
virtual

Implements Element.

Definition at line 415 of file Seg.cpp.

415  {/*{{{*/
416 
417  _assert_(gauss->Enum()==GaussSegEnum);
418  this->GetNodalFunctions(basis,(GaussSeg*)gauss,P1Enum);
419 
420 }

◆ NodalFunctionsP1Derivatives()

void Seg::NodalFunctionsP1Derivatives ( IssmDouble dbasis,
IssmDouble xyz_list,
Gauss gauss 
)
inlinevirtual

Implements Element.

Definition at line 122 of file Seg.h.

122 {_error_("not implemented yet");};

◆ NodalFunctionsP2()

void Seg::NodalFunctionsP2 ( IssmDouble basis,
Gauss gauss 
)
virtual

Implements Element.

Definition at line 422 of file Seg.cpp.

422  {/*{{{*/
423 
424  _assert_(gauss->Enum()==GaussSegEnum);
425  this->GetNodalFunctions(basis,(GaussSeg*)gauss,P2Enum);
426 
427 }

◆ NodalFunctionsTensor()

void Seg::NodalFunctionsTensor ( IssmDouble basis,
Gauss gauss 
)
inlinevirtual

Implements Element.

Definition at line 124 of file Seg.h.

124 {_error_("not implemented yet");};

◆ NodalFunctionsVelocity()

void Seg::NodalFunctionsVelocity ( IssmDouble basis,
Gauss gauss 
)
inlinevirtual

Implements Element.

Definition at line 125 of file Seg.h.

125 {_error_("not implemented yet");};

◆ NormalBase()

void Seg::NormalBase ( IssmDouble normal,
IssmDouble xyz_list 
)
inlinevirtual

Implements Element.

Definition at line 126 of file Seg.h.

126 {_error_("not implemented yet");};

◆ NormalSection()

void Seg::NormalSection ( IssmDouble normal,
IssmDouble xyz_list 
)
virtual

Implements Element.

Definition at line 429 of file Seg.cpp.

429  {/*{{{*/
430 
431  IssmDouble* xyz_list = xNew<IssmDouble>(NUMVERTICES*3);
433 
434  if(xyz_list_front[0]>xyz_list[0])
435  normal[0]= + 1.;
436  else
437  normal[0]= - 1.;
438 
439  xDelete<IssmDouble>(xyz_list);
440 }

◆ NormalTop()

void Seg::NormalTop ( IssmDouble normal,
IssmDouble xyz_list 
)
inlinevirtual

Implements Element.

Definition at line 128 of file Seg.h.

128 {_error_("not implemented yet");};

◆ NumberofNodesPressure()

int Seg::NumberofNodesPressure ( void  )
inlinevirtual

Implements Element.

Definition at line 129 of file Seg.h.

129 {_error_("not implemented yet");};

◆ NumberofNodesVelocity()

int Seg::NumberofNodesVelocity ( void  )
inlinevirtual

Implements Element.

Definition at line 130 of file Seg.h.

130 {_error_("not implemented yet");};

◆ PotentialUngrounding()

void Seg::PotentialUngrounding ( Vector< IssmDouble > *  potential_sheet_ungrounding)
inlinevirtual

Implements Element.

Definition at line 131 of file Seg.h.

131 {_error_("not implemented yet");};

◆ PressureInterpolation()

int Seg::PressureInterpolation ( void  )
inlinevirtual

Implements Element.

Definition at line 132 of file Seg.h.

132 {_error_("not implemented yet");};

◆ ReduceMatrices()

void Seg::ReduceMatrices ( ElementMatrix Ke,
ElementVector pe 
)
inlinevirtual

Implements Element.

Definition at line 133 of file Seg.h.

133 {_error_("not implemented yet");};

◆ ResetFSBasalBoundaryCondition()

void Seg::ResetFSBasalBoundaryCondition ( void  )
inlinevirtual

Implements Element.

Definition at line 134 of file Seg.h.

134 {_error_("not implemented yet");};

◆ ResetHooks()

void Seg::ResetHooks ( )
inlinevirtual

Implements Element.

Definition at line 135 of file Seg.h.

135 {_error_("not implemented yet");};

◆ SetControlInputsFromVector() [1/2]

void Seg::SetControlInputsFromVector ( IssmDouble vector,
int  control_enum,
int  control_index,
int  offset,
int  N,
int  M 
)
inlinevirtual

Implements Element.

Definition at line 136 of file Seg.h.

136 {_error_("not implemented yet");};

◆ SetControlInputsFromVector() [2/2]

void Seg::SetControlInputsFromVector ( IssmDouble vector,
int  control_enum,
int  control_index 
)
inlinevirtual

Implements Element.

Definition at line 137 of file Seg.h.

137 {_error_("not implemented yet");};

◆ SetCurrentConfiguration()

void Seg::SetCurrentConfiguration ( Elements elements,
Loads loads,
Nodes nodes,
Materials materials,
Parameters parameters 
)
inlinevirtual

Implements Element.

Definition at line 138 of file Seg.h.

138 {_error_("not implemented yet");};

◆ SetTemporaryElementType()

void Seg::SetTemporaryElementType ( int  element_type_in)
inlinevirtual

Implements Element.

Definition at line 139 of file Seg.h.

139 {_error_("not implemented yet");};

◆ SpawnBasalElement()

Element* Seg::SpawnBasalElement ( void  )
inlinevirtual

Implements Element.

Definition at line 140 of file Seg.h.

140 {_error_("not implemented yet");};

◆ SpawnTopElement()

Element* Seg::SpawnTopElement ( void  )
inlinevirtual

Implements Element.

Definition at line 141 of file Seg.h.

141 {_error_("not implemented yet");};

◆ StabilizationParameter()

IssmDouble Seg::StabilizationParameter ( IssmDouble  u,
IssmDouble  v,
IssmDouble  w,
IssmDouble  diameter,
IssmDouble  kappa 
)
inlinevirtual

Implements Element.

Definition at line 142 of file Seg.h.

142 {_error_("not implemented yet");};

◆ StabilizationParameterAnisotropic()

void Seg::StabilizationParameterAnisotropic ( IssmDouble tau_parameter_anisotropic,
IssmDouble  u,
IssmDouble  v,
IssmDouble  w,
IssmDouble  hx,
IssmDouble  hy,
IssmDouble  hz,
IssmDouble  kappa 
)
inlinevirtual

Implements Element.

Definition at line 143 of file Seg.h.

143 {_error_("not implemented yet");};

◆ StrainRateparallel()

void Seg::StrainRateparallel ( void  )
inlinevirtual

Implements Element.

Definition at line 144 of file Seg.h.

144 {_error_("not implemented yet");};

◆ StrainRateperpendicular()

void Seg::StrainRateperpendicular ( void  )
inlinevirtual

Implements Element.

Definition at line 145 of file Seg.h.

145 {_error_("not implemented yet");};

◆ StressIntensityFactor()

void Seg::StressIntensityFactor ( void  )
inlinevirtual

Implements Element.

Definition at line 146 of file Seg.h.

146 {_error_("not implemented yet");};

◆ SurfaceArea()

IssmDouble Seg::SurfaceArea ( void  )
inlinevirtual

Implements Element.

Definition at line 147 of file Seg.h.

147 {_error_("not implemented yet");};

◆ TensorInterpolation()

int Seg::TensorInterpolation ( void  )
inlinevirtual

Implements Element.

Definition at line 148 of file Seg.h.

148 {_error_("not implemented yet");};

◆ TimeAdapt()

IssmDouble Seg::TimeAdapt ( void  )
inlinevirtual

Implements Element.

Definition at line 149 of file Seg.h.

149 {_error_("not implemented yet");};

◆ TotalFloatingBmb()

IssmDouble Seg::TotalFloatingBmb ( bool  scaled)
inlinevirtual

Implements Element.

Definition at line 150 of file Seg.h.

150 {_error_("not implemented yet");};

◆ TotalGroundedBmb()

IssmDouble Seg::TotalGroundedBmb ( bool  scaled)
inlinevirtual

Implements Element.

Definition at line 151 of file Seg.h.

151 {_error_("not implemented yet");};

◆ TotalSmb()

IssmDouble Seg::TotalSmb ( bool  scaled)
inlinevirtual

Implements Element.

Definition at line 152 of file Seg.h.

152 {_error_("not implemented yet");};

◆ Update()

void Seg::Update ( Inputs2 inputs2,
int  index,
IoModel iomodel,
int  analysis_counter,
int  analysis_type,
int  finitelement 
)
inlinevirtual

Implements Element.

Definition at line 153 of file Seg.h.

153 {_error_("not implemented yet");};

◆ UpdateConstraintsExtrudeFromBase()

void Seg::UpdateConstraintsExtrudeFromBase ( void  )
inlinevirtual

Implements Element.

Definition at line 154 of file Seg.h.

154 {_error_("not implemented");};

◆ UpdateConstraintsExtrudeFromTop()

void Seg::UpdateConstraintsExtrudeFromTop ( void  )
inlinevirtual

Implements Element.

Definition at line 155 of file Seg.h.

155 {_error_("not implemented");};

◆ UpdatePotentialUngrounding()

int Seg::UpdatePotentialUngrounding ( IssmDouble vertices_potentially_ungrounding,
Vector< IssmDouble > *  vec_nodes_on_iceshelf,
IssmDouble nodes_on_iceshelf 
)
inlinevirtual

Implements Element.

Definition at line 156 of file Seg.h.

156 {_error_("not implemented yet");};

◆ ValueP1DerivativesOnGauss()

void Seg::ValueP1DerivativesOnGauss ( IssmDouble dvalue,
IssmDouble values,
IssmDouble xyz_list,
Gauss gauss 
)
inlinevirtual

Implements Element.

Definition at line 157 of file Seg.h.

157 {_error_("not implemented yet");};

◆ ValueP1OnGauss()

void Seg::ValueP1OnGauss ( IssmDouble pvalue,
IssmDouble values,
Gauss gauss 
)
inlinevirtual

Implements Element.

Definition at line 158 of file Seg.h.

158 {_error_("not implemented yet");};

◆ VelocityInterpolation()

int Seg::VelocityInterpolation ( void  )
inlinevirtual

Implements Element.

Definition at line 159 of file Seg.h.

159 {_error_("not implemented yet");};

◆ VertexConnectivity()

int Seg::VertexConnectivity ( int  vertexindex)
inlinevirtual

Implements Element.

Definition at line 160 of file Seg.h.

160 {_error_("not implemented yet");};

◆ VerticalSegmentIndices()

void Seg::VerticalSegmentIndices ( int **  pindices,
int *  pnumseg 
)
inlinevirtual

Implements Element.

Definition at line 161 of file Seg.h.

161 {_error_("not implemented yet");};

◆ VerticalSegmentIndicesBase()

void Seg::VerticalSegmentIndicesBase ( int **  pindices,
int *  pnumseg 
)
inlinevirtual

Implements Element.

Definition at line 162 of file Seg.h.

162 {_error_("not implemented yet");};

◆ GetArea3D()

IssmDouble Seg::GetArea3D ( void  )
inline

Definition at line 163 of file Seg.h.

163 {_error_("not implemented yet!");};

◆ GetAreaSpherical()

IssmDouble Seg::GetAreaSpherical ( void  )
inline

Definition at line 164 of file Seg.h.

164 {_error_("not implemented yet!");};

Field Documentation

◆ iscollapsed

int Seg::iscollapsed

Definition at line 30 of file Seg.h.

◆ collapsed_ids

int Seg::collapsed_ids[2]

Definition at line 31 of file Seg.h.


The documentation for this class was generated from the following files:
ElementHook::ElementHook
ElementHook()
Definition: ElementHook.cpp:18
Element::lid
int lid
Definition: Element.h:46
_assert_
#define _assert_(ignore)
Definition: exceptions.h:37
IssmDouble
double IssmDouble
Definition: types.h:37
TriaInput2::SetServeCollapsed
void SetServeCollapsed(bool)
Definition: TriaInput2.cpp:250
Seg::Seg
Seg()
Definition: Seg.h:34
MaskOceanLevelsetEnum
@ MaskOceanLevelsetEnum
Definition: EnumDefinitions.h:640
Hook::deliverp
Object ** deliverp(void)
Definition: Hook.cpp:187
MaskIceLevelsetEnum
@ MaskIceLevelsetEnum
Definition: EnumDefinitions.h:641
MARSHALLING_ENUM
#define MARSHALLING_ENUM(EN)
Definition: Marshalling.h:14
Seg::collapsed_ids
int collapsed_ids[2]
Definition: Seg.h:31
Seg::iscollapsed
int iscollapsed
Definition: Seg.h:30
P0Enum
@ P0Enum
Definition: EnumDefinitions.h:661
TriaInput2::Serve
void Serve(int numindices, int *indices)
Definition: TriaInput2.cpp:202
P1DGEnum
@ P1DGEnum
Definition: EnumDefinitions.h:1215
Element::vertices
Vertex ** vertices
Definition: Element.h:49
Material
Definition: Material.h:21
SegRef::GetNodalFunctionsDerivatives
void GetNodalFunctionsDerivatives(IssmDouble *dbasis, IssmDouble *xyz_list, GaussSeg *gauss, int finiteelement)
Definition: SegRef.cpp:138
SegEnum
@ SegEnum
Definition: EnumDefinitions.h:1268
Element::isonbase
bool isonbase
Definition: Element.h:53
SegInput2
Definition: SegInput2.h:8
SegRef::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: SegRef.h:26
ElementHook::hmaterial
Hook * hmaterial
Definition: ElementHook.h:17
Element::nodes
Node ** nodes
Definition: Element.h:48
P1Enum
@ P1Enum
Definition: EnumDefinitions.h:662
SegInput2::Serve
void Serve(int numindices, int *indices)
Definition: SegInput2.cpp:197
Seg::copy
Object * copy()
Definition: Seg.cpp:59
TriaInput2::ServeCollapsed
void ServeCollapsed(int row, int id0, int in1)
Definition: TriaInput2.cpp:234
Hook::delivers
Object * delivers(void)
Definition: Hook.cpp:191
Element::inputs2
Inputs2 * inputs2
Definition: Element.h:47
Element::id
int id
Definition: Element.h:44
Element::sid
int sid
Definition: Element.h:45
GaussSeg::GaussVertex
void GaussVertex(int iv)
Definition: GaussSeg.cpp:152
TriaInput2
Definition: TriaInput2.h:8
Hook
Definition: Hook.h:16
Element::element_type_list
int * element_type_list
Definition: Element.h:55
Seg::GetNumberOfNodes
int GetNumberOfNodes(void)
Definition: Seg.cpp:286
MARSHALLING
#define MARSHALLING(FIELD)
Definition: Marshalling.h:29
SegRef::GetJacobianDeterminant
void GetJacobianDeterminant(IssmDouble *Jdet, IssmDouble *xyz_list, GaussSeg *gauss)
Definition: SegRef.cpp:93
Gauss::Enum
virtual int Enum(void)=0
SegInput2::GetInterpolation
int GetInterpolation()
Definition: SegInput2.cpp:227
TriaInput2::GetInterpolation
int GetInterpolation()
Definition: TriaInput2.cpp:253
Hook::copy
Object * copy(void)
Definition: Hook.cpp:61
SegRef::NumberofNodes
int NumberofNodes(int finiteelement)
Definition: SegRef.cpp:191
P1bubbleEnum
@ P1bubbleEnum
Definition: EnumDefinitions.h:1218
ElementHook::Marshall
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Definition: ElementHook.cpp:67
Seg
Definition: Seg.h:27
Inputs2::GetSegInput
SegInput2 * GetSegInput(int enum_type)
Definition: Inputs2.cpp:305
NUMVERTICES
#define NUMVERTICES
Definition: Seg.cpp:21
Element::IsIceInElement
bool IsIceInElement()
Definition: Element.cpp:2021
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
ElementHook::hvertices
Hook * hvertices
Definition: ElementHook.h:16
Inputs2::GetTriaInput
TriaInput2 * GetTriaInput(int enum_type)
Definition: Inputs2.cpp:318
Element::parameters
Parameters * parameters
Definition: Element.h:51
GaussSegEnum
@ GaussSegEnum
Definition: EnumDefinitions.h:1079
Seg::FiniteElement
int FiniteElement(void)
Definition: Seg.cpp:155
ElementHook::hneighbors
Hook * hneighbors
Definition: ElementHook.h:18
Seg::GetVerticesCoordinates
void GetVerticesCoordinates(IssmDouble **pxyz_list)
Definition: Seg.cpp:294
P2Enum
@ P2Enum
Definition: EnumDefinitions.h:1223
ElementHook::hnodes
Hook ** hnodes
Definition: ElementHook.h:15
Element::MarshallElement
void MarshallElement(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction, int numanalyses)
Definition: Element.cpp:2222
Input2::GetInputValue
virtual void GetInputValue(IssmDouble *pvalue, Gauss *gauss)
Definition: Input2.h:38
Vertex
Definition: Vertex.h:19
GaussSeg::GaussNode
void GaussNode(int finitelement, int iv)
Definition: GaussSeg.cpp:133
IssmPDouble
IssmDouble IssmPDouble
Definition: types.h:38
Element::GetInputListOnVertices
void GetInputListOnVertices(IssmDouble *pvalue, int enumtype)
Definition: Element.cpp:1131
SegRef::GetNodalFunctions
void GetNodalFunctions(IssmDouble *basis, GaussSeg *gauss, int finiteelement)
Definition: SegRef.cpp:115
GaussSeg
Definition: GaussSeg.h:12
Element::isonsurface
bool isonsurface
Definition: Element.h:52
Element::element_type
int element_type
Definition: Element.h:56
Gauss
Definition: Gauss.h:8
Element::material
Material * material
Definition: Element.h:50
ElementHook::numanalyses
int numanalyses
Definition: ElementHook.h:14