Changeset 18923 for issm/trunk-jpl/src/c/classes/Elements/Tetra.h
- Timestamp:
- 12/03/14 21:11:19 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Tetra.h
r18884 r18923 39 39 Object *copy(); 40 40 /*}}}*/ 41 /*Update virtual functions resolution: {{{*/42 void InputUpdateFromSolutionOneDofCollapsed(IssmDouble* solution,int inputenum){_error_("not implemented yet");};43 void InputUpdateFromSolutionOneDof(IssmDouble* solution,int inputenum);44 void InputUpdateFromVector(IssmDouble* vector, int name, int type){_error_("not implemented yet");};45 #ifdef _HAVE_DAKOTA_46 void InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){_error_("not implemented yet");};47 void InputUpdateFromMatrixDakota(IssmDouble* matrix, int nows, int ncols, int name, int type){_error_("not implemented yet");};48 #endif49 void InputUpdateFromIoModel(int index, IoModel* iomodel);50 /*}}}*/51 41 /*Element virtual functions definitions: {{{*/ 52 42 void AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");}; 53 43 void AddInput(int input_enum, IssmDouble* values, int interpolation_enum); 44 void AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part){_error_("not implemented yet");}; 45 void CalvingRateLevermann(void){_error_("not implemented yet");}; 54 46 IssmDouble CharacteristicLength(void){_error_("not implemented yet");}; 55 47 void ComputeBasalStress(Vector<IssmDouble>* sigma_b){_error_("not implemented yet");}; … … 57 49 void ComputeStressTensor(){_error_("not implemented yet");}; 58 50 void ComputeDeviatoricStressTensor(){_error_("not implemented yet");}; 59 void StressIntensityFactor(void){_error_("not implemented yet");};60 void StrainRateparallel(void){_error_("not implemented yet");};61 void StrainRateperpendicular(void){_error_("not implemented yet");};62 void CalvingRateLevermann(void){_error_("not implemented yet");};63 51 void Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters); 64 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters);65 void ResetHooks();52 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){_error_("not implemented yet");}; 53 void ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum){_error_("not implemented yet");}; 66 54 void Delta18oParameterization(void){_error_("not implemented yet");}; 55 IssmDouble DragCoefficientAbsGradient(void){_error_("not implemented yet");}; 56 void ElementResponse(IssmDouble* presponse,int response_enum){_error_("not implemented yet");}; 67 57 void ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz); 58 void FaceOnBaseIndices(int* pindex1,int* pindex2,int* pindex3); 68 59 void FaceOnFrontIndices(int* pindex1,int* pindex2,int* pindex3); 69 void FaceOnBaseIndices(int* pindex1,int* pindex2,int* pindex3);70 60 void FaceOnSurfaceIndices(int* pindex1,int* pindex2,int* pindex3); 61 int FiniteElement(void); 71 62 void FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){_error_("not implemented yet");}; 72 int FiniteElement(void);73 Element* GetUpperElement(void){_error_("not implemented yet");};74 63 Element* GetBasalElement(void){_error_("not implemented yet");}; 64 int GetElementType(void); 65 void GetGroundedPart(int* point1,IssmDouble* fraction1, IssmDouble* fraction2,bool* mainlyfloating){_error_("not implemented yet");}; 66 IssmDouble GetGroundedPortion(IssmDouble* xyz_list){_error_("not implemented yet");}; 67 void GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum){_error_("not implemented yet");}; 68 void GetInputValue(IssmDouble* pvalue,Node* node,int enumtype); 69 void GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level){_error_("not implemented yet");}; 70 void GetLevelsetPositivePart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlynegative,IssmDouble* levelsetvalues){_error_("not implemented yet");}; 71 Node* GetNode(int node_number){_error_("Not implemented");}; 75 72 int GetNodeIndex(Node* node); 76 73 int GetNumberOfNodes(void); 77 74 int GetNumberOfNodes(int enum_type){_error_("not implemented yet");}; 78 75 int GetNumberOfVertices(void); 76 void GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type){_error_("not implemented yet");}; 77 Element* GetUpperElement(void){_error_("not implemented yet");}; 78 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid){_error_("not implemented yet");}; 79 79 void GetVerticesCoordinatesBase(IssmDouble** pxyz_list); 80 80 void GetVerticesCoordinatesTop(IssmDouble** pxyz_list); 81 void GradientIndexing(int* indexing,int control_index){_error_("not implemented yet");}; 81 82 bool HasFaceOnBase(); 82 83 bool HasFaceOnSurface(); 84 IssmDouble IceVolume(void){_error_("not implemented yet");}; 85 IssmDouble IceVolumeAboveFloatation(void){_error_("not implemented yet");}; 86 bool IsFaceOnBoundary(void){_error_("not implemented yet");}; 87 bool IsIcefront(void); 88 bool IsNodeOnShelfFromFlags(IssmDouble* flags){_error_("not implemented yet");}; 83 89 bool IsOnBase(); 84 90 bool IsOnSurface(); 85 bool IsNodeOnShelfFromFlags(IssmDouble* flags){_error_("not implemented yet");}; 91 bool IsZeroLevelset(int levelset_enum){_error_("not implemented");}; 92 void InputControlUpdate(IssmDouble scalar,bool save_parameter){_error_("not implemented yet");}; 93 void InputDepthAverageAtBase(int enum_type,int average_enum_type){_error_("not implemented yet");}; 94 void InputExtrude(int enum_type,int start){_error_("not implemented"); /*For penta only*/}; 95 void InputScale(int enum_type,IssmDouble scale_factor){_error_("not implemented yet");}; 96 void InputUpdateFromIoModel(int index, IoModel* iomodel); 97 void InputUpdateFromSolutionOneDof(IssmDouble* solution,int inputenum); 98 void InputUpdateFromSolutionOneDofCollapsed(IssmDouble* solution,int inputenum){_error_("not implemented yet");}; 99 void InputUpdateFromVector(IssmDouble* vector, int name, int type){_error_("not implemented yet");}; 86 100 void JacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss); 101 void JacobianDeterminantBase(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss); 87 102 void JacobianDeterminantLine(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 88 103 void JacobianDeterminantSurface(IssmDouble* pJdet, IssmDouble* xyz_list,Gauss* gauss); 89 void JacobianDeterminantBase(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss);90 104 void JacobianDeterminantTop(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss); 105 IssmDouble Masscon(IssmDouble* levelset){_error_("not implemented yet");}; 106 IssmDouble MassFlux(IssmDouble* segment){_error_("not implemented yet");}; 107 IssmDouble MassFlux(IssmDouble x1,IssmDouble y1, IssmDouble x2, IssmDouble y2,int segment_id){_error_("not implemented yet");} 108 void MaterialUpdateFromTemperature(void){_error_("not implemented yet");}; 91 109 IssmDouble MinEdgeLength(IssmDouble* xyz_list){_error_("not implemented yet");}; 92 void NodalFunctions(IssmDouble* basis,Gauss* gauss); 93 void NodalFunctionsP1(IssmDouble* basis,Gauss* gauss){_error_("not implemented yet");}; 94 void NodalFunctionsP2(IssmDouble* basis,Gauss* gauss){_error_("not implemented yet");}; 95 void NodalFunctionsVelocity(IssmDouble* basis,Gauss* gauss); 96 void NodalFunctionsPressure(IssmDouble* basis,Gauss* gauss); 97 void NodalFunctionsTensor(IssmDouble* basis,Gauss* gauss); 98 void NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); 99 void NodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 100 void NodalFunctionsMINIDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 101 void NodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); 102 void NormalSection(IssmDouble* normal,IssmDouble* xyz_list); 103 void NormalTop(IssmDouble* normal,IssmDouble* xyz_list); 104 void NormalBase(IssmDouble* normal,IssmDouble* xyz_list); 105 int NumberofNodesVelocity(void); 106 int NumberofNodesPressure(void); 107 Element* SpawnBasalElement(void); 108 Element* SpawnTopElement(void); 109 Tria* SpawnTria(int index1,int index2,int index3); 110 IssmDouble StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa){_error_("not implemented yet");}; 111 int PressureInterpolation(void); 112 void ValueP1OnGauss(IssmDouble* pvalue,IssmDouble* values,Gauss* gauss); 113 void ValueP1DerivativesOnGauss(IssmDouble* dvalue,IssmDouble* values,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 114 int VelocityInterpolation(void); 115 int TensorInterpolation(void); 116 void GetLevelsetPositivePart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlynegative,IssmDouble* levelsetvalues){_error_("not implemented yet");}; 117 void GetGroundedPart(int* point1,IssmDouble* fraction1, IssmDouble* fraction2,bool* mainlyfloating){_error_("not implemented yet");}; 118 IssmDouble GetGroundedPortion(IssmDouble* xyz_list){_error_("not implemented yet");}; 119 void GetInputValue(IssmDouble* pvalue,Node* node,int enumtype); 120 Node* GetNode(int node_number){_error_("Not implemented");}; 121 int GetElementType(void); 110 IssmDouble Misfit(int modelenum,int observationenum,int weightsenum){_error_("not implemented yet");}; 111 IssmDouble MisfitArea(int weightsenum){_error_("not implemented yet");}; 122 112 Gauss* NewGauss(void); 123 113 Gauss* NewGauss(int order); … … 128 118 Gauss* NewGaussLine(int vertex1,int vertex2,int order){_error_("not implemented yet");}; 129 119 Gauss* NewGaussTop(int order); 120 void NodalFunctions(IssmDouble* basis,Gauss* gauss); 121 void NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); 122 void NodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); 123 void NodalFunctionsMINIDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 124 void NodalFunctionsPressure(IssmDouble* basis,Gauss* gauss); 125 void NodalFunctionsP1(IssmDouble* basis,Gauss* gauss){_error_("not implemented yet");}; 126 void NodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 127 void NodalFunctionsP2(IssmDouble* basis,Gauss* gauss){_error_("not implemented yet");}; 128 void NodalFunctionsTensor(IssmDouble* basis,Gauss* gauss); 129 void NodalFunctionsVelocity(IssmDouble* basis,Gauss* gauss); 130 int NodalValue(IssmDouble* pvalue, int index, int natureofdataenum){_error_("not implemented yet");}; 131 void NormalBase(IssmDouble* normal,IssmDouble* xyz_list); 132 void NormalSection(IssmDouble* normal,IssmDouble* xyz_list); 133 void NormalTop(IssmDouble* normal,IssmDouble* xyz_list); 134 int NumberofNodesPressure(void); 135 int NumberofNodesVelocity(void); 136 void PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm){_error_("not implemented yet");}; 137 void PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding){_error_("not implemented yet");}; 138 int PressureInterpolation(void); 139 void ResetFSBasalBoundaryCondition(void); 140 void ResetHooks(); 141 void ReduceMatrices(ElementMatrix* Ke,ElementVector* pe); 142 void SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index){_error_("not implemented yet");}; 143 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters); 144 void SetTemporaryElementType(int element_type_in){_error_("not implemented yet");}; 145 Element* SpawnBasalElement(void); 146 Element* SpawnTopElement(void); 147 Tria* SpawnTria(int index1,int index2,int index3); 148 IssmDouble StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa){_error_("not implemented yet");}; 149 void StrainRateparallel(void){_error_("not implemented yet");}; 150 void StrainRateperpendicular(void){_error_("not implemented yet");}; 151 void StressIntensityFactor(void){_error_("not implemented yet");}; 152 IssmDouble SurfaceArea(void){_error_("not implemented yet");}; 153 int TensorInterpolation(void); 154 IssmDouble TimeAdapt(){_error_("not implemented yet");}; 155 IssmDouble TotalSmb(void){_error_("not implemented yet");}; 156 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement); 157 void UpdateConstraintsExtrudeFromBase(){_error_("not implemented");}; 158 void UpdateConstraintsExtrudeFromTop(){_error_("not implemented");}; 159 int UpdatePotentialUngrounding(IssmDouble* vertices_potentially_ungrounding,Vector<IssmDouble>* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf){_error_("not implemented yet");}; 160 void ValueP1DerivativesOnGauss(IssmDouble* dvalue,IssmDouble* values,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 161 void ValueP1OnGauss(IssmDouble* pvalue,IssmDouble* values,Gauss* gauss); 162 int VelocityInterpolation(void); 130 163 int VertexConnectivity(int vertexindex){_error_("not implemented yet");}; 131 164 void VerticalSegmentIndices(int** pindices,int* pnumseg){_error_("not implemented yet");}; 132 165 void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input); 133 bool IsZeroLevelset(int levelset_enum){_error_("not implemented");};134 bool IsIcefront(void);135 bool IsFaceOnBoundary(void){_error_("not implemented yet");};136 166 void ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum); 137 void GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum){_error_("not implemented yet");};138 void GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level){_error_("not implemented yet");};139 void GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type){_error_("not implemented yet");};140 void InputDepthAverageAtBase(int enum_type,int average_enum_type){_error_("not implemented yet");};141 void InputExtrude(int enum_type,int start){_error_("not implemented"); /*For penta only*/};142 void InputScale(int enum_type,IssmDouble scale_factor){_error_("not implemented yet");};143 void MaterialUpdateFromTemperature(void){_error_("not implemented yet");};144 int NodalValue(IssmDouble* pvalue, int index, int natureofdataenum){_error_("not implemented yet");};145 void PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm){_error_("not implemented yet");};146 void ResetFSBasalBoundaryCondition(void);147 void ReduceMatrices(ElementMatrix* Ke,ElementVector* pe);148 void SetTemporaryElementType(int element_type_in){_error_("not implemented yet");};149 IssmDouble SurfaceArea(void){_error_("not implemented yet");};150 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement);151 IssmDouble TimeAdapt(){_error_("not implemented yet");};152 void UpdateConstraintsExtrudeFromBase(){_error_("not implemented");};153 void UpdateConstraintsExtrudeFromTop(){_error_("not implemented");};154 155 void AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part){_error_("not implemented yet");};156 IssmDouble IceVolume(void){_error_("not implemented yet");};157 IssmDouble IceVolumeAboveFloatation(void){_error_("not implemented yet");};158 IssmDouble TotalSmb(void){_error_("not implemented yet");};159 IssmDouble MassFlux(IssmDouble* segment){_error_("not implemented yet");};160 IssmDouble MassFlux(IssmDouble x1,IssmDouble y1, IssmDouble x2, IssmDouble y2,int segment_id){_error_("not implemented yet");}161 void ElementResponse(IssmDouble* presponse,int response_enum){_error_("not implemented yet");};162 IssmDouble Misfit(int modelenum,int observationenum,int weightsenum){_error_("not implemented yet");};163 IssmDouble MisfitArea(int weightsenum){_error_("not implemented yet");};164 IssmDouble Masscon(IssmDouble* levelset){_error_("not implemented yet");};165 167 166 168 #ifdef _HAVE_GIA_ 167 void GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y){_error_("not implemented yet");};169 void GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y){_error_("not implemented yet");}; 168 170 #endif 169 171 170 IssmDouble DragCoefficientAbsGradient(void){_error_("not implemented yet");}; 171 void GradientIndexing(int* indexing,int control_index){_error_("not implemented yet");}; 172 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid){_error_("not implemented yet");}; 173 void SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index){_error_("not implemented yet");}; 174 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){_error_("not implemented yet");}; 175 void ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum){_error_("not implemented yet");}; 176 void InputControlUpdate(IssmDouble scalar,bool save_parameter){_error_("not implemented yet");}; 177 178 void PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding){_error_("not implemented yet");}; 179 int UpdatePotentialUngrounding(IssmDouble* vertices_potentially_ungrounding,Vector<IssmDouble>* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf){_error_("not implemented yet");}; 172 #ifdef _HAVE_DAKOTA_ 173 void InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){_error_("not implemented yet");}; 174 void InputUpdateFromMatrixDakota(IssmDouble* matrix, int nows, int ncols, int name, int type){_error_("not implemented yet");}; 175 #endif 180 176 /*}}}*/ 181 177 };
Note:
See TracChangeset
for help on using the changeset viewer.