hp2FEM
0.1
|
00001 #ifndef _HOOKEMATERIAL_H_ 00002 #define _HOOKEMATERIAL_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:24 00007 // file : HookeMaterial.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 00053 class HookeMaterial : public Material 00054 { 00055 //#UBLK-BEG-CLASSDEF mm:3a6cadb5-400f-11e0-9dd5-8e5be057fed3 00056 //#UBLK-END-CLASSDEF 00057 00058 public: 00059 00060 // METHOD=mm:3ccf0d92-400f-11e0-9dd5-8e5be057fed3 00061 HookeMaterial(); 00062 00063 // METHOD=mm:3ccf0e28-400f-11e0-9dd5-8e5be057fed3 00064 HookeMaterial(HookeMaterial& Instance); 00065 00066 // METHOD=mm:3ccf0e2a-400f-11e0-9dd5-8e5be057fed3 00067 HookeMaterial(unsigned long MaterialNumber, ProblemType_E Application, double E = 0.0, double Nu = 0.3, double AlphaT = 0.0, double Rho = 0.0); 00068 00069 // METHOD=mm:3ccf0e31-400f-11e0-9dd5-8e5be057fed3 00070 ~HookeMaterial(); 00071 00072 // METHOD=mm:498d3632-69b8-11e0-94a8-e19117dd202e 00073 HookeMaterial& operator=(HookeMaterial& Instance); 00074 00075 // METHOD=mm:3ccf0ebf-400f-11e0-9dd5-8e5be057fed3 00076 void Read(FILE* File); 00077 00078 // METHOD=mm:3ccf0ec1-400f-11e0-9dd5-8e5be057fed3 00079 void Print(FILE* File, char* Message); 00080 00081 // METHOD=mm:4888bb89-c73c-11e0-8046-f65338a438b2 00082 void Print(FILE* File); 00083 00084 // METHOD=mm:3ccf0ec6-400f-11e0-9dd5-8e5be057fed3 00085 void Save(FILE* File); 00086 00087 // METHOD=mm:3ccf0ec8-400f-11e0-9dd5-8e5be057fed3 00088 void Restore(FILE* File); 00089 00090 // METHOD=mm:3ccf0f5f-400f-11e0-9dd5-8e5be057fed3 00091 void Free(); 00092 00093 // METHOD=mm:b964586d-c377-11e0-840e-c6c47fa74d4c 00094 void SetApplication(ProblemType_E Application); 00095 00096 // METHOD=mm:ba9586cb-c377-11e0-840e-c6c47fa74d4c 00097 ProblemType_E GetApplication(); 00098 00099 // METHOD=mm:3ccf0f60-400f-11e0-9dd5-8e5be057fed3 00100 char* GetName(); 00101 00102 // METHOD=mm:3ccf0f61-400f-11e0-9dd5-8e5be057fed3 00103 MaterialType_E GetMaterialType(); 00104 00105 // METHOD=mm:3ccf0f66-400f-11e0-9dd5-8e5be057fed3 00106 void SetProperties(BuiltInArray<double>& Properties); 00107 00108 // METHOD=mm:3ccf0f68-400f-11e0-9dd5-8e5be057fed3 00109 void SetProperty(MaterialProperty_E Property, double Value); 00110 00111 // METHOD=mm:3ccf0ff6-400f-11e0-9dd5-8e5be057fed3 00112 void GetProperties(BuiltInArray<double>& Properties); 00113 00114 // METHOD=mm:3ccf0ff8-400f-11e0-9dd5-8e5be057fed3 00115 double GetProperty(MaterialProperty_E Property); 00116 00117 // METHOD=mm:3ccf0ffa-400f-11e0-9dd5-8e5be057fed3 00118 unsigned long GetNumberProperties(); 00119 00120 // METHOD=mm:3ccf0ffb-400f-11e0-9dd5-8e5be057fed3 00121 void GetCMatrix(SymmetricMatrix& CMatrix); 00122 00123 // METHOD=mm:3ccf0ffd-400f-11e0-9dd5-8e5be057fed3 00124 void GetDMatrix(SymmetricMatrix& DMatrix, double* Strain = NULL, double pbar = 0.0, double* DeltaDef = NULL, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0); 00125 00126 // METHOD=mm:3ccf1099-400f-11e0-9dd5-8e5be057fed3 00127 unsigned long GetDMatrixOrder(unsigned long StrainOrder); 00128 00129 // METHOD=mm:3ccf109b-400f-11e0-9dd5-8e5be057fed3 00130 void GetStress(double* Stress, double* Strain, double* StressTensor = NULL, double pbar = 0.0, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0); 00131 00132 // METHOD=mm:a839bbcd-fc62-4bc7-8288-edb283e5b0a1 00133 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); 00134 00135 // METHOD=mm:3ccf1136-400f-11e0-9dd5-8e5be057fed3 00136 unsigned long GetStressOrder(unsigned long StrainOrder); 00137 00138 // METHOD=mm:3ccf1138-400f-11e0-9dd5-8e5be057fed3 00139 double GetStrainEnergyDensity(double* Strain, double pbar = 0.0, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0); 00140 00141 // METHOD=mm:3ccf113d-400f-11e0-9dd5-8e5be057fed3 00142 int GetStrainEnergyDensityOrder(unsigned long StrainOrder); 00143 00144 00145 protected: 00146 00151 // attr=mm:3ccf0d8e-400f-11e0-9dd5-8e5be057fed3 00152 double YoungModulus; 00153 00158 // attr=mm:3ccf0d8f-400f-11e0-9dd5-8e5be057fed3 00159 double PoissonRatio; 00160 00164 // attr=mm:3ccf0d90-400f-11e0-9dd5-8e5be057fed3 00165 double ThermalExpCoef; 00166 00170 // attr=mm:3ccf0d91-400f-11e0-9dd5-8e5be057fed3 00171 double Density; 00172 00173 00174 private: 00175 00176 //#UBLK-BEG-CLASSMEMB mm:3a6cadb5-400f-11e0-9dd5-8e5be057fed3 00177 //#UBLK-END-CLASSMEMB 00178 }; 00179 00180 //#UBLK-BEG-GLOBALH 00181 //*** Removed methods: 05 Dec 2012 12:17 00182 //--- 00183 //uuid=mm:152bdef4-6d5f-41bb-a392-93043a843aa9 00184 // void teste(); 00185 00186 //*** Removed methods: 13 May 2014 16:55 00187 //--- 00188 //uuid=mm:f5a3e86d-a18a-4ec7-982e-f2a652e45dad 00189 // 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); 00190 00191 //#UBLK-END-GLOBALH 00192 00193 00194 #endif // _HOOKEMATERIAL_H_