hp2FEM
0.1
|
00001 #ifndef _OGDENMATERIAL_H_ 00002 #define _OGDENMATERIAL_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:24 00007 // file : OgdenMaterial.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 00049 class OgdenMaterial : public Material 00050 { 00051 //#UBLK-BEG-CLASSDEF mm:73579b71-c1a5-11e0-909e-a6f9aed3c162 00052 //#UBLK-END-CLASSDEF 00053 00054 public: 00055 00056 // METHOD=mm:870a14b3-c1b3-11e0-909e-a6f9aed3c162 00057 OgdenMaterial(); 00058 00059 // METHOD=mm:0b10d18d-c1b5-11e0-909e-a6f9aed3c162 00060 OgdenMaterial(OgdenMaterial& Instance); 00061 00062 // METHOD=mm:0c525d33-c736-11e0-8046-f65338a438b2 00063 OgdenMaterial(unsigned long MaterialNumber, ProblemType_E Application, double Mu_Ogden = 0.0, double Alpha_Ogden = 0.0, double Kappa = 0.0, double Nu = 0.0, double AlphaT = 0.0, double Rho = 0.0); 00064 00065 // METHOD=mm:45c720e8-c1b6-11e0-909e-a6f9aed3c162 00066 OgdenMaterial& operator=(OgdenMaterial& Instance); 00067 00068 // METHOD=mm:c9811b3b-c1b6-11e0-909e-a6f9aed3c162 00069 ~OgdenMaterial(); 00070 00071 // METHOD=mm:70235f57-c72b-11e0-8046-f65338a438b2 00072 void operator=(Material& Inst); 00073 00074 // METHOD=mm:0d7427c5-c1b7-11e0-909e-a6f9aed3c162 00075 void Read(FILE* File); 00076 00077 // METHOD=mm:372d3e35-c1b7-11e0-909e-a6f9aed3c162 00078 void Print(FILE* File, char* Message); 00079 00080 // METHOD=mm:588e241f-c1b7-11e0-909e-a6f9aed3c162 00081 void Print(FILE* File); 00082 00083 // METHOD=mm:62b02014-c1b7-11e0-909e-a6f9aed3c162 00084 void Save(FILE* File); 00085 00086 // METHOD=mm:69d74fd4-c1b7-11e0-909e-a6f9aed3c162 00087 void Restore(FILE* File); 00088 00089 // METHOD=mm:8e33282f-c1b7-11e0-909e-a6f9aed3c162 00090 void Free(); 00091 00092 // METHOD=mm:a90c1383-c724-11e0-8046-f65338a438b2 00093 void SetApplication(ProblemType_E Application); 00094 00095 // METHOD=mm:a90c1b3f-c724-11e0-8046-f65338a438b2 00096 ProblemType_E GetApplication(); 00097 00098 // METHOD=mm:968b5191-c1b7-11e0-909e-a6f9aed3c162 00099 char* GetName(); 00100 00101 // METHOD=mm:9e4afc51-c1b7-11e0-909e-a6f9aed3c162 00102 MaterialType_E GetMaterialType(); 00103 00104 // METHOD=mm:7959927b-c1bd-11e0-909e-a6f9aed3c162 00105 void SetProperties(BuiltInArray<double>& Properties); 00106 00107 // METHOD=mm:9d1cbcd3-c1bd-11e0-909e-a6f9aed3c162 00108 void SetProperty(MaterialProperty_E Property, double Value); 00109 00110 // METHOD=mm:cb9ab962-c1bd-11e0-909e-a6f9aed3c162 00111 void GetProperties(BuiltInArray<double>& Properties); 00112 00113 // METHOD=mm:e4a365d0-c1bd-11e0-909e-a6f9aed3c162 00114 double GetProperty(MaterialProperty_E Property); 00115 00116 // METHOD=mm:1a483999-c1be-11e0-909e-a6f9aed3c162 00117 unsigned long GetNumberProperties(); 00118 00119 // METHOD=mm:27fdd9f9-c1be-11e0-909e-a6f9aed3c162 00120 void GetCMatrix(SymmetricMatrix& CMatrix); 00121 00122 // METHOD=mm:4368ccd5-c1be-11e0-909e-a6f9aed3c162 00123 void GetDMatrix(SymmetricMatrix& DMatrix, double* Strain, double pbar = 0.0, double* DeltaStrain = NULL, long ElementNumber = 0, long PointStateNumber = 0); 00124 00125 // METHOD=mm:c986285b-c1c0-11e0-909e-a6f9aed3c162 00126 int GetDMatrixOrder(int StrainOrder); 00127 00128 // METHOD=mm:e7ec0a77-c1c0-11e0-909e-a6f9aed3c162 00129 void GetStress(double* Stress, double* Strain, double* StressTensor = NULL, double pbar = 0.0, long ElementNumber = 0, long PointStateNumber = 0); 00130 00131 // METHOD=mm:9ea9974c-25b1-4d05-a4ab-1c5f01da3d6b 00132 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); 00133 00134 // METHOD=mm:313c5ad3-c1c1-11e0-909e-a6f9aed3c162 00135 int GetStressOrder(int StrainOrder); 00136 00137 // METHOD=mm:44e7db89-c1c1-11e0-909e-a6f9aed3c162 00138 double GetStrainEnergyDensity(double* Strain, double pbar = 0.0, long ElementNumber = 0, long PointStateNumber = 0); 00139 00140 // METHOD=mm:8b3d1685-c1c1-11e0-909e-a6f9aed3c162 00141 int GetStrainEnergyDensityOrder(int StrainOrder); 00142 00143 00144 protected: 00145 00146 // attr=mm:89fe05f7-c1a5-11e0-909e-a6f9aed3c162 00147 double MuOgden; 00148 // attr=mm:a00bb529-c1a5-11e0-909e-a6f9aed3c162 00149 double AlphaOgden; 00150 00154 // attr=mm:cf7307cd-c1ae-11e0-909e-a6f9aed3c162 00155 double BulkModulus; 00156 00160 // attr=mm:d994fa27-c1ae-11e0-909e-a6f9aed3c162 00161 double PoissonRatio; 00162 00166 // attr=mm:e1ed2e83-c1ae-11e0-909e-a6f9aed3c162 00167 double ThermalExpCoef; 00168 00172 // attr=mm:f2050ccd-c1ae-11e0-909e-a6f9aed3c162 00173 double Density; 00174 00175 00176 private: 00177 00178 //#UBLK-BEG-CLASSMEMB mm:73579b71-c1a5-11e0-909e-a6f9aed3c162 00179 //#UBLK-END-CLASSMEMB 00180 }; 00181 00182 //#UBLK-BEG-GLOBALH 00183 //*** Removed methods: 13 May 2014 16:55 00184 //--- 00185 //uuid=mm:56d4863d-fff7-44b4-a1d6-2f85b16eb7a9 00186 // 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); 00187 00188 //#UBLK-END-GLOBALH 00189 00190 00191 #endif // _OGDENMATERIAL_H_