Changeset 14648
- Timestamp:
- 04/18/13 12:31:07 (12 years ago)
- Location:
- issm/trunk-jpl/src/c
- Files:
-
- 4 added
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/Makefile.am
r14633 r14648 253 253 ./modules/VerticesDofx/VerticesDofx.h\ 254 254 ./modules/VerticesDofx/VerticesDofx.cpp\ 255 ./modules/VertexCoordinatesx/VertexCoordinatesx.h\ 256 ./modules/VertexCoordinatesx/VertexCoordinatesx.cpp\ 255 257 ./modules/OutputResultsx/OutputResultsx.h\ 256 258 ./modules/OutputResultsx/OutputResultsx.cpp\ -
issm/trunk-jpl/src/c/classes/FemModel.cpp
r14632 r14648 1542 1542 #endif 1543 1543 #ifdef _HAVE_GIA_ 1544 void FemModel::Deflection(Vector<IssmDouble>* wg ){ /*{{{*/1544 void FemModel::Deflection(Vector<IssmDouble>* wg,IssmDouble* x, IssmDouble* y){ /*{{{*/ 1545 1545 1546 1546 int i; … … 1552 1552 for (i=0;i<elements->Size();i++){ 1553 1553 element=dynamic_cast<Element*>(elements->GetObjectByOffset(i)); 1554 element->Deflection(wg );1555 } 1556 } 1557 /*}}}*/ 1558 #endif 1554 element->Deflection(wg,x,y); 1555 } 1556 } 1557 /*}}}*/ 1558 #endif -
issm/trunk-jpl/src/c/classes/FemModel.h
r14589 r14648 94 94 #endif 95 95 #ifdef _HAVE_GIA_ 96 void Deflection(Vector<IssmDouble>* wg );96 void Deflection(Vector<IssmDouble>* wg,IssmDouble* x, IssmDouble* y); 97 97 #endif 98 98 void SystemMatricesx(Matrix<IssmDouble>** pKff, Matrix<IssmDouble>** pKfs, Vector<IssmDouble>** ppf, Vector<IssmDouble>** pdf, IssmDouble* pkmax); -
issm/trunk-jpl/src/c/classes/objects/Elements/Element.h
r14589 r14648 101 101 102 102 #ifdef _HAVE_GIA_ 103 virtual void Deflection(Vector<IssmDouble>* wg )=0;103 virtual void Deflection(Vector<IssmDouble>* wg,IssmDouble* x,IssmDouble* y)=0; 104 104 #endif 105 105 -
issm/trunk-jpl/src/c/classes/objects/Elements/Penta.cpp
r14605 r14648 3487 3487 #ifdef _HAVE_GIA_ 3488 3488 /*FUNCTION Penta::Deflection {{{*/ 3489 void Penta::Deflection(Vector<IssmDouble>* wg){ 3490 3491 return; 3489 void Penta::Deflection(Vector<IssmDouble>* wg,IssmDouble* x, IssmDouble* y){ 3490 _error_("GIA deflection not implemented yet!"); 3492 3491 } 3493 3492 /*}}}*/ -
issm/trunk-jpl/src/c/classes/objects/Elements/Penta.h
r14605 r14648 143 143 144 144 #ifdef _HAVE_GIA_ 145 void Deflection(Vector<IssmDouble>* wg );145 void Deflection(Vector<IssmDouble>* wg,IssmDouble* x,IssmDouble* y); 146 146 #endif 147 147 -
issm/trunk-jpl/src/c/classes/objects/Elements/Tria.cpp
r14617 r14648 3041 3041 #ifdef _HAVE_GIA_ 3042 3042 /*FUNCTION Tria::Deflection {{{*/ 3043 void Tria::Deflection(Vector<IssmDouble>* wg){ 3043 void Tria::Deflection(Vector<IssmDouble>* wg,IssmDouble* x, IssmDouble* y){ 3044 3045 int i; 3046 int gsize; 3047 IssmDouble xi,yi,ri,re,area; 3048 IssmDouble x0,y0; 3049 IssmDouble xyz_list[NUMVERTICES][3]; 3050 IssmDouble he; 3051 3052 /*how many dofs are we working with here? */ 3053 gsize=this->nodes[0]->indexing.gsize; 3054 3055 /*pull thickness average and area: */ 3056 Input* thickness_input=inputs->GetInput(ThicknessEnum); 3057 if (!thickness_input)_error_("thickness input needed to compute gia deflection!"); 3058 thickness_input->GetInputAverage(&he); 3059 3060 area=this->GetArea(); 3061 3062 /*element radius: */ 3063 re=sqrt(area/PI); 3064 3065 /*figure out gravity center of our element: */ 3066 GetVerticesCoordinates(&xyz_list[0][0], nodes, NUMVERTICES); 3067 x0=(xyz_list[0][0]+xyz_list[1][0]+xyz_list[2][0])/3.0; 3068 y0=(xyz_list[0][1]+xyz_list[1][1]+xyz_list[2][1])/3.0; 3069 3070 for(i=0;i<gsize;i++){ 3071 xi=x[i]; yi=y[i]; 3072 ri=sqrt(pow(xi-x0,2)+pow(yi-y0,2)); 3073 } 3044 3074 3045 3075 return; -
issm/trunk-jpl/src/c/classes/objects/Elements/Tria.h
r14591 r14648 141 141 142 142 #ifdef _HAVE_GIA_ 143 void Deflection(Vector<IssmDouble>* wg );143 void Deflection(Vector<IssmDouble>* wg,IssmDouble* x,IssmDouble* y); 144 144 #endif 145 145 -
issm/trunk-jpl/src/c/classes/objects/Inputs/BoolInput.h
r13623 r14648 55 55 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss); 56 56 void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");}; 57 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 57 58 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; 58 59 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/objects/Inputs/ControlInput.h
r13623 r14648 60 60 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss); 61 61 void GetInputAverage(IssmDouble* pvalue); 62 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 62 63 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; 63 64 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/objects/Inputs/DatasetInput.h
r13623 r14648 54 54 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");}; 55 55 void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");}; 56 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 56 57 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; 57 58 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/objects/Inputs/DoubleInput.h
r13623 r14648 54 54 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss); 55 55 void GetInputAverage(IssmDouble* pvalue); 56 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 56 57 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss); 57 58 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss); -
issm/trunk-jpl/src/c/classes/objects/Inputs/Input.h
r13623 r14648 34 34 virtual void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss)=0; 35 35 virtual void GetInputAverage(IssmDouble* pvalue)=0; 36 virtual void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes)=0; 36 37 virtual void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss)=0; 37 38 virtual void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss)=0; -
issm/trunk-jpl/src/c/classes/objects/Inputs/IntInput.h
r13623 r14648 55 55 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss); 56 56 void GetInputAverage(IssmDouble* pvalue){_error_("not implemented yet");}; 57 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 58 57 59 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; 58 60 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/objects/Inputs/PentaP1Input.h
r13623 r14648 55 55 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss); 56 56 void GetInputAverage(IssmDouble* pvalue); 57 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 58 57 59 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; 58 60 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; -
issm/trunk-jpl/src/c/classes/objects/Inputs/TransientInput.cpp
r13622 r14648 247 247 } 248 248 /*}}}*/ 249 /*FUNCTION TransientInput::GetInputAverages{{{*/ 250 void TransientInput::GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){ 251 252 _error_("not implemented yet!"); 253 254 } 255 /*}}}*/ 249 256 250 257 /*Intermediary*/ -
issm/trunk-jpl/src/c/classes/objects/Inputs/TransientInput.h
r13623 r14648 57 57 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");}; 58 58 void GetInputAverage(IssmDouble* pvalue); 59 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes); 59 60 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; 60 61 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss){_error_("not implemented yet");}; … … 81 82 void GetVectorFromInputs(Vector<IssmDouble>* vector,int* doflist); 82 83 void GetValuesPtr(IssmDouble** pvalues,int* pnum_values){_error_("not supported yet");}; 83 84 void GetTimeValues(IssmDouble* values,IssmDouble time){_error_("not implemented yet");}; 84 85 Input* GetTimeInput(IssmDouble time); 85 86 /*}}}*/ -
issm/trunk-jpl/src/c/classes/objects/Inputs/TriaP1Input.h
r13623 r14648 55 55 void GetInputDerivativeValue(IssmDouble* derivativevalues, IssmDouble* xyz_list, GaussPenta* gauss){_error_("not implemented yet");}; 56 56 void GetInputAverage(IssmDouble* pvalue); 57 void GetInputAllTimeAverages(IssmDouble** pvalues,IssmDouble** ptimes, int* pnumtimes){_error_("not implemented yet");}; 57 58 void GetVxStrainRate2d(IssmDouble* epsilonvx,IssmDouble* xyz_list, GaussTria* gauss); 58 59 void GetVyStrainRate2d(IssmDouble* epsilonvy,IssmDouble* xyz_list, GaussTria* gauss); -
issm/trunk-jpl/src/c/classes/objects/Vertex.cpp
r14099 r14648 212 212 } 213 213 /*}}}*/ 214 /*FUNCTION Vertex::VertexCoordinates {{{*/ 215 void Vertex::VertexCoordinates(Vector<IssmDouble>* vx,Vector<IssmDouble>* vy,Vector<IssmDouble>* vz){ 216 217 if (this->clone==true) return; 218 219 vx->SetValue(this->sid,this->x,INS_VAL); 220 vy->SetValue(this->sid,this->y,INS_VAL); 221 vz->SetValue(this->sid,this->z,INS_VAL); 222 223 return; 224 } 225 /*}}}*/ -
issm/trunk-jpl/src/c/classes/objects/Vertex.h
r14090 r14648 55 55 void SetClone(int* minranks); 56 56 void ToXYZ(Matrix<IssmDouble>* matrix); 57 void VertexCoordinates(Vector<IssmDouble>* vx,Vector<IssmDouble>* vy,Vector<IssmDouble>* vz); 57 58 }; 58 59 #endif /* _VERTEX_H */ -
issm/trunk-jpl/src/c/modules/modules.h
r14632 r14648 100 100 #include "./UpdateDynamicConstraintsx/UpdateDynamicConstraintsx.h" 101 101 #include "./VerticesDofx/VerticesDofx.h" 102 #include "./VertexCoordinatesx/VertexCoordinatesx.h" 102 103 #include "./VecMergex/VecMergex.h" 103 104 #endif -
issm/trunk-jpl/src/c/solutions/gia_core.cpp
r14589 r14648 13 13 void gia_core(FemModel* femmodel){ 14 14 15 int i; 15 16 Vector<IssmDouble>* wg = NULL; 17 IssmDouble* x = NULL; 18 IssmDouble* y = NULL; 16 19 17 20 /*parameters: */ … … 33 36 wg = new Vector<IssmDouble>(gsize); 34 37 38 /*first, recover x and y vectors from vertices: */ 39 VertexCoordinatesx(&x,&y,NULL,femmodel->vertices); //no need for z coordinate 40 35 41 /*call the main module: */ 36 femmodel->Deflection(wg );42 femmodel->Deflection(wg,x,y); 37 43 38 44 InputUpdateFromSolutionx( femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,wg);
Note:
See TracChangeset
for help on using the changeset viewer.