hp2FEM
0.1
|
00001 #ifndef _HEATCONDUCTIONMATERIAL_H_ 00002 #define _HEATCONDUCTIONMATERIAL_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:24 00007 // file : HeatConductionMaterial.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 HeatConductionMaterial : public Material 00054 { 00055 //#UBLK-BEG-CLASSDEF mm:ecf36257-f738-11df-81f0-aabf6ca65f2a 00056 //#UBLK-END-CLASSDEF 00057 00058 public: 00059 00060 // METHOD=mm:ecf362f8-f738-11df-81f0-aabf6ca65f2a 00061 HeatConductionMaterial(); 00062 00063 // METHOD=mm:ecf362f9-f738-11df-81f0-aabf6ca65f2a 00064 HeatConductionMaterial(unsigned long MaterialNumber, ProblemType_E Application, double TherCond, double Rho); 00065 00066 // METHOD=mm:d530912f-c736-11e0-8046-f65338a438b2 00067 HeatConductionMaterial(double TherCond, double Rho); 00068 00069 // METHOD=mm:51003a0f-02ff-11e0-843e-b9717acb62a7 00070 HeatConductionMaterial(HeatConductionMaterial& Instance); 00071 00072 // METHOD=mm:5100427f-02ff-11e0-843e-b9717acb62a7 00073 ~HeatConductionMaterial(); 00074 00075 // METHOD=mm:ecf362fc-f738-11df-81f0-aabf6ca65f2a 00076 void Read(FILE* File); 00077 00078 // METHOD=mm:ecf362fe-f738-11df-81f0-aabf6ca65f2a 00079 void Print(FILE* File, char* Message = (char*)""); 00080 00081 // METHOD=mm:13c93873-c73d-11e0-8046-f65338a438b2 00082 void Print(FILE* File); 00083 00084 // METHOD=mm:ecf36300-f738-11df-81f0-aabf6ca65f2a 00085 void Save(FILE* File); 00086 00087 // METHOD=mm:ecf3638d-f738-11df-81f0-aabf6ca65f2a 00088 void Restore(FILE* File); 00089 00090 // METHOD=mm:ecf3638f-f738-11df-81f0-aabf6ca65f2a 00091 void Free(); 00092 00093 // METHOD=mm:97d0b7bf-c443-11e0-8c82-900da7b05bb6 00094 void SetApplication(ProblemType_E Application); 00095 00096 // METHOD=mm:97d0c223-c443-11e0-8c82-900da7b05bb6 00097 ProblemType_E GetApplication(); 00098 00099 // METHOD=mm:501cbff1-69ba-11e0-94a8-e19117dd202e 00100 char* GetName(); 00101 00102 // METHOD=mm:298233ab-c72c-11e0-8046-f65338a438b2 00103 MaterialType_E GetMaterialType(); 00104 00105 // METHOD=mm:ecf36393-f738-11df-81f0-aabf6ca65f2a 00106 void SetProperties(BuiltInArray<double>& Properties); 00107 00108 // METHOD=mm:ecf36396-f738-11df-81f0-aabf6ca65f2a 00109 void SetProperty(MaterialProperty_E Property, double Value); 00110 00111 // METHOD=mm:ecf3642e-f738-11df-81f0-aabf6ca65f2a 00112 void GetProperties(BuiltInArray<double>& Properties); 00113 00114 // METHOD=mm:ecf3642f-f738-11df-81f0-aabf6ca65f2a 00115 double GetProperty(MaterialProperty_E Property); 00116 00117 // METHOD=mm:ecf36431-f738-11df-81f0-aabf6ca65f2a 00118 unsigned long GetNumberProperties(); 00119 00120 // METHOD=mm:ecf36432-f738-11df-81f0-aabf6ca65f2a 00121 void GetCMatrix(SymmetricMatrix& CMatrix); 00122 00123 // METHOD=mm:ecf36433-f738-11df-81f0-aabf6ca65f2a 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:a906429f-4020-11e0-9dd5-8e5be057fed3 00127 unsigned long GetDMatrixOrder(unsigned long StrainOrder); 00128 00129 // METHOD=mm:65a44d35-1434-407f-9cbe-5186476defa5 00130 double GetStrainEnergyDensity(double* Strain, double pbar = 0.0, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0); 00131 00132 // METHOD=mm:4d304c47-0ea2-4019-b9b7-ab59b95aea1f 00133 int GetStrainEnergyDensityOrder(unsigned long StrainOrder); 00134 00135 // METHOD=mm:ecf36435-f738-11df-81f0-aabf6ca65f2a 00136 void GetStress(double* Stress, double* Strain, double* StressTensor = NULL, double pbar = 0.0, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0); 00137 00138 // METHOD=mm:df2eb4ec-d186-49bb-a154-aff9cc067fe5 00139 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); 00140 00141 // METHOD=mm:d8724d07-c72b-11e0-8046-f65338a438b2 00142 unsigned long GetStressOrder(unsigned long StrainOrder); 00143 00144 00145 protected: 00146 00150 // attr=mm:ecf362f6-f738-11df-81f0-aabf6ca65f2a 00151 double ThermalConduction; 00152 00156 // attr=mm:ecf362f7-f738-11df-81f0-aabf6ca65f2a 00157 double Density; 00158 00159 00160 private: 00161 00162 //#UBLK-BEG-CLASSMEMB mm:ecf36257-f738-11df-81f0-aabf6ca65f2a 00163 //#UBLK-END-CLASSMEMB 00164 }; 00165 00166 //#UBLK-BEG-GLOBALH 00167 //*** Removed methods: 13 May 2014 16:55 00168 //--- 00169 //uuid=mm:d720b477-545a-4cd1-ac81-7567353d328e 00170 // 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); 00171 00172 //#UBLK-END-GLOBALH 00173 00174 00175 #endif // _HEATCONDUCTIONMATERIAL_H_