/Users/jack/Code/basso_dev/inc/Material.h

Go to the documentation of this file.
00001 
00012 #ifndef _MATERIAL_BASSO_H_
00013 #define _MATERIAL_BASSO_H_
00014 
00015 // std includes
00016 
00017 // Basso includes
00018 #include "basso.h"
00019 #include "StressState.h"
00020 
00021 namespace basso {
00022 
00023 
00029 class MaterialState {
00030 
00031 public:
00032         MaterialState() { fSStrainv = new nArray(3); clear(*fSStrainv); }
00033         virtual ~MaterialState() { delete fSStrainv; }
00034 
00041         nArray &Strain() { return *fSStrainv; }
00042 
00043 protected:
00045         nArray *fSStrainv;  
00046         
00047 };
00048 
00049 
00058 class Material {
00059 
00060 public:
00061         
00062         // PUBLIC DEFS
00063         
00064         // CONSTRUCTORS 
00066         Material() { }
00067         
00068         virtual ~Material() { }
00069         
00070         // ACCESSORS
00072         virtual Numeric Density(  const MaterialState sv=MaterialState() ) const = 0;
00073         
00074         // MEMBER FUNCTIONS
00080         virtual void ComputeStress( nArray &stress, const StressState *ssptr, const MaterialState &sv  ) = 0;
00081         
00087         virtual void ComputeStress( nMatrix &stress, const StressState *ssptr, const MaterialState &sv ) = 0;
00088         
00094         virtual void ComputeTangentStiffness( nMatrix &cmat, const StressState *ssptr, const MaterialState sv=MaterialState() ) const = 0;
00095 
00096 protected:
00097 
00098 };
00099 
00100 } // end namespace
00101 
00102 #endif
00103 
00104 

Generated on Sat Jan 19 09:03:57 2008 for Basso by  doxygen 1.5.2