hp2FEM
0.1
|
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_