Changeset 17852
- Timestamp:
- 04/25/14 15:54:36 (11 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp
r17773 r17852 103 103 } 104 104 /*}}}*/ 105 /*FUNCTION Tetra::ElementSizes (THIS ONE){{{*/ 106 void Tetra::ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz){ 107 108 IssmDouble xyz_list[NUMVERTICES][3]; 109 IssmDouble xmin,ymin,zmin; 110 IssmDouble xmax,ymax,zmax; 111 112 /*Get xyz list: */ 113 ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES); 114 xmin=xyz_list[0][0]; xmax=xyz_list[0][0]; 115 ymin=xyz_list[0][1]; ymax=xyz_list[0][1]; 116 zmin=xyz_list[0][2]; zmax=xyz_list[0][2]; 117 118 for(int i=1;i<NUMVERTICES;i++){ 119 if(xyz_list[i][0]<xmin) xmin=xyz_list[i][0]; 120 if(xyz_list[i][0]>xmax) xmax=xyz_list[i][0]; 121 if(xyz_list[i][1]<ymin) ymin=xyz_list[i][1]; 122 if(xyz_list[i][1]>ymax) ymax=xyz_list[i][1]; 123 if(xyz_list[i][2]<zmin) zmin=xyz_list[i][2]; 124 if(xyz_list[i][2]>zmax) zmax=xyz_list[i][2]; 125 } 126 127 *hx=xmax-xmin; 128 *hy=ymax-ymin; 129 *hz=zmax-zmin; 130 } 131 /*}}}*/ 105 132 /*FUNCTION Tetra::FaceOnBaseIndices{{{*/ 106 133 void Tetra::FaceOnBaseIndices(int* pindex1,int* pindex2,int* pindex3){ … … 171 198 /*return TetraRef field*/ 172 199 return this->element_type; 200 } 201 /*}}}*/ 202 /*FUNCTION Tetra::GetInputValue(IssmDouble* pvalue,Node* node,int enumtype) (THIS ONE??){{{*/ 203 void Tetra::GetInputValue(IssmDouble* pvalue,Node* node,int enumtype){ 204 205 Input* input=inputs->GetInput(enumtype); 206 if(!input) _error_("No input of type " << EnumToStringx(enumtype) << " found in tria"); 207 208 GaussTetra* gauss=new GaussTetra(); 209 gauss->GaussVertex(this->GetNodeIndex(node)); 210 211 input->GetInputValue(pvalue,gauss); 212 delete gauss; 213 } 214 /*}}}*/ 215 /*FUNCTION Tetra::GetNodeIndex (THIS ONE){{{*/ 216 int Tetra::GetNodeIndex(Node* node){ 217 218 _assert_(nodes); 219 int numnodes = this->NumberofNodes(); 220 221 for(int i=0;i<numnodes;i++){ 222 if(node==nodes[i]) return i; 223 } 224 _error_("Node provided not found among element nodes"); 225 173 226 } 174 227 /*}}}*/ … … 917 970 } 918 971 /*}}}*/ 972 /*FUNCTION Tetra::ViscousHeating (THIS ONE){{{*/ 973 void Tetra::ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){ 974 975 /*Intermediaries*/ 976 IssmDouble phi; 977 IssmDouble viscosity; 978 IssmDouble epsilon[6]; 979 980 _assert_(gauss->Enum()==GaussTetraEnum); 981 this->StrainRateFS(&epsilon[0],xyz_list,(GaussTetra*)gauss,vx_input,vy_input,vz_input); 982 this->ViscosityFS(&viscosity,3,xyz_list,(GaussTetra*)gauss,vx_input,vy_input,vz_input); 983 GetPhi(&phi,&epsilon[0],viscosity); 984 985 /*Assign output pointer*/ 986 *pphi = phi; 987 } 988 /*}}}*/ 919 989 /*FUNCTION Tetra::PressureInterpolation{{{*/ 920 990 int Tetra::PressureInterpolation(void){ -
issm/trunk-jpl/src/c/classes/Elements/Tetra.h
r17831 r17852 62 62 void SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters); 63 63 void Delta18oParameterization(void){_error_("not implemented yet");}; 64 void ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz) {_error_("not implemented yet");};64 void ElementSizes(IssmDouble* hx,IssmDouble* hy,IssmDouble* hz); 65 65 void FaceOnFrontIndices(int* pindex1,int* pindex2,int* pindex3); 66 66 void FaceOnBaseIndices(int* pindex1,int* pindex2,int* pindex3); … … 72 72 Element* GetSurfaceElement(void){_error_("not implemented yet");}; 73 73 Element* GetBasalElement(void){_error_("not implemented yet");}; 74 int GetNodeIndex(Node* node) {_error_("not implemented yet");};74 int GetNodeIndex(Node* node); 75 75 int GetNumberOfNodes(void); 76 76 int GetNumberOfVertices(void); … … 112 112 void GetGroundedPart(int* point1,IssmDouble* fraction1, IssmDouble* fraction2,bool* mainlyfloating){_error_("not implemented yet");}; 113 113 IssmDouble GetGroundedPortion(IssmDouble* xyz_list){_error_("not implemented yet");}; 114 void GetInputValue(IssmDouble* pvalue,Node* node,int enumtype) {_error_("not implemented yet");};114 void GetInputValue(IssmDouble* pvalue,Node* node,int enumtype); 115 115 Node* GetNode(int node_number){_error_("Not implemented");}; 116 116 IssmDouble GetXcoord(Gauss* gauss); … … 128 128 int VertexConnectivity(int vertexindex){_error_("not implemented yet");}; 129 129 void VerticalSegmentIndices(int** pindices,int* pnumseg){_error_("not implemented yet");}; 130 void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input) {_error_("not implemented yet");};130 void ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input); 131 131 bool IsZeroLevelset(int levelset_enum){_error_("not implemented");}; 132 132 bool IsIcefront(void); -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateSingleNodeToElementConnectivity.cpp
r17700 r17852 29 29 connectivity=xNewZeroInit<int>(iomodel->numberofvertices); 30 30 31 /*Get element width (3 or 6)*/32 switch(iomodel-> domaintype){33 case Domain2DhorizontalEnum:elementswidth=3; break;34 case Domain2DverticalEnum : elementswidth=3; break;35 case Domain3DEnum : elementswidth=6; break;31 /*Get element width*/ 32 switch(iomodel->meshelementtype){ 33 case TriaEnum: elementswidth=3; break; 34 case PentaEnum: elementswidth=6; break; 35 case TetraEnum: elementswidth=4; break; 36 36 default: _error_("mesh type "<<EnumToStringx(iomodel->domaintype)<<" not supported yet"); 37 37 }
Note:
See TracChangeset
for help on using the changeset viewer.