 |
Ice Sheet System Model
4.18
Code documentation
|
Go to the documentation of this file.
23 #include "../../shared/Exceptions/exceptions.h"
24 #include "../../shared/Enum/Enum.h"
33 Tetra(
int tet_id,
int tet_sid,
int tet_lid,
IoModel* iomodel,
int nummodels);
38 void Marshall(
char** pmarshalled_data,
int* pmarshalled_data_size,
int marshall_direction);
179 #ifdef _HAVE_SEALEVELRISE_
190 void InputUpdateFromVectorDakota(
IssmDouble* vector,
int name,
int type){
_error_(
"not implemented yet");};
191 void InputUpdateFromMatrixDakota(
IssmDouble* matrix,
int nows,
int ncols,
int name,
int type){
_error_(
"not implemented yet");};
IssmDouble TotalFloatingBmb(bool scaled)
Tria * SpawnTria(int index1, int index2, int index3)
Declaration of Vertices class.
IssmDouble GetGroundedPortion(IssmDouble *xyz_list)
Declaration of Nodes class.
int PressureInterpolation(void)
void ElementResponse(IssmDouble *presponse, int response_enum)
Gauss * NewGauss(int point1, IssmDouble fraction1, IssmDouble fraction2, bool mainlyfloating, int order)
void ComputeStressTensor()
void StabilizationParameterAnisotropic(IssmDouble *tau_parameter_anisotropic, IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble hx, IssmDouble hy, IssmDouble hz, IssmDouble kappa)
void NodalFunctions(IssmDouble *basis, Gauss *gauss)
abstract class for handling Tetra oriented routines, like nodal functions, strain rate generation,...
Declaration of Parameters class.
void JacobianDeterminantBase(IssmDouble *pJdet, IssmDouble *xyz_list_base, Gauss *gauss)
void MaterialUpdateFromTemperature(void)
bool IsZeroLevelset(int levelset_enum)
void ResetFSBasalBoundaryCondition(void)
IssmDouble GetArea3D(void)
void NodalFunctionsDerivatives(IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
Declaration of Elements class.
int VertexConnectivity(int vertexindex)
void NodalFunctionsP1(IssmDouble *basis, Gauss *gauss)
void PotentialUngrounding(Vector< IssmDouble > *potential_sheet_ungrounding)
Gauss * NewGauss(IssmDouble *xyz_list, IssmDouble *xyz_list_front, int order)
void VerticalSegmentIndicesBase(int **pindices, int *pnumseg)
IssmDouble IceVolume(bool scaled)
void InputUpdateFromSolutionOneDof(IssmDouble *solution, int inputenum)
int NumberofNodesPressure(void)
void JacobianDeterminant(IssmDouble *Jdet, IssmDouble *xyz_list, Gauss *gauss)
IssmDouble Masscon(IssmDouble *levelset)
void NodalFunctionsTensor(IssmDouble *basis, Gauss *gauss)
void InputUpdateFromSolutionOneDofCollapsed(IssmDouble *solution, int inputenum)
void JacobianDeterminantLine(IssmDouble *Jdet, IssmDouble *xyz_list, Gauss *gauss)
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
Input2 * GetInput2(int enumtype)
bool IsFaceOnBoundary(void)
IssmDouble StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa)
void GetInputListOnVertices(IssmDouble *pvalue, Input2 *input, IssmDouble default_value)
void StrainRateparallel(void)
void InputUpdateFromVector(IssmDouble *vector, int name, int type)
void InputUpdateFromIoModel(int index, IoModel *iomodel)
int GetNumberOfNodes(void)
void SetControlInputsFromVector(IssmDouble *vector, int control_enum, int control_index, int offset, int N, int M)
void NormalSection(IssmDouble *normal, IssmDouble *xyz_list)
void ControlInputSetGradient(IssmDouble *gradient, int enum_type, int control_index)
abstract class for Element object This class is a place holder for the Tria and the Penta elements....
int NodalValue(IssmDouble *pvalue, int index, int natureofdataenum)
IssmDouble DragCoefficientAbsGradient(void)
Gauss * NewGaussLine(int vertex1, int vertex2, int order)
Declaration of Materials class.
IssmDouble IceVolumeAboveFloatation(bool scaled)
void ComputeEsaStrainAndVorticity()
Gauss * NewGauss(int point1, IssmDouble fraction1, IssmDouble fraction2, int order)
Gauss * NewGaussBase(int order)
void FSContactMigration(Vector< IssmDouble > *vertexgrounded, Vector< IssmDouble > *vertexfloating)
IssmDouble MinEdgeLength(IssmDouble *xyz_list)
void ReduceMatrices(ElementMatrix *Ke, ElementVector *pe)
IssmDouble TotalSmb(bool scaled)
Gauss * NewGaussTop(int order)
void GetInputValue(IssmDouble *pvalue, Node *node, int enumtype)
void GetVectorFromControlInputs(Vector< IssmDouble > *gradient, int control_enum, int control_index, const char *data, int offset)
void NormalBase(IssmDouble *normal, IssmDouble *xyz_list)
IssmDouble SurfaceArea(void)
int GetNumberOfVertices(void)
void GetVerticesCoordinatesTop(IssmDouble **pxyz_list)
void GradientIndexing(int *indexing, int control_index)
void GetLevelCoordinates(IssmDouble **pxyz_front, IssmDouble *xyz_list, int levelsetenum, IssmDouble level)
IssmDouble MassFlux(IssmDouble *segment)
void SetControlInputsFromVector(IssmDouble *vector, int control_enum, int control_index)
Element * GetBasalElement(void)
void SetTemporaryElementType(int element_type_in)
void ElementSizes(IssmDouble *hx, IssmDouble *hy, IssmDouble *hz)
void ComputeDeviatoricStressTensor()
void Update(Inputs2 *inputs2, int index, IoModel *iomodel, int analysis_counter, int analysis_type, int finitelement)
void NodalFunctionsP1Derivatives(IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
int GetNumberOfNodes(int enum_type)
void InputDepthAverageAtBase(int enum_type, int average_enum_type)
IssmDouble CharacteristicLength(void)
void StressIntensityFactor(void)
int VelocityInterpolation(void)
void NodalFunctionsDerivativesVelocity(IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
void SetCurrentConfiguration(Elements *elements, Loads *loads, Nodes *nodes, Materials *materials, Parameters *parameters)
void GetGroundedPart(int *point1, IssmDouble *fraction1, IssmDouble *fraction2, bool *mainlyfloating)
void VerticalSegmentIndices(int **pindices, int *pnumseg)
Declaration of Loads class.
void ControlToVectors(Vector< IssmPDouble > *vector_control, Vector< IssmPDouble > *vector_gradient, int control_enum)
void NodalFunctionsVelocity(IssmDouble *basis, Gauss *gauss)
void NodalFunctionsP2(IssmDouble *basis, Gauss *gauss)
#define _error_(StreamArgs)
int UpdatePotentialUngrounding(IssmDouble *vertices_potentially_ungrounding, Vector< IssmDouble > *vec_nodes_on_iceshelf, IssmDouble *nodes_on_iceshelf)
void UpdateConstraintsExtrudeFromBase()
void GetVectorFromControlInputs(Vector< IssmDouble > *gradient, int control_enum, int control_index, const char *data)
IssmDouble GetAreaSpherical(void)
void GetVerticesCoordinatesBase(IssmDouble **pxyz_list)
void NodalFunctionsPressure(IssmDouble *basis, Gauss *gauss)
void ViscousHeating(IssmDouble *pphi, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *vz_input)
IssmDouble MassFlux(IssmDouble x1, IssmDouble y1, IssmDouble x2, IssmDouble y2, int segment_id)
void ControlInputSetGradient(IssmDouble *gradient, int enum_type, int control_index, int offset, int N, int M)
void AverageOntoPartition(Vector< IssmDouble > *partition_contributions, Vector< IssmDouble > *partition_areas, IssmDouble *vertex_response, IssmDouble *qmu_part)
IssmDouble MisfitArea(int weightsenum)
void InputExtrude(int enum_type, int start)
void FaceOnBaseIndices(int *pindex1, int *pindex2, int *pindex3)
Input2 * GetInput2(int inputenum, IssmDouble start_time, IssmDouble end_time, int averaging_method)
void NodalFunctionsMINIDerivatives(IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
IssmDouble FloatingArea(bool scaled)
void ValueP1DerivativesOnGauss(IssmDouble *dvalue, IssmDouble *values, IssmDouble *xyz_list, Gauss *gauss)
void CalvingRateLevermann(void)
IssmDouble GroundedArea(bool scaled)
void ValueP1OnGauss(IssmDouble *pvalue, IssmDouble *values, Gauss *gauss)
void NormalTop(IssmDouble *normal, IssmDouble *xyz_list)
void FaceOnSurfaceIndices(int *pindex1, int *pindex2, int *pindex3)
void Configure(Elements *elements, Loads *loads, Nodes *nodesin, Vertices *verticesin, Materials *materials, Parameters *parameters, Inputs2 *inputs2in)
void FaceOnFrontIndices(int *pindex1, int *pindex2, int *pindex3)
void GetIcefrontCoordinates(IssmDouble **pxyz_front, IssmDouble *xyz_list, int levelsetenum)
int TensorInterpolation(void)
bool IsNodeOnShelfFromFlags(IssmDouble *flags)
IssmDouble Misfit(int modelenum, int observationenum, int weightsenum)
IssmDouble TotalGroundedBmb(bool scaled)
Element * SpawnTopElement(void)
void GetInputListOnNodes(IssmDouble *pvalue, Input2 *input, IssmDouble default_value)
Declaration of Results class.
prototypes for ElementHook.h
void StrainRateperpendicular(void)
void GetLevelsetPositivePart(int *point1, IssmDouble *fraction1, IssmDouble *fraction2, bool *mainlynegative, IssmDouble *levelsetvalues)
void JacobianDeterminantSurface(IssmDouble *pJdet, IssmDouble *xyz_list, Gauss *gauss)
Element * SpawnBasalElement(void)
void UpdateConstraintsExtrudeFromTop()
int NumberofNodesVelocity(void)
void JacobianDeterminantTop(IssmDouble *pJdet, IssmDouble *xyz_list_base, Gauss *gauss)