hp2FEM
0.1
|
00001 #ifndef _GRADIENTMEASURE_H_ 00002 #define _GRADIENTMEASURE_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:22 00007 // file : GradientMeasure.h 00008 // markers : Full 00009 // language : C++ 00010 // generator : Metamill 6.0 00011 // --------------------------------------------- 00012 00013 //#UBLK-BEG-HEADERH 00014 //============================================================== 00015 // Description : 00016 //-------------------------------------------------------------- 00017 // Author : Gilberto Luis 00018 // Created : 17 Aug 2011 00019 //-------------------------------------------------------------- 00020 // Change history : 00021 // 17 Aug 2011 (Gilberto Luis) Initial version generated 00022 // 00023 //============================================================== 00024 //#UBLK-END-HEADERH 00025 00026 /*================================================================================================= 00027 = = 00028 = Copyright 2010-2015 Marco Lucio Bittencourt / Fabiano Fernandes Bargos = 00029 = Gilberto Luis Valente / Jorge Luis Suzuki / Allan Patrick Cordeiro Dias = 00030 = = 00031 = Licensed under the Apache License, Version 2.0 (the "License"); = 00032 = you may not use this file except in compliance with the License. = 00033 = You may obtain a copy of the License at = 00034 = = 00035 = http://www.apache.org/licenses/LICENSE-2.0 = 00036 = = 00037 = Unless required by applicable law or agreed to in writing, software = 00038 = distributed under the License is distributed on an "AS IS" BASIS, = 00039 = WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. = 00040 = See the License for the specific language governing permissions and = 00041 = limitations under the License. = 00042 = = 00043 =================================================================================================*/ 00044 00045 00046 #include "ds/Matrix.h" 00047 #include "ds/DS_defs.h" 00048 #include "material/Material.h" 00049 #include "enumerations/ProblemType_E.h" 00050 #include "enumerations/StrainMeasure_E.h" 00051 #include "enumerations/FiniteFormulation_E.h" 00052 00053 00061 class GradientMeasure 00062 { 00063 //#UBLK-BEG-CLASSDEF mm:079de446-f650-11df-817b-b59fee0c7729 00064 //#UBLK-END-CLASSDEF 00065 00066 public: 00067 00068 // METHOD=mm:e9d06810-f64f-11df-817b-b59fee0c7729 00069 GradientMeasure(); 00070 00071 // METHOD=mm:04a10b8f-02d7-11e0-89cb-b0660132333d 00072 GradientMeasure(GradientMeasure& Instance); 00073 00074 // METHOD=mm:25695b79-02d7-11e0-89cb-b0660132333d 00075 ~GradientMeasure(); 00076 00077 // METHOD=mm:2079a9a8-f728-11df-9e90-ca5b7a2520c3 00078 void GetDeformationGradientTensor(double* Jinit, double* detJinit, double* Jcurr, unsigned long Dimension, unsigned long IntPoint, Matrix& F); 00079 00080 // METHOD=mm:2079a9ab-f728-11df-9e90-ca5b7a2520c3 00081 void GetDisplacementGradientTensor(FiniteFormulation_E FiniteFormulation, unsigned long Dimension, Matrix& F, Matrix& gradU); 00082 00083 // METHOD=mm:2079a73c-f728-11df-9e90-ca5b7a2520c3 00084 void GetStrainTensor(StrainMeasure_E StrainMeasure, ProblemType_E ProblemType, Material& Mater, Matrix& F, SymmetricMatrix& E, double* Ev, double r = 0.0, double ur = 0.0); 00085 00086 // METHOD=mm:e9d06814-f64f-11df-817b-b59fee0c7729 00087 void GetLinearBMatrix(ProblemType_E ProblemType, unsigned long Dimension, unsigned long NumberSF, double* Jacob, double* detJ, double* dShapeFunctions, double* ShapeFunctions, double* Xe, unsigned long IntPoint, Matrix& BMatrix, double r = 0.0); 00088 00089 // METHOD=mm:e9d06813-f64f-11df-817b-b59fee0c7729 00090 void GetNonLinearBMatrix(ProblemType_E ProblemType, FiniteFormulation_E FiniteFormulation, unsigned long Dimension, unsigned long NumberSF, double* Jacob, double* detJ, double* dShapeFunctions, double* ShapeFunctions, double* Xe, Matrix& DisplacementGradTensor, unsigned long IntPoint, Matrix& BMatrix, Matrix& ISBMatrix, double r = 0.0, double ur = 0.0); 00091 00092 // METHOD=mm:cedc81e6-d8ad-4297-82f0-f391f7684119 00093 void GetGVector(ProblemType_E ProblemType, double* Strain, Matrix& NLBMatrix, Vector& dJdE, Vector& GVector); 00094 00095 // METHOD=mm:4393538f-6318-4d95-98a1-4a7853f60e22 00096 void GetAllNonlinearGradientMeasures(ProblemType_E ProblemType, StrainMeasure_E StrainMeasure, unsigned long NumIntPoints, double* dShapeFunctions, unsigned long NumberSF, double* Jinit, double* detJinit, double* Jcurr, Matrix& F, Matrix& gradU, Vector& Ev, Matrix& NLBMatrix, Matrix& ISBMatrix, unsigned long& VectorOrder, unsigned long& TensorOrder); 00097 00098 00099 protected: 00100 00101 // METHOD=mm:2079aa49-f728-11df-9e90-ca5b7a2520c3 00102 void GetGreenLagrangeStrainTensor(ProblemType_E ProblemType, Matrix& F, Material& Mater, SymmetricMatrix& E, double* Ev = NULL, double r = 0.0, double ur = 0.0); 00103 00104 // METHOD=mm:2079aae4-f728-11df-9e90-ca5b7a2520c3 00105 void GetAlmansiHamelStrainTensor(ProblemType_E ProblemType, Matrix& F, Material& Mat, SymmetricMatrix& E, double* Ev = NULL); 00106 00107 // METHOD=mm:2079aaea-f728-11df-9e90-ca5b7a2520c3 00108 void GetInfinitesimalStrainTensor(ProblemType_E ProblemType, Matrix& F, SymmetricMatrix& E, double* Ev = NULL); 00109 00110 00111 private: 00112 00113 //#UBLK-BEG-CLASSMEMB mm:079de446-f650-11df-817b-b59fee0c7729 00114 //#UBLK-END-CLASSMEMB 00115 }; 00116 00117 //#UBLK-BEG-GLOBALH 00118 //*** Removed methods: 30 Nov 2012 15:36 00119 //--- 00120 //uuid=mm:77674e97-0743-4290-9a18-25b3ecbbb46c 00121 // void GetGVector(ProblemType_E ProblemType, double* Strain, double* NLBMatrix, Vector& dJdE, Vector& GVector); 00122 //--- 00123 //uuid=mm:bf34f10f-7698-405a-bda6-88129f6e3f76 00124 // void GetAllNonlinearGradientMeasures(ProblemType_E ProblemType, StrainMeasure_E StrainMeasure, unsigned long NumIntPoints, double* dShapeFunctions, unsigned long NumberSF, double* Jinit, double* detJinit, double* Jcurr, Matrix& F, Matrix& gradU, Vector& Ev, Matrix& NLBMatrix, Matrix& ISBMatrix, unsigned long& VectorOrder, unsigned long& TensorOrder); 00125 00126 //*** Removed methods: 17 Dec 2012 16:37 00127 //--- 00128 //uuid=mm:89c8f0f0-5654-11e0-8f97-d10de8031633 00129 // GradientMeasure& operator=(GradientMeasure& Instance); 00130 00131 //*** Removed methods: 13 May 2014 16:57 00132 //--- 00133 //uuid=mm:6ac6a97c-e4da-4e40-b1be-274b4006c1d3 00134 // void GetNonLinearBMatrix_copy(ProblemType_E ProblemType, FiniteFormulation_E FiniteFormulation, unsigned long Dimension, unsigned long NumberSF, double* Jacob, double* detJ, double* dShapeFunctions, double* ShapeFunctions, double* Xe, Matrix& DisplacementGradTensor, unsigned short NumIntPoints, Matrix& BMatrix, Matrix& ISBMatrix); 00135 00136 //#UBLK-END-GLOBALH 00137 00138 00139 #endif // _GRADIENTMEASURE_H_