hp2FEM  0.1
include/finiteelement/GradientMeasure.h
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_
 All Classes Files Functions Variables Typedefs Friends Defines