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