hp2FEM
0.1
|
00001 #ifndef _DAMAGEDMOONEYRIVLINMATERIAL_H_ 00002 #define _DAMAGEDMOONEYRIVLINMATERIAL_H_ 00003 // --------------------------------------------- 00004 // company : 00005 // user : 00006 // date : 22 Mar 2015 17:24 00007 // file : DamagedMooneyRivlinMaterial.h 00008 // markers : Full 00009 // language : C++ 00010 // generator : Metamill 6.0 00011 // --------------------------------------------- 00012 00013 //#UBLK-BEG-HEADERH 00014 //#UBLK-END-HEADERH 00015 00016 /*================================================================================================= 00017 = = 00018 = Copyright 2010-2015 Marco Lucio Bittencourt / Fabiano Fernandes Bargos = 00019 = Gilberto Luis Valente / Jorge Luis Suzuki / Allan Patrick Cordeiro Dias = 00020 = = 00021 = Licensed under the Apache License, Version 2.0 (the "License"); = 00022 = you may not use this file except in compliance with the License. = 00023 = You may obtain a copy of the License at = 00024 = = 00025 = http://www.apache.org/licenses/LICENSE-2.0 = 00026 = = 00027 = Unless required by applicable law or agreed to in writing, software = 00028 = distributed under the License is distributed on an "AS IS" BASIS, = 00029 = WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. = 00030 = See the License for the specific language governing permissions and = 00031 = limitations under the License. = 00032 = = 00033 =================================================================================================*/ 00034 00035 00036 #include "enumerations/MaterialType_E.h" 00037 #include "enumerations/MaterialProperty_E.h" 00038 00039 00043 class DamagedMooneyRivlinMaterial : public Material 00044 { 00045 //#UBLK-BEG-CLASSDEF mm:8a3adfad-0fa5-4845-8dc0-59136ec478b8 00046 //#UBLK-END-CLASSDEF 00047 00048 public: 00049 00050 // METHOD=mm:4c07b112-97f0-4d8f-86e3-4fecf602fcaf 00051 DamagedMooneyRivlinMaterial(); 00052 00053 // METHOD=mm:ea0e4557-9d5e-43df-8a4a-3a5ecce121f6 00054 DamagedMooneyRivlinMaterial(DamagedMooneyRivlinMaterial& Instance); 00055 00056 // METHOD=mm:37b786a6-1649-4474-bea4-d31e0166e5c1 00057 DamagedMooneyRivlinMaterial(unsigned long MaterialNumber, ProblemType_E Application, double A_10 = 0.0, double A_01 = 0.0, double K = 0.0, double Rho = 0.0, double Dalpha = 0.0, double Dbeta = 0.0); 00058 00059 // METHOD=mm:88ddd389-2406-412c-bad9-197023c01950 00060 DamagedMooneyRivlinMaterial& operator=(DamagedMooneyRivlinMaterial& Instance); 00061 00062 // METHOD=mm:193a7c63-a9da-4b09-8f94-a86adb8bcd6d 00063 ~DamagedMooneyRivlinMaterial(); 00064 00065 // METHOD=mm:b0638a8e-e218-42ff-a255-57ad0bc81eea 00066 void operator=(Material& Inst); 00067 00068 // METHOD=mm:805e35d8-abb9-4293-a07d-7ecbd25c4a6c 00069 void Read(FILE* File); 00070 00071 // METHOD=mm:c0ab4fb0-cedf-45a5-a650-ee650d71282b 00072 void Print(FILE* File, char* Message); 00073 00074 // METHOD=mm:b191a389-3765-45fb-90c2-8fd747edeb40 00075 void Print(FILE* File); 00076 00077 // METHOD=mm:8be2823a-66f3-4ad9-871b-50413c5cd652 00078 void Save(FILE* File); 00079 00080 // METHOD=mm:fc861fb7-23a3-464c-9e95-192f8b966a84 00081 void Restore(FILE* File); 00082 00083 // METHOD=mm:5de1c67b-c4cf-4664-a356-e4a4c1040688 00084 void Free(); 00085 00086 // METHOD=mm:ee91efde-ef35-47ca-ae61-58dcab97eda1 00087 void SetApplication(ProblemType_E Application); 00088 00089 // METHOD=mm:e75e23b0-027c-4bfd-a386-45b8a1d6b0d9 00090 ProblemType_E GetApplication(); 00091 00092 // METHOD=mm:aca7dc50-29b4-4db5-8ca5-7e793b0c802f 00093 char* GetName(); 00094 00095 // METHOD=mm:aee93b1e-b0c6-41b5-9e40-4acfb5d48974 00096 MaterialType_E GetMaterialType(); 00097 00098 // METHOD=mm:948a7b73-88ce-4c62-b4cc-671b8045983a 00099 void SetProperties(BuiltInArray<double>& Properties); 00100 00101 // METHOD=mm:744e7a3c-3be6-4a53-86a3-0b86ef63b39f 00102 void SetProperty(MaterialProperty_E Property, double Value); 00103 00104 // METHOD=mm:ab23fcf7-d56c-445d-a132-fd546fcb8e9c 00105 void GetProperties(BuiltInArray<double>& Properties); 00106 00107 // METHOD=mm:cde93164-13ef-4d0c-b1e8-c5933c30a751 00108 double GetProperty(MaterialProperty_E Property); 00109 00110 // METHOD=mm:548f7c3a-c800-4764-b576-91a1e29852bc 00111 unsigned long GetNumberProperties(); 00112 00113 // METHOD=mm:9cea88de-1eb9-4486-831e-c4922ff721d5 00114 void GetCMatrix(SymmetricMatrix& CMatrix); 00115 00116 // METHOD=mm:5e71f6e8-5451-4eb3-929e-412022102864 00117 void GetDMatrix(SymmetricMatrix& DMatrix, double* Strain = NULL, double pbar = 0.0, double* DeltaDef = NULL, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0); 00118 00119 // METHOD=mm:a36493c6-79d2-4951-9e65-1a8e36184d34 00120 unsigned long GetDMatrixOrder(unsigned long StrainOrder); 00121 00122 // METHOD=mm:c3f35f4b-423e-4398-8905-26006b53f273 00123 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); 00124 00125 // METHOD=mm:4ebb8b3d-0e50-4315-a729-ed0dcf7adbf4 00126 void GetStress(double* Stress, double* Strain, double* StressTensor = NULL, double pbar = 0.0, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0); 00127 00128 // METHOD=mm:5baf83ef-2e74-4add-a308-f9d3fe5d0f25 00129 unsigned long GetStressOrder(unsigned long StrainOrder); 00130 00131 // METHOD=mm:b099723d-0294-4e0a-9607-56c0ec8caf99 00132 double GetStrainEnergyDensity(double* Strain, double pbar = 0.0, unsigned long ElementNumber = 0, unsigned long PointStateNumber = 0); 00133 00134 // METHOD=mm:32ad5d39-a970-4afe-b188-3b9c588829f4 00135 int GetStrainEnergyDensityOrder(unsigned long StrainOrder); 00136 00137 00138 protected: 00139 00144 // attr=mm:12c2c34d-3fad-48bc-b263-a07f9ed04b7e 00145 double A_10; 00146 00150 // attr=mm:557517f1-a262-4627-8b8d-f756fddc2a76 00151 double A_01; 00152 00156 // attr=mm:669e08d8-a82b-4e5b-8b6b-db03a09e74a4 00157 double BulkModulus; 00158 00165 // attr=mm:3b808fcc-debd-4319-9feb-be20effc343d 00166 double Density; 00167 00171 // attr=mm:6317824d-756b-47a6-b6e2-cf6d129dc93d 00172 double AlphaDamage; 00173 00177 // attr=mm:7a121c9b-c102-48dd-bcb1-4b38842739da 00178 double BetaDamage; 00179 00180 00181 private: 00182 00183 //#UBLK-BEG-CLASSMEMB mm:8a3adfad-0fa5-4845-8dc0-59136ec478b8 00184 //#UBLK-END-CLASSMEMB 00185 }; 00186 00187 //#UBLK-BEG-GLOBALH 00188 //#UBLK-END-GLOBALH 00189 00190 00191 #endif // _DAMAGEDMOONEYRIVLINMATERIAL_H_