Changeset 21886
- Timestamp:
- 07/27/17 13:06:55 (8 years ago)
- Location:
- issm/trunk-jpl/src/c/classes/Elements
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Element.cpp
r21826 r21886 1191 1191 * = 4 * mu * eps_eff ^2*/ 1192 1192 *phi=4.*epsilon_eff*epsilon_eff*viscosity; 1193 } 1194 /*}}}*/ 1195 void Element::GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution, int enum_type){/*{{{*/ 1196 1197 int *doflist = NULL; 1198 IssmDouble value; 1199 1200 /*Fetch number of nodes for this finite element*/ 1201 int numnodes = this->GetNumberOfNodes(); 1202 1203 /*Fetch dof list and allocate solution vector*/ 1204 GetDofList(&doflist,NoneApproximationEnum,GsetEnum); 1205 IssmDouble* values = xNew<IssmDouble>(numnodes); 1206 1207 /*Get inputs*/ 1208 Input* enum_input=inputs->GetInput(enum_type); _assert_(enum_input); 1209 1210 /*Ok, we have the values, fill in the array: */ 1211 Gauss* gauss=this->NewGauss(); 1212 for(int i=0;i<numnodes;i++){ 1213 gauss->GaussNode(this->element_type,i); 1214 1215 enum_input->GetInputValue(&value,gauss); 1216 values[i]=value; 1217 } 1218 1219 solution->SetValues(numnodes,doflist,values,INS_VAL); 1220 1221 /*Free ressources:*/ 1222 xDelete<int>(doflist); 1223 xDelete<IssmDouble>(values); 1224 delete gauss; 1193 1225 } 1194 1226 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Element.h
r21872 r21886 101 101 void GetNodesSidList(int* sidlist); 102 102 void GetPhi(IssmDouble* phi, IssmDouble* epsilon, IssmDouble viscosity); 103 void GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int solutionenum); 103 104 void GetVectorFromInputs(Vector<IssmDouble>* vector, int name_enum, int type); 104 105 void GetVertexPidList(int* pidlist); … … 215 216 virtual int GetNumberOfNodes(int enum_type)=0; 216 217 virtual int GetNumberOfVertices(void)=0; 217 virtual void GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int solutionenum)=0;218 218 virtual void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid)=0; 219 219 virtual void GetVerticesCoordinatesBase(IssmDouble** xyz_list)=0; -
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r21876 r21886 1095 1095 int Penta::GetNumberOfVertices(void){/*{{{*/ 1096 1096 return NUMVERTICES; 1097 }1098 /*}}}*/1099 void Penta::GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution, int enum_type){/*{{{*/1100 1101 const int numdof=NDOF1*NUMVERTICES;1102 1103 int i;1104 int* doflist=NULL;1105 IssmDouble values[numdof];1106 IssmDouble enum_value;1107 GaussPenta *gauss=NULL;1108 1109 /*Get dof list: */1110 GetDofList(&doflist,NoneApproximationEnum,GsetEnum);1111 Input* enum_input=inputs->GetInput(enum_type); _assert_(enum_input);1112 1113 gauss=new GaussPenta();1114 for(i=0;i<NUMVERTICES;i++){1115 /*Recover temperature*/1116 gauss->GaussVertex(i);1117 enum_input->GetInputValue(&enum_value,gauss);1118 values[i]=enum_value;1119 }1120 1121 /*Add value to global vector*/1122 solution->SetValues(numdof,doflist,values,INS_VAL);1123 1124 /*Free ressources:*/1125 delete gauss;1126 xDelete<int>(doflist);1127 1097 } 1128 1098 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Penta.h
r21872 r21886 84 84 int GetNumberOfVertices(void); 85 85 Penta* GetLowerPenta(void); 86 void GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type);87 86 Penta* GetUpperPenta(void); 88 87 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid); -
issm/trunk-jpl/src/c/classes/Elements/Seg.h
r21872 r21886 72 72 int GetNumberOfNodes(int enum_type){_error_("not implemented yet");}; 73 73 int GetNumberOfVertices(void); 74 void GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type){_error_("not implemented yet");};75 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); -
issm/trunk-jpl/src/c/classes/Elements/Tetra.h
r21872 r21886 78 78 int GetNumberOfNodes(int enum_type){_error_("not implemented yet");}; 79 79 int GetNumberOfVertices(void); 80 void GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type){_error_("not implemented yet");};81 80 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid){_error_("not implemented yet");}; 82 81 void GetVerticesCoordinatesBase(IssmDouble** pxyz_list); -
issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
r21876 r21886 1437 1437 int Tria::GetNumberOfVertices(void){/*{{{*/ 1438 1438 return NUMVERTICES; 1439 }1440 /*}}}*/1441 void Tria::GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution, int enum_type){/*{{{*/1442 1443 int *doflist = NULL;1444 IssmDouble value;1445 1446 /*Fetch number of nodes for this finite element*/1447 int numnodes = this->NumberofNodes(this->element_type);1448 1449 /*Fetch dof list and allocate solution vector*/1450 GetDofList(&doflist,NoneApproximationEnum,GsetEnum);1451 IssmDouble* values = xNew<IssmDouble>(numnodes);1452 1453 /*Get inputs*/1454 Input* enum_input=inputs->GetInput(enum_type); _assert_(enum_input);1455 1456 /*Ok, we have the values, fill in the array: */1457 GaussTria* gauss=new GaussTria();1458 for(int i=0;i<numnodes;i++){1459 gauss->GaussNode(this->element_type,i);1460 1461 enum_input->GetInputValue(&value,gauss);1462 values[i]=value;1463 }1464 1465 solution->SetValues(numnodes,doflist,values,INS_VAL);1466 1467 /*Free ressources:*/1468 xDelete<int>(doflist);1469 xDelete<IssmDouble>(values);1470 delete gauss;1471 1439 } 1472 1440 /*}}}*/ -
issm/trunk-jpl/src/c/classes/Elements/Tria.h
r21872 r21886 83 83 int GetNumberOfNodes(int enum_type); 84 84 int GetNumberOfVertices(void); 85 void GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type);86 85 void GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data,bool onsid); 87 86 void GetVerticesCoordinatesBase(IssmDouble** pxyz_list);
Note:
See TracChangeset
for help on using the changeset viewer.