hp2FEM  0.1
include/material/MooneyRivlinMaterial.h
00001 #ifndef _MOONEYRIVLINMATERIAL_H_
00002 #define _MOONEYRIVLINMATERIAL_H_
00003 // ---------------------------------------------
00004 // company   : 
00005 // user      : 
00006 // date      : 22 Mar 2015 17:24
00007 // file      : MooneyRivlinMaterial.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     : 16 Aug 2011
00019 //--------------------------------------------------------------
00020 // Change history : 
00021 //   16 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 "enumerations/MaterialType_E.h"
00047 #include "enumerations/MaterialProperty_E.h"
00048 
00049 
00053 class MooneyRivlinMaterial : public Material
00054 {
00055 //#UBLK-BEG-CLASSDEF mm:df2a6785-f1b1-11df-979e-d8f5868d5888
00057 
00058  public:
00059 
00060    // METHOD=mm:e5b8c69a-f1b1-11df-979e-d8f5868d5888
00061    MooneyRivlinMaterial();
00062 
00063    // METHOD=mm:e5b8c69b-f1b1-11df-979e-d8f5868d5888
00064    MooneyRivlinMaterial(MooneyRivlinMaterial& Instance);
00065 
00066    // METHOD=mm:87ffe4ab-c735-11e0-8046-f65338a438b2
00067    MooneyRivlinMaterial(unsigned long MaterialNumber, ProblemType_E Application, double a_10 = 0.0, double a_01 = 0.0, double Kappa = 0.0, double Nu = 0.0, double AlphaT = 0.0, double Rho = 0.0);
00068 
00069    // METHOD=mm:dcc777bc-69ba-11e0-94a8-e19117dd202e
00070    MooneyRivlinMaterial& operator=(MooneyRivlinMaterial& Instance);
00071 
00072    // METHOD=mm:e5b8c69d-f1b1-11df-979e-d8f5868d5888
00073    ~MooneyRivlinMaterial();
00074 
00075    // METHOD=mm:e5b8c69e-f1b1-11df-979e-d8f5868d5888
00076    void operator=(Material& Inst);
00077 
00078    // METHOD=mm:e5b8c6a0-f1b1-11df-979e-d8f5868d5888
00079    void Read(FILE* File);
00080 
00081    // METHOD=mm:e5b8c6a2-f1b1-11df-979e-d8f5868d5888
00082    void Print(FILE* File, char* Message);
00083 
00084    // METHOD=mm:e5b8c730-f1b1-11df-979e-d8f5868d5888
00085    void Print(FILE* File);
00086 
00087    // METHOD=mm:e5b8c732-f1b1-11df-979e-d8f5868d5888
00088    void Save(FILE* File);
00089 
00090    // METHOD=mm:e5b8c734-f1b1-11df-979e-d8f5868d5888
00091    void Restore(FILE* File);
00092 
00093    // METHOD=mm:e5b8c736-f1b1-11df-979e-d8f5868d5888
00094    void Free();
00095 
00096    // METHOD=mm:3731b7d5-c720-11e0-8046-f65338a438b2
00097    void SetApplication(ProblemType_E Application);
00098 
00099    // METHOD=mm:3731c261-c720-11e0-8046-f65338a438b2
00100    ProblemType_E GetApplication();
00101 
00102    // METHOD=mm:e5b8c737-f1b1-11df-979e-d8f5868d5888
00103    char* GetName();
00104 
00105    // METHOD=mm:e5b8c738-f1b1-11df-979e-d8f5868d5888
00106    MaterialType_E GetMaterialType();
00107 
00108    // METHOD=mm:e5b8c7d2-f1b1-11df-979e-d8f5868d5888
00109    void SetProperties(BuiltInArray<double>& Properties);
00110 
00111    // METHOD=mm:e5b8c7d4-f1b1-11df-979e-d8f5868d5888
00112    void SetProperty(MaterialProperty_E Property, double Value);
00113 
00114    // METHOD=mm:e5b8c7d7-f1b1-11df-979e-d8f5868d5888
00115    void GetProperties(BuiltInArray<double>& Properties);
00116 
00117    // METHOD=mm:e5b8c86e-f1b1-11df-979e-d8f5868d5888
00118    double GetProperty(MaterialProperty_E Property);
00119 
00120    // METHOD=mm:e5b8c870-f1b1-11df-979e-d8f5868d5888
00121    unsigned long GetNumberProperties();
00122 
00123    // METHOD=mm:e5b8c871-f1b1-11df-979e-d8f5868d5888
00124    void GetCMatrix(SymmetricMatrix& CMatrix);
00125 
00126    // METHOD=mm:e5b8c873-f1b1-11df-979e-d8f5868d5888
00127    void GetDMatrix(SymmetricMatrix& DMatrix, double* Strain = NULL, double pbar = 0.0, double* DeltaDef = NULL, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0);
00128 
00129    // METHOD=mm:e5b8c905-f1b1-11df-979e-d8f5868d5888
00130    unsigned long GetDMatrixOrder(unsigned long StrainOrder);
00131 
00132    // METHOD=mm:e5b8c907-f1b1-11df-979e-d8f5868d5888
00133    void GetStress(double* Stress, double* Strain, double* StressTensor = NULL, double pbar = 0.0, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0);
00134 
00135    // METHOD=mm:301655b7-17b6-4686-98f9-ca4d8286cb19
00136    void GetStressUpdate(double* Stress, double* Strain, SymmetricMatrix& DMatrix, double Damage_n, unsigned long IntPoint, double& Damage_n1, double* StressTensor, double pbar = 0.0, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0);
00137 
00138    // METHOD=mm:e5b8c90d-f1b1-11df-979e-d8f5868d5888
00139    unsigned long GetStressOrder(unsigned long StrainOrder);
00140 
00141    // METHOD=mm:e5b8c9a4-f1b1-11df-979e-d8f5868d5888
00142    double GetStrainEnergyDensity(double* Strain, double pbar = 0.0, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0);
00143 
00144    // METHOD=mm:e5b8c9a9-f1b1-11df-979e-d8f5868d5888
00145    int GetStrainEnergyDensityOrder(unsigned long StrainOrder);
00146 
00147 
00148  protected:
00149 
00154    // attr=mm:e5b8c5ff-f1b1-11df-979e-d8f5868d5888
00155    double A_10;
00156 
00161    // attr=mm:e5b8c600-f1b1-11df-979e-d8f5868d5888
00162    double A_01;
00163 
00168    // attr=mm:e5b8c601-f1b1-11df-979e-d8f5868d5888
00169    double BulkModulus;
00170 
00174    // attr=mm:e5b8c602-f1b1-11df-979e-d8f5868d5888
00175    double PoissonRatio;
00176 
00180    // attr=mm:e5b8c698-f1b1-11df-979e-d8f5868d5888
00181    double ThermalExpCoef;
00182 
00189    // attr=mm:e5b8c699-f1b1-11df-979e-d8f5868d5888
00190    double Density;
00191 
00192 
00193  private:
00194 
00195 //#UBLK-BEG-CLASSMEMB mm:df2a6785-f1b1-11df-979e-d8f5868d5888
00197 };
00198 
00199 //#UBLK-BEG-GLOBALH
00200 //*** Removed methods: 13 May 2014 16:55
00201 //---
00202 //uuid=mm:ef769e36-4c02-4303-8085-9d9663c858d6
00203 //   void GetStressUpdate(double* Stress, double* Strain, double Damage_n, double& Damage_n1, double* StressTensor = NULL, double pbar = 0.0, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0);
00204 
00205 //#UBLK-END-GLOBALH
00206 
00207 
00208 #endif // _MOONEYRIVLINMATERIAL_H_
 All Classes Files Functions Variables Typedefs Friends Defines