hp2FEM  0.1
include/material/DamagedMooneyRivlinMaterial.h
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_
 All Classes Files Functions Variables Typedefs Friends Defines