SimoPisterWEnergy.cpp

Go to the documentation of this file.
00001 //===============================================================================
00002 //# COPYRIGHT (C): Woody's license (by BJ):
00003 //                 ``This    source  code is Copyrighted in
00004 //                 U.S.,  for  an  indefinite  period,  and anybody
00005 //                 caught  using it without our permission, will be
00006 //                 mighty good friends of ourn, cause we don't give
00007 //                 a  darn.  Hack it. Compile it. Debug it. Run it.
00008 //                 Yodel  it.  Enjoy it. We wrote it, that's all we
00009 //                 wanted to do.''
00010 //
00011 //# PROJECT:           Object Oriented Finite Element Program
00012 //# PURPOSE:           Finite Deformation Hyper-Elastic classes
00013 //# CLASS:             
00014 //#
00015 //# VERSION:           0.6_(1803398874989) (golden section)
00016 //# LANGUAGE:          C++
00017 //# TARGET OS:         all...
00018 //# DESIGN:            Zhao Cheng, Boris Jeremic (jeremic@ucdavis.edu)
00019 //# PROGRAMMER(S):     Zhao Cheng, Boris Jeremic
00020 //#
00021 //#
00022 //# DATE:              19AUg2003
00023 //# UPDATE HISTORY:    Sept 2003
00024 //#                    28May2004
00025 //#
00026 //===============================================================================
00027 
00028 #ifndef SimoPisterWEnergy_CPP
00029 #define SimoPisterWEnergy_CPP
00030 
00031 #include <SimoPisterWEnergy.h>
00032 
00033 //================================================================================
00034 // Normal constructor
00035 //================================================================================
00036 SimoPisterWEnergy::SimoPisterWEnergy(double K_in) :K(K_in)
00037 {
00038 
00039 }
00040 
00041 SimoPisterWEnergy::SimoPisterWEnergy( ) :K(0.0)
00042 {
00043 
00044 }
00045 
00046 //================================================================================
00047 // Normal destructor
00048 //================================================================================
00049 SimoPisterWEnergy::~SimoPisterWEnergy( )
00050 {
00051 
00052 }
00053 
00054 //================================================================================
00055 //create a clone of itself
00056 //================================================================================
00057 WEnergy * SimoPisterWEnergy::newObj( )
00058   {
00059     WEnergy  *new_WEnergy = new SimoPisterWEnergy(K);
00060     return new_WEnergy;
00061   }
00062 
00063 
00064 //================================================================================
00065 // w
00066 //================================================================================
00067 const double  SimoPisterWEnergy::wE( const double &J_in, const Vector &lambda_wave_in )
00068 {
00069     double wEnergy = 0.25 * K * (J_in*J_in - 1.0 - 2.0*log(J_in));
00070     return wEnergy;
00071 }
00072 
00073 //================================================================================
00074 // d(vol)w / dJ
00075 //================================================================================
00076 const double  SimoPisterWEnergy::dvolwOdJ(const double &J_in )
00077 {
00078    double dcolwOverdJ = K * (-2.0 / J_in + 2.0 * J_in) * 0.25;
00079    return dcolwOverdJ;
00080 }
00081 
00082 //================================================================================
00083 // d2(vol)w / dJ2
00084 //================================================================================
00085 const double  SimoPisterWEnergy::d2volwOdJ2(const double &J_in )
00086 {
00087    double d2colwOverdJ2 = K * (2.0 / J_in / J_in + 2.0) * 0.25;
00088    return d2colwOverdJ2;
00089 }
00090 
00091 
00092 #endif
00093 

Generated on Mon Oct 23 15:05:14 2006 for OpenSees by doxygen 1.5.0