Changeset 18924
- Timestamp:
- 12/03/14 21:21:39 (10 years ago)
- Location:
- issm/trunk-jpl/src/c/classes/Elements
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Seg.cpp
r18283 r18924 68 68 } 69 69 /*}}}*/ 70 int Seg::ObjectEnum(void){/*{{{*/71 72 return SegEnum;73 74 }75 /*}}}*/76 70 void Seg::GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum){/*{{{*/ 77 71 … … 102 96 *pxyz_front=xyz_front; 103 97 }/*}}}*/ 104 void Seg::NodalFunctionsP1(IssmDouble* basis, Gauss* gauss){/*{{{*/105 106 _assert_(gauss->Enum()==GaussSegEnum);107 this->GetNodalFunctions(basis,(GaussSeg*)gauss,P1Enum);108 109 }110 /*}}}*/111 void Seg::NodalFunctionsP2(IssmDouble* basis, Gauss* gauss){/*{{{*/112 113 _assert_(gauss->Enum()==GaussSegEnum);114 this->GetNodalFunctions(basis,(GaussSeg*)gauss,P2Enum);115 116 }117 /*}}}*/118 98 int Seg::GetNumberOfNodes(void){/*{{{*/ 119 99 return this->NumberofNodes(this->element_type); … … 205 185 } 206 186 /*}}}*/ 187 void Seg::NodalFunctionsP1(IssmDouble* basis, Gauss* gauss){/*{{{*/ 188 189 _assert_(gauss->Enum()==GaussSegEnum); 190 this->GetNodalFunctions(basis,(GaussSeg*)gauss,P1Enum); 191 192 } 193 /*}}}*/ 194 void Seg::NodalFunctionsP2(IssmDouble* basis, Gauss* gauss){/*{{{*/ 195 196 _assert_(gauss->Enum()==GaussSegEnum); 197 this->GetNodalFunctions(basis,(GaussSeg*)gauss,P2Enum); 198 199 } 200 /*}}}*/ 207 201 void Seg::NormalSection(IssmDouble* normal,IssmDouble* xyz_list_front){/*{{{*/ 208 202 … … 218 212 } 219 213 /*}}}*/ 214 int Seg::ObjectEnum(void){/*{{{*/ 215 216 return SegEnum; 217 218 } 219 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r18884 r18924 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){_error_("not implemented yet");};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){_error_("not implemented yet");};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){_error_("not implemented yet");}; 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); 55 47 void ComputeBasalStress(Vector<IssmDouble>* sigma_b){_error_("not implemented yet");}; 48 void ComputeDeviatoricStressTensor(){_error_("not implemented yet");}; 56 49 void ComputeSigmaNN(){_error_("not implemented yet");}; 57 50 void ComputeStressTensor(){_error_("not implemented yet");}; 58 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){_error_("not implemented yet");}; 64 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters){_error_("not implemented yet");};65 void ResetHooks(){_error_("not implemented yet");};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 void ElementResponse(IssmDouble* presponse,int response_enum){_error_("not implemented yet");}; 67 56 void ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz){_error_("not implemented yet");}; 68 57 void FSContactMigration(Vector<IssmDouble>* vertexgrounded,Vector<IssmDouble>* vertexfloating){_error_("not implemented yet");}; 69 58 int FiniteElement(void); 70 Element* GetUpperElement(void){_error_("not implemented yet");};71 59 Element* GetBasalElement(void){_error_("not implemented yet");}; 60 int GetElementType(void){_error_("not implemented yet");}; 61 void GetGroundedPart(int* point1,IssmDouble* fraction1, IssmDouble* fraction2,bool* mainlyfloating){_error_("not implemented yet");}; 62 IssmDouble GetGroundedPortion(IssmDouble* xyz_list){_error_("not implemented yet");}; 63 void GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum); 64 void GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){_error_("not implemented yet");}; 65 void GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level){_error_("not implemented");}; 66 void GetLevelsetPositivePart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlynegative,IssmDouble* levelsetvalues){_error_("not implemented yet");}; 67 Node* GetNode(int node_number){_error_("Not implemented");}; 72 68 int GetNodeIndex(Node* node){_error_("not implemented yet");}; 73 69 int GetNumberOfNodes(void); 74 70 int GetNumberOfNodes(int enum_type){_error_("not implemented yet");}; 75 71 int GetNumberOfVertices(void); 72 void GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type){_error_("not implemented yet");}; 73 Element* GetUpperElement(void){_error_("not implemented yet");}; 74 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid){_error_("not implemented yet");}; 76 75 void GetVerticesCoordinates(IssmDouble** pxyz_list); 77 76 void GetVerticesCoordinatesBase(IssmDouble** pxyz_list){_error_("not implemented yet");}; 78 77 void GetVerticesCoordinatesTop(IssmDouble** pxyz_list){_error_("not implemented yet");}; 78 IssmDouble IceVolume(void){_error_("not implemented yet");}; 79 IssmDouble IceVolumeAboveFloatation(void){_error_("not implemented yet");}; 80 void InputControlUpdate(IssmDouble scalar,bool save_parameter){_error_("not implemented yet");}; 81 void InputDepthAverageAtBase(int enum_type,int average_enum_type){_error_("not implemented yet");}; 82 void InputExtrude(int enum_type,int start){_error_("not implemented"); /*For penta only*/}; 83 void InputScale(int enum_type,IssmDouble scale_factor){_error_("not implemented yet");}; 84 void InputUpdateFromIoModel(int index, IoModel* iomodel){_error_("not implemented yet");}; 85 void InputUpdateFromSolutionOneDof(IssmDouble* solution,int inputenum){_error_("not implemented yet");}; 86 void InputUpdateFromSolutionOneDofCollapsed(IssmDouble* solution,int inputenum){_error_("not implemented yet");}; 87 void InputUpdateFromVector(IssmDouble* vector, int name, int type){_error_("not implemented yet");}; 88 bool IsFaceOnBoundary(void){_error_("not implemented yet");}; 89 bool IsIcefront(void); 90 bool IsNodeOnShelfFromFlags(IssmDouble* flags){_error_("not implemented yet");}; 79 91 bool IsOnBase(){_error_("not implemented yet");}; 80 92 bool IsOnSurface(){_error_("not implemented yet");}; 81 bool Is NodeOnShelfFromFlags(IssmDouble* flags){_error_("not implemented yet");};93 bool IsZeroLevelset(int levelset_enum){_error_("not implemented");}; 82 94 void JacobianDeterminant(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss); 95 void JacobianDeterminantBase(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss){_error_("not implemented yet");}; 83 96 void JacobianDeterminantLine(IssmDouble* Jdet, IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 84 97 void JacobianDeterminantSurface(IssmDouble* pJdet, IssmDouble* xyz_list,Gauss* gauss); 85 void JacobianDeterminantBase(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss){_error_("not implemented yet");};86 98 void JacobianDeterminantTop(IssmDouble* pJdet,IssmDouble* xyz_list_base,Gauss* gauss){_error_("not implemented yet");}; 99 IssmDouble Masscon(IssmDouble* levelset){_error_("not implemented yet");}; 100 IssmDouble MassFlux(IssmDouble* segment){_error_("not implemented yet");}; 101 IssmDouble MassFlux(IssmDouble x1,IssmDouble y1, IssmDouble x2, IssmDouble y2,int segment_id){_error_("not implemented yet");} 102 void MaterialUpdateFromTemperature(void){_error_("not implemented yet");}; 87 103 IssmDouble MinEdgeLength(IssmDouble* xyz_list){_error_("not implemented yet");}; 88 void NodalFunctions(IssmDouble* basis,Gauss* gauss); 89 void NodalFunctionsP1(IssmDouble* basis,Gauss* gauss); 90 void NodalFunctionsP2(IssmDouble* basis,Gauss* gauss); 91 void NodalFunctionsVelocity(IssmDouble* basis,Gauss* gauss){_error_("not implemented yet");}; 92 void NodalFunctionsPressure(IssmDouble* basis,Gauss* gauss){_error_("not implemented yet");}; 93 void NodalFunctionsTensor(IssmDouble* basis,Gauss* gauss){_error_("not implemented yet");}; 94 void NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); 95 void NodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 96 void NodalFunctionsMINIDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 97 void NodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 98 void NormalSection(IssmDouble* normal,IssmDouble* xyz_list); 99 void NormalTop(IssmDouble* normal,IssmDouble* xyz_list){_error_("not implemented yet");}; 100 void NormalBase(IssmDouble* normal,IssmDouble* xyz_list){_error_("not implemented yet");}; 101 int NumberofNodesVelocity(void){_error_("not implemented yet");}; 102 int NumberofNodesPressure(void){_error_("not implemented yet");}; 103 Element* SpawnBasalElement(void){_error_("not implemented yet");}; 104 Element* SpawnTopElement(void){_error_("not implemented yet");}; 105 IssmDouble StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa){_error_("not implemented yet");}; 106 int PressureInterpolation(void){_error_("not implemented yet");}; 107 void ValueP1OnGauss(IssmDouble* pvalue,IssmDouble* values,Gauss* gauss){_error_("not implemented yet");}; 108 void ValueP1DerivativesOnGauss(IssmDouble* dvalue,IssmDouble* values,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 109 int VelocityInterpolation(void){_error_("not implemented yet");}; 110 int TensorInterpolation(void){_error_("not implemented yet");}; 111 void GetLevelsetPositivePart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlynegative,IssmDouble* levelsetvalues){_error_("not implemented yet");}; 112 void GetGroundedPart(int* point1,IssmDouble* fraction1, IssmDouble* fraction2,bool* mainlyfloating){_error_("not implemented yet");}; 113 IssmDouble GetGroundedPortion(IssmDouble* xyz_list){_error_("not implemented yet");}; 114 void GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){_error_("not implemented yet");}; 115 Node* GetNode(int node_number){_error_("Not implemented");}; 116 int GetElementType(void){_error_("not implemented yet");}; 104 IssmDouble Misfit(int modelenum,int observationenum,int weightsenum){_error_("not implemented yet");}; 105 IssmDouble MisfitArea(int weightsenum){_error_("not implemented yet");}; 117 106 Gauss* NewGauss(void); 118 107 Gauss* NewGauss(int order); … … 123 112 Gauss* NewGaussLine(int vertex1,int vertex2,int order){_error_("not implemented yet");}; 124 113 Gauss* NewGaussTop(int order){_error_("not implemented yet");}; 114 int NodalValue(IssmDouble* pvalue, int index, int natureofdataenum){_error_("not implemented yet");}; 115 void NodalFunctions(IssmDouble* basis,Gauss* gauss); 116 void NodalFunctionsDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss); 117 void NodalFunctionsDerivativesVelocity(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 118 void NodalFunctionsMINIDerivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 119 void NodalFunctionsPressure(IssmDouble* basis,Gauss* gauss){_error_("not implemented yet");}; 120 void NodalFunctionsP1(IssmDouble* basis,Gauss* gauss); 121 void NodalFunctionsP1Derivatives(IssmDouble* dbasis,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 122 void NodalFunctionsP2(IssmDouble* basis,Gauss* gauss); 123 void NodalFunctionsTensor(IssmDouble* basis,Gauss* gauss){_error_("not implemented yet");}; 124 void NodalFunctionsVelocity(IssmDouble* basis,Gauss* gauss){_error_("not implemented yet");}; 125 void NormalBase(IssmDouble* normal,IssmDouble* xyz_list){_error_("not implemented yet");}; 126 void NormalSection(IssmDouble* normal,IssmDouble* xyz_list); 127 void NormalTop(IssmDouble* normal,IssmDouble* xyz_list){_error_("not implemented yet");}; 128 int NumberofNodesPressure(void){_error_("not implemented yet");}; 129 int NumberofNodesVelocity(void){_error_("not implemented yet");}; 130 void PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm){_error_("not implemented yet");}; 131 void PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding){_error_("not implemented yet");}; 132 int PressureInterpolation(void){_error_("not implemented yet");}; 133 void ReduceMatrices(ElementMatrix* Ke,ElementVector* pe){_error_("not implemented yet");}; 134 void ResetFSBasalBoundaryCondition(void){_error_("not implemented yet");}; 135 void ResetHooks(){_error_("not implemented yet");}; 136 void SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index){_error_("not implemented yet");}; 137 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters){_error_("not implemented yet");}; 138 void SetTemporaryElementType(int element_type_in){_error_("not implemented yet");}; 139 Element* SpawnBasalElement(void){_error_("not implemented yet");}; 140 Element* SpawnTopElement(void){_error_("not implemented yet");}; 141 IssmDouble StabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa){_error_("not implemented yet");}; 142 void StrainRateparallel(void){_error_("not implemented yet");}; 143 void StrainRateperpendicular(void){_error_("not implemented yet");}; 144 void StressIntensityFactor(void){_error_("not implemented yet");}; 145 IssmDouble SurfaceArea(void){_error_("not implemented yet");}; 146 int TensorInterpolation(void){_error_("not implemented yet");}; 147 IssmDouble TimeAdapt(){_error_("not implemented yet");}; 148 IssmDouble TotalSmb(void){_error_("not implemented yet");}; 149 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement){_error_("not implemented yet");}; 150 void UpdateConstraintsExtrudeFromBase(){_error_("not implemented");}; 151 void UpdateConstraintsExtrudeFromTop(){_error_("not implemented");}; 152 int UpdatePotentialUngrounding(IssmDouble* vertices_potentially_ungrounding,Vector<IssmDouble>* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf){_error_("not implemented yet");}; 153 void ValueP1DerivativesOnGauss(IssmDouble* dvalue,IssmDouble* values,IssmDouble* xyz_list,Gauss* gauss){_error_("not implemented yet");}; 154 void ValueP1OnGauss(IssmDouble* pvalue,IssmDouble* values,Gauss* gauss){_error_("not implemented yet");}; 155 int VelocityInterpolation(void){_error_("not implemented yet");}; 125 156 int VertexConnectivity(int vertexindex){_error_("not implemented yet");}; 126 157 void VerticalSegmentIndices(int** pindices,int* pnumseg){_error_("not implemented yet");}; 127 158 void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not implemented yet");}; 128 bool IsZeroLevelset(int levelset_enum){_error_("not implemented");};129 bool IsIcefront(void);130 bool IsFaceOnBoundary(void){_error_("not implemented yet");};131 159 void ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum){_error_("not implemented");}; 132 void GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum);133 void GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level){_error_("not implemented");};134 135 void GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type){_error_("not implemented yet");};136 void InputDepthAverageAtBase(int enum_type,int average_enum_type){_error_("not implemented yet");};137 void InputExtrude(int enum_type,int start){_error_("not implemented"); /*For penta only*/};138 void InputScale(int enum_type,IssmDouble scale_factor){_error_("not implemented yet");};139 void MaterialUpdateFromTemperature(void){_error_("not implemented yet");};140 int NodalValue(IssmDouble* pvalue, int index, int natureofdataenum){_error_("not implemented yet");};141 void PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm){_error_("not implemented yet");};142 void ResetFSBasalBoundaryCondition(void){_error_("not implemented yet");};143 void ReduceMatrices(ElementMatrix* Ke,ElementVector* pe){_error_("not implemented yet");};144 void SetTemporaryElementType(int element_type_in){_error_("not implemented yet");};145 IssmDouble SurfaceArea(void){_error_("not implemented yet");};146 void Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement){_error_("not implemented yet");};147 IssmDouble TimeAdapt(){_error_("not implemented yet");};148 void UpdateConstraintsExtrudeFromBase(){_error_("not implemented");};149 void UpdateConstraintsExtrudeFromTop(){_error_("not implemented");};150 151 void AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part){_error_("not implemented yet");};152 IssmDouble IceVolume(void){_error_("not implemented yet");};153 IssmDouble IceVolumeAboveFloatation(void){_error_("not implemented yet");};154 IssmDouble TotalSmb(void){_error_("not implemented yet");};155 IssmDouble MassFlux(IssmDouble* segment){_error_("not implemented yet");};156 IssmDouble MassFlux(IssmDouble x1,IssmDouble y1, IssmDouble x2, IssmDouble y2,int segment_id){_error_("not implemented yet");}157 void ElementResponse(IssmDouble* presponse,int response_enum){_error_("not implemented yet");};158 IssmDouble Misfit(int modelenum,int observationenum,int weightsenum){_error_("not implemented yet");};159 IssmDouble MisfitArea(int weightsenum){_error_("not implemented yet");};160 IssmDouble Masscon(IssmDouble* levelset){_error_("not implemented yet");};161 160 162 161 #ifdef _HAVE_GIA_ 163 void GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y){_error_("not implemented yet");};162 void GiaDeflection(Vector<IssmDouble>* wg,Vector<IssmDouble>* dwgdt,IssmDouble* x,IssmDouble* y){_error_("not implemented yet");}; 164 163 #endif 165 164 166 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid){_error_("not implemented yet");}; 167 void SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index){_error_("not implemented yet");}; 168 void ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index){_error_("not implemented yet");}; 169 void ControlToVectors(Vector<IssmPDouble>* vector_control, Vector<IssmPDouble>* vector_gradient,int control_enum){_error_("not implemented yet");}; 170 void InputControlUpdate(IssmDouble scalar,bool save_parameter){_error_("not implemented yet");}; 171 172 void PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding){_error_("not implemented yet");}; 173 int UpdatePotentialUngrounding(IssmDouble* vertices_potentially_ungrounding,Vector<IssmDouble>* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf){_error_("not implemented yet");}; 165 #ifdef _HAVE_DAKOTA_ 166 void InputUpdateFromMatrixDakota(IssmDouble* matrix, int nows, int ncols, int name, int type){_error_("not implemented yet");}; 167 void InputUpdateFromVectorDakota(IssmDouble* vector, int name, int type){_error_("not implemented yet");}; 168 #endif 174 169 /*}}}*/ 175 170 };
Note:
See TracChangeset
for help on using the changeset viewer.