 |
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"
37 Penta(
int penta_id,
int penta_sid,
int penta_lid,
IoModel* iomodel,
int nummodels);
42 void Marshall(
char** pmarshalled_data,
int* pmarshalled_data_size,
int marshall_direction);
189 void Update(
Inputs2* inputs,
int index,
IoModel* iomodel,
int analysis_counter,
int analysis_type,
int finitelement);
202 void InputUpdateFromMatrixDakota(
IssmDouble* matrix,
int nows,
int ncols,
int name,
int type);
203 void InputUpdateFromVectorDakota(
IssmDouble* vector,
int name,
int type);
213 #ifdef _HAVE_SEALEVELRISE_
void DatasetInputExtrude(int enum_type, int start)
void GetAreaCoordinates(IssmDouble *area_coordinates, IssmDouble *xyz_zero, IssmDouble *xyz_list, int numpoints)
void CalvingMeltingFluxLevelset()
void GetGroundedPart(int *point1, IssmDouble *fraction1, IssmDouble *fraction2, bool *mainlyfloating)
Declaration of Vertices class.
void PotentialUngrounding(Vector< IssmDouble > *potential_sheet_ungrounding)
void NodalFunctionsTensor(IssmDouble *basis, Gauss *gauss)
void SetTemporaryElementType(int element_type_in)
void DatasetInputCreate(IssmDouble *array, int M, int N, int *individual_enums, int num_inputs, Inputs2 *inputs2, IoModel *iomodel, int input_enum)
Declaration of Nodes class.
void GetVerticesCoordinatesTop(IssmDouble **pxyz_list)
IssmDouble MinEdgeLength(IssmDouble *xyz_list)
IssmDouble TotalFloatingBmb(bool scaled)
void VerticalSegmentIndices(int **pindices, int *pnumseg)
IssmDouble MisfitArea(int weightsenum)
Gauss * NewGaussLine(int vertex1, int vertex2, int order)
DatasetInput2 * GetDatasetInput2(int inputenum)
abstract class for handling Penta oriented routines, like nodal functions, strain rate generation,...
void GetVerticesCoordinatesBase(IssmDouble **pxyz_list)
Tria * SpawnTria(int index1, int index2, int index3)
void NodalFunctionsP1Derivatives(IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
Declaration of Parameters class.
void NodalFunctionsDerivatives(IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
void JacobianDeterminantTop(IssmDouble *pJdet, IssmDouble *xyz_list_base, Gauss *gauss)
int NumberofNodesVelocity(void)
void InputDepthAverageAtBase(int enum_type, int average_enum_type)
Gauss * NewGaussBase(IssmDouble *xyz_list, IssmDouble *xyz_list_front, int order_horiz)
void NodalFunctionsPressure(IssmDouble *basis, Gauss *gauss)
void GetLevelsetPositivePart(int *point1, IssmDouble *fraction1, IssmDouble *fraction2, bool *mainlynegative, IssmDouble *levelsetvalues)
void JacobianDeterminantSurface(IssmDouble *pJdet, IssmDouble *xyz_list, Gauss *gauss)
IssmDouble IcefrontMassFluxLevelset(bool scaled)
void CalvingRateLevermann()
Declaration of Elements class.
void AverageOntoPartition(Vector< IssmDouble > *partition_contributions, Vector< IssmDouble > *partition_areas, IssmDouble *vertex_response, IssmDouble *qmu_part)
void ComputeStressTensor()
Element * SpawnBasalElement(void)
Element * GetBasalElement(void)
void ControlInputSetGradient(IssmDouble *gradient, int enum_type, int control_index, int offset, int N, int M)
IssmDouble MassFlux(IssmDouble *segment)
void InputUpdateFromSolutionOneDof(IssmDouble *solutiong, int enum_type)
void JacobianDeterminant(IssmDouble *Jdet, IssmDouble *xyz_list, Gauss *gauss)
void UpdateConstraintsExtrudeFromBase(void)
void ElementSizes(IssmDouble *hx, IssmDouble *hy, IssmDouble *hz)
Penta * GetUpperPenta(void)
Penta * GetLowerPenta(void)
void ValueP1DerivativesOnGauss(IssmDouble *dvalue, IssmDouble *values, IssmDouble *xyz_list, Gauss *gauss)
void BasalNodeIndices(int *pnumindices, int **pindices, int finiteelement)
int VertexConnectivity(int vertexindex)
Gauss * NewGauss(IssmDouble *xyz_list, IssmDouble *xyz_list_front, int order)
int NodalValue(IssmDouble *pvalue, int index, int natureofdataenum)
void StabilizationParameterAnisotropic(IssmDouble *tau_parameter_anisotropic, IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble hx, IssmDouble hy, IssmDouble hz, IssmDouble kappa)
int NumberofNodesPressure(void)
IssmDouble Masscon(IssmDouble *levelset)
ElementMatrix * CreateBasalMassMatrix(void)
Gauss * NewGaussTop(int order)
IssmDouble IceVolumeAboveFloatation(bool scaled)
void JacobianDeterminantBase(IssmDouble *pJdet, IssmDouble *xyz_list_base, Gauss *gauss)
Penta ** verticalneighbors
void Configure(Elements *elements, Loads *loads, Nodes *nodes, Vertices *vertices, Materials *materials, Parameters *parameters, Inputs2 *inputs2in)
abstract class for Element object This class is a place holder for the Tria and the Penta elements....
Input2 * GetInput2(int enumtype)
IssmDouble Misfit(int modelenum, int observationenum, int weightsenum)
int UpdatePotentialUngrounding(IssmDouble *potential_sheet_ungrounding, Vector< IssmDouble > *vec_nodes_on_iceshelf, IssmDouble *nodes_on_iceshelf)
IssmDouble GroundedArea(bool scaled)
Gauss * NewGauss(int point1, IssmDouble fraction1, IssmDouble fraction2, int order)
void ControlToVectors(Vector< IssmPDouble > *vector_control, Vector< IssmPDouble > *vector_gradient, int control_enum)
Input2 * GetInput2(int inputenum, IssmDouble start_time, IssmDouble end_time, int averaging_method)
void CalvingFluxLevelset()
Declaration of Materials class.
void GetVectorFromControlInputs(Vector< IssmDouble > *gradient, int control_enum, int control_index, const char *data)
void InputExtrude(int enum_type, int start)
void StressIntensityFactor()
void SetCurrentConfiguration(Elements *elements, Loads *loads, Nodes *nodes, Materials *materials, Parameters *parameters)
Element * SpawnTopElement(void)
void NormalSection(IssmDouble *normal, IssmDouble *xyz_list)
int GetNumberOfVertices(void)
void ElementResponse(IssmDouble *presponse, int response_enum)
void GetLevelCoordinates(IssmDouble **pxyz_front, IssmDouble *xyz_list, int levelsetenum, IssmDouble level)
void NodalFunctionsVelocity(IssmDouble *basis, Gauss *gauss)
void ValueP1OnGauss(IssmDouble *pvalue, IssmDouble *values, Gauss *gauss)
IssmDouble SurfaceArea(void)
int VelocityInterpolation()
IssmDouble TotalGroundedBmb(bool scaled)
IssmDouble TotalCalvingMeltingFluxLevelset(bool scaled)
void ReduceMatrices(ElementMatrix *Ke, ElementVector *pe)
void SetElementInput(int enum_in, IssmDouble values)
IssmDouble StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa)
void GetInputListOnNodes(IssmDouble *pvalue, Input2 *input, IssmDouble default_value)
Penta * GetBasalPenta(void)
void ControlInputExtrude(int enum_type, int start)
bool IsZeroLevelset(int levelset_enum)
IssmDouble TotalSmb(bool scaled)
void ComputeEsaStrainAndVorticity()
void CreateInputTimeAverage(int transientinput_enum, int averagedinput_enum, IssmDouble start_time, IssmDouble end_time, int averaging_method)
void Marshall(char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
bool IsNodeOnShelfFromFlags(IssmDouble *flags)
void GetLevelsetIntersectionBase(int **pindices, int *pnumiceverts, IssmDouble *fraction, int levelset_enum, IssmDouble level)
void NodalFunctionsP2(IssmDouble *basis, Gauss *gauss)
void ViscousHeating(IssmDouble *pphi, IssmDouble *xyz_list, Gauss *gauss, Input2 *vx_input, Input2 *vy_input, Input2 *vz_input)
int GetNumberOfNodes(void)
void NormalTop(IssmDouble *bed_normal, IssmDouble *xyz_list)
void ComputeBasalStress(void)
void NormalBase(IssmDouble *bed_normal, IssmDouble *xyz_list)
void NodalFunctionsP1(IssmDouble *basis, Gauss *gauss)
Declaration of Loads class.
void NodalFunctionsMINIDerivatives(IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
void ComputeDeviatoricStressTensor()
void ResetFSBasalBoundaryCondition(void)
#define _error_(StreamArgs)
void SetControlInputsFromVector(IssmDouble *vector, int control_enum, int control_index, int offset, int N, int M)
IssmDouble FloatingArea(bool scaled)
void GetIcefrontCoordinates(IssmDouble **pxyz_front, IssmDouble *xyz_list, int levelsetenum)
void StrainRateparallel()
void InputUpdateFromVector(IssmDouble *vector, int name, int type)
void GetInputListOnVertices(IssmDouble *pvalue, Input2 *input, IssmDouble default_value)
int GetVertexIndex(Vertex *vertex)
IssmDouble GetIcefrontArea()
int TensorInterpolation()
void FSContactMigration(Vector< IssmDouble > *vertex_sigmann, Vector< IssmDouble > *vertex_waterpressure)
IssmDouble CharacteristicLength(void)
void NodalFunctions(IssmDouble *basis, Gauss *gauss)
void NormalSectionBase(IssmDouble *normal, IssmDouble *xyz_list)
void CalvingRateVonmises()
void StrainRateperpendicular()
void Update(Inputs2 *inputs, int index, IoModel *iomodel, int analysis_counter, int analysis_type, int finitelement)
void RignotMeltParameterization()
IssmDouble GroundinglineMassFlux(bool scaled)
void GetInputValue(IssmDouble *pvalue, Vertex *vertex, int enumtype)
void AddInput2(int input_enum, IssmDouble *values, int interpolation_enum)
IssmDouble GetAreaSpherical(void)
void InputUpdateFromSolutionOneDofCollapsed(IssmDouble *solutiong, int enum_type)
void UpdateConstraintsExtrudeFromTop(void)
void NodalFunctionsDerivativesVelocity(IssmDouble *dbasis, IssmDouble *xyz_list, Gauss *gauss)
IssmDouble TotalCalvingFluxLevelset(bool scaled)
void InputUpdateFromIoModel(int index, IoModel *iomodel)
IssmDouble IceVolume(bool scaled)
Declaration of Results class.
void VerticalSegmentIndicesBase(int **pindices, int *pnumseg)
void JacobianDeterminantLine(IssmDouble *Jdet, IssmDouble *xyz_list, Gauss *gauss)
prototypes for ElementHook.h
void AddBasalInput2(int input_enum, IssmDouble *values, int interpolation_enum)
void CreateDistanceInputFromSegmentlist(IssmDouble *distances, int distanceenum)
int PressureInterpolation()
IssmDouble GetGroundedPortion(IssmDouble *xyz_list)
bool IsFaceOnBoundary(void)
IssmDouble GetArea3D(void)
void AddControlInput(int input_enum, Inputs2 *inputs2, IoModel *iomodel, IssmDouble *values, IssmDouble *values_min, IssmDouble *values_max, int interpolation_enum, int id)