 |
Ice Sheet System Model
4.18
Code documentation
|
Go to the documentation of this file.
25 #include "../../shared/Exceptions/exceptions.h"
26 #include "../../shared/Enum/Enum.h"
36 Tria(
int tria_id,
int tria_sid,
int tria_lid,
IoModel* iomodel,
int nummodels);
41 void Marshall(
char** pmarshalled_data,
int* pmarshalled_data_size,
int marshall_direction);
46 void InputUpdateFromMatrixDakota(
IssmDouble* matrix,
int nows,
int ncols,
int name,
int type);
47 void InputUpdateFromVectorDakota(
IssmDouble* vector,
int name,
int type);
164 #ifdef _HAVE_SEALEVELRISE_
void GetInputListOnNodes(IssmDouble *pvalue, Input2 *input, IssmDouble default_value)
Declaration of Vertices class.
void StrainRateparallel()
void Update(Inputs2 *inputs2, int index, IoModel *iomodel, int analysis_counter, int analysis_type, int finitelement)
void ComputeSurfaceNormalVelocity()
int GetNumberOfVertices(void)
Declaration of Nodes class.
IssmDouble GetHorizontalSurfaceArea(void)
void NodalFunctionsDerivativesVelocity(IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
void EdgeOnSurfaceIndices(int *pindex1, int *pindex)
void ComputeDeviatoricStressTensor()
void ValueP1OnGauss(IssmDouble *pvalue, IssmDouble *values, Gauss *gauss)
void ElementSizes(IssmDouble *hx, IssmDouble *hy, IssmDouble *hz)
void AddBasalInput2(int input_enum, IssmDouble *values, int interpolation_enum)
void SetControlInputsFromVector(IssmDouble *vector, int control_enum, int control_index, int offset, int N, int M)
IssmDouble GroundinglineMassFlux(bool scaled)
void JacobianDeterminantBase(IssmDouble *pJdet, IssmDouble *xyz_list_base, Gauss *gauss)
Declaration of Parameters class.
abstract class for handling Tria oriented routines, like nodal functions, strain rate generation,...
void GetLevelCoordinates(IssmDouble **pxyz_front, IssmDouble *xyz_list, int levelsetenum, IssmDouble level)
void ControlToVectors(Vector< IssmPDouble > *vector_control, Vector< IssmPDouble > *vector_gradient, int control_enum)
void RignotMeltParameterization()
void SetCurrentConfiguration(Elements *elements, Loads *loads, Nodes *nodes, Materials *materials, Parameters *parameters)
Declaration of Elements class.
Element * SpawnBasalElement(void)
void ControlInputExtrude(int enum_type, int start)
void AverageOntoPartition(Vector< IssmDouble > *partition_contributions, Vector< IssmDouble > *partition_areas, IssmDouble *vertex_response, IssmDouble *qmu_part)
void EdgeOnBaseIndices(int *pindex1, int *pindex)
IssmDouble TotalCalvingMeltingFluxLevelset(bool scaled)
void WriteFieldIsovalueSegment(DataSet *segments, int fieldenum, IssmDouble fieldvalue)
void ResetLevelsetFromSegmentlist(IssmDouble *segments, int numsegments)
void InputUpdateFromSolutionOneDof(IssmDouble *solution, int enum_type)
int PressureInterpolation()
void CreateDistanceInputFromSegmentlist(IssmDouble *distances, int distanceenum)
void ComputeEsaStrainAndVorticity()
void NodalFunctionsTensor(IssmDouble *basis, Gauss *gauss)
IssmDouble IceVolume(bool scaled)
int NumberofNodesPressure(void)
IssmDouble MassFlux(IssmDouble *segment)
void ElementResponse(IssmDouble *presponse, int response_enum)
void InputUpdateFromSolutionOneDofCollapsed(IssmDouble *solution, int enum_type)
void StressIntensityFactor(void)
Seg * SpawnSeg(int index1, int index2)
void StrainRateperpendicular()
void GetVerticesCoordinatesTop(IssmDouble **pxyz_list)
void CreateInputTimeAverage(int transientinput_enum, int averagedinput_enum, IssmDouble init_time, IssmDouble end_time, int averaging_method)
void ControlInputSetGradient(IssmDouble *gradient, int enum_type, int control_index, int offset, int N, int M)
void NodalFunctionsPressure(IssmDouble *basis, Gauss *gauss)
void GetLevelsetPositivePart(int *point1, IssmDouble *fraction1, IssmDouble *fraction2, bool *mainlynegative, IssmDouble *levelsetvalues)
void NodalFunctionsDerivatives(IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
int VelocityInterpolation()
void CalvingMeltingFluxLevelset()
IssmDouble IcefrontMassFlux(bool scaled)
void CalvingCrevasseDepth()
void ComputeBasalStress(void)
void JacobianDeterminantLine(IssmDouble *Jdet, IssmDouble *xyz_list, Gauss *gauss)
abstract class for Element object This class is a place holder for the Tria and the Penta elements....
void InputServe(Input2 *input_in)
void NormalTop(IssmDouble *normal, IssmDouble *xyz_list)
void GetVectorFromControlInputs(Vector< IssmDouble > *gradient, int control_enum, int control_index, const char *data, int offset)
void NormalBase(IssmDouble *normal, IssmDouble *xyz_list)
void GetLevelsetIntersection(int **pindices, int *pnumiceverts, IssmDouble *fraction, int levelset_enum, IssmDouble level)
void ComputeStressTensor()
Declaration of Materials class.
void CalvingRateVonmises()
IssmDouble GetArea3D(void)
void ReduceMatrices(ElementMatrix *Ke, ElementVector *pe)
void GetInputAveragesUpToCurrentTime(int input_enum, IssmDouble **pvalues, IssmDouble **ptimes, int *pnumtimes, IssmDouble currenttime)
void JacobianDeterminantSurface(IssmDouble *pJdet, IssmDouble *xyz_list, Gauss *gauss)
IssmDouble Masscon(IssmDouble *levelset)
void Configure(Elements *elements, Loads *loads, Nodes *nodesin, Vertices *verticesin, Materials *materials, Parameters *parameters, Inputs2 *inputs2in)
IssmDouble CharacteristicLength(void)
void UpdateConstraintsExtrudeFromTop(void)
void GetMaterialInputValue(IssmDouble *pvalue, Node *node, int enumtype)
IssmDouble FloatingArea(bool scaled)
int GetNumberOfNodes(void)
void GetAreaCoordinates(IssmDouble *area_coordinates, IssmDouble *xyz_zero, IssmDouble *xyz_list, int numpoints)
Gauss * NewGaussLine(int vertex1, int vertex2, int order)
void InputExtrude(int enum_type, int start)
void NormalSection(IssmDouble *normal, IssmDouble *xyz_list)
void NodalFunctionsMINIDerivatives(IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
void VerticalSegmentIndicesBase(int **pindices, int *pnumseg)
IssmDouble TotalGroundedBmb(bool scaled)
void NodalFunctions(IssmDouble *basis, Gauss *gauss)
bool IsNodeOnShelfFromFlags(IssmDouble *flags)
Gauss * NewGaussBase(int order)
Element * GetBasalElement(void)
void StabilizationParameterAnisotropic(IssmDouble *tau_parameter_ansiotropic, IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble hx, IssmDouble hy, IssmDouble hz, IssmDouble kappa)
IssmDouble IcefrontMassFluxLevelset(bool scaled)
DatasetInput2 * GetDatasetInput2(int inputenum)
IssmDouble Misfit(int modelenum, int observationenum, int weightsenum)
void GetIcefrontCoordinates(IssmDouble **pxyz_front, IssmDouble *xyz_list, int levelsetenum)
IssmDouble MisfitArea(int weightsenum)
IssmDouble GetAreaSpherical(void)
void GetInputValue(IssmDouble *pvalue, Node *node, int enumtype)
void NodalFunctionsP2(IssmDouble *basis, Gauss *gauss)
Declaration of Loads class.
IssmDouble GetGroundedPortion(IssmDouble *xyz_list)
IssmDouble SurfaceArea(void)
void MaterialUpdateFromTemperature(void)
#define _error_(StreamArgs)
IssmDouble GetAreaIce(void)
void NodalFunctionsP1Derivatives(IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
IssmDouble GroundedArea(bool scaled)
IssmDouble IceVolumeAboveFloatation(bool scaled)
void JacobianDeterminant(IssmDouble *pJdet, IssmDouble *xyz_list, Gauss *gauss)
void FSContactMigration(Vector< IssmDouble > *vertex_sigmann, Vector< IssmDouble > *vertex_waterpressure)
void AddControlInput(int input_enum, Inputs2 *inputs2, IoModel *iomodel, IssmDouble *values, IssmDouble *values_min, IssmDouble *values_max, int interpolation_enum, int id)
void JacobianDeterminantTop(IssmDouble *pJdet, IssmDouble *xyz_list_base, Gauss *gauss)
void ValueP1DerivativesOnGauss(IssmDouble *dvalue, IssmDouble *values, IssmDouble *xyz_list, Gauss *gauss)
void DatasetInputCreate(IssmDouble *array, int M, int N, int *individual_enums, int num_inputs, Inputs2 *inputs2, IoModel *iomodel, int input_enum)
int UpdatePotentialUngrounding(IssmDouble *vertices_potentially_ungrounding, Vector< IssmDouble > *vec_nodes_on_iceshelf, IssmDouble *nodes_on_iceshelf)
Element * SpawnTopElement(void)
void SetTemporaryElementType(int element_type_in)
bool IsFaceOnBoundary(void)
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
int NodalValue(IssmDouble *pvalue, int index, int natureofdataenum)
void CalvingRateLevermann()
void PotentialUngrounding(Vector< IssmDouble > *potential_sheet_ungrounding)
void NodalFunctionsP1(IssmDouble *basis, Gauss *gauss)
void AddInput2(int input_enum, IssmDouble *values, int interpolation_enum)
bool IsZeroLevelset(int levelset_enum)
void InputUpdateFromIoModel(int index, IoModel *iomodel)
void SetElementInput(int enum_in, IssmDouble values)
void InputDepthAverageAtBase(int enum_type, int average_enum_type)
IssmDouble TotalSmb(bool scaled)
IssmDouble MinEdgeLength(IssmDouble *xyz_list)
IssmDouble TotalCalvingFluxLevelset(bool scaled)
Declaration of DataSet class.
int VertexConnectivity(int vertexindex)
void UpdateConstraintsExtrudeFromBase(void)
void VerticalSegmentIndices(int **pindices, int *pnumseg)
void GetGroundedPart(int *point1, IssmDouble *fraction1, IssmDouble *fraction2, bool *mainlyfloating)
Gauss * NewGaussTop(int order)
int NumberofNodesVelocity(void)
Declaration of Results class.
prototypes for ElementHook.h
void CalvingFluxLevelset()
IssmDouble GetIcefrontArea()
void GetInputListOnVertices(IssmDouble *pvalue, Input2 *input, IssmDouble default_value)
IssmDouble StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa)
Input2 * GetInput2(int enumtype)
void InputUpdateFromVector(IssmDouble *vector, int name, int type)
int GetVertexIndex(Vertex *vertex)
IssmDouble TotalFloatingBmb(bool scaled)
void ResetFSBasalBoundaryCondition(void)
void NodalFunctionsVelocity(IssmDouble *basis, Gauss *gauss)
void GetVerticesCoordinatesBase(IssmDouble **pxyz_list)
int TensorInterpolation()