• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

CapExplicit.hpp

Go to the documentation of this file.
00001 //*****************************************************************//
00002 //    Albany 2.0:  Copyright 2012 Sandia Corporation               //
00003 //    This Software is released under the BSD license detailed     //
00004 //    in the file "license.txt" in the top-level Albany directory  //
00005 //*****************************************************************//
00006 #ifndef CAPEXPLICIT_HPP
00007 #define CAPEXPLICIT_HPP
00008 
00009 #include <Intrepid_MiniTensor.h>
00010 #include "Phalanx_ConfigDefs.hpp"
00011 #include "Phalanx_Evaluator_WithBaseImpl.hpp"
00012 #include "Phalanx_Evaluator_Derived.hpp"
00013 #include "Phalanx_MDField.hpp"
00014 #include "Albany_Layouts.hpp"
00015 
00016 namespace LCM {
00021 
00022   template<typename EvalT, typename Traits>
00023   class CapExplicit: public PHX::EvaluatorWithBaseImpl<Traits>,
00024       public PHX::EvaluatorDerived<EvalT, Traits> {
00025 
00026   public:
00027 
00031     CapExplicit(const Teuchos::ParameterList& p,
00032                 const Teuchos::RCP<Albany::Layouts>& dl);
00033 
00037     void postRegistrationSetup(typename Traits::SetupData d,
00038         PHX::FieldManager<Traits>& vm);
00039 
00043     void evaluateFields(typename Traits::EvalData d);
00044 
00045   private:
00046 
00047     typedef typename EvalT::ScalarT ScalarT;
00048     typedef typename EvalT::MeshScalarT MeshScalarT;
00049 
00053     ScalarT
00054     compute_f(Intrepid::Tensor<ScalarT> & sigma,
00055         Intrepid::Tensor<ScalarT> & alpha, ScalarT & kappa);
00056 
00057     Intrepid::Tensor<ScalarT>
00058     compute_dfdsigma(Intrepid::Tensor<ScalarT> & sigma,
00059         Intrepid::Tensor<ScalarT> & alpha, ScalarT & kappa);
00060 
00061     Intrepid::Tensor<ScalarT>
00062     compute_dgdsigma(Intrepid::Tensor<ScalarT> & sigma,
00063         Intrepid::Tensor<ScalarT> & alpha, ScalarT & kappa);
00064 
00065     ScalarT
00066     compute_dfdkappa(Intrepid::Tensor<ScalarT> & sigma,
00067         Intrepid::Tensor<ScalarT> & alpha, ScalarT & kappa);
00068 
00069     ScalarT
00070     compute_Galpha(ScalarT & J2_alpha);
00071 
00072     Intrepid::Tensor<ScalarT>
00073     compute_halpha(Intrepid::Tensor<ScalarT> & dgdsigma, ScalarT & J2_alpha);
00074 
00075     ScalarT compute_dedkappa(ScalarT & kappa);
00076 
00080     unsigned int numQPs;
00081 
00085     unsigned int numDims;
00086 
00090     PHX::MDField<ScalarT, Cell, QuadPoint, Dim, Dim> strain;
00091 
00095     PHX::MDField<ScalarT, Cell, QuadPoint> elasticModulus;
00096 
00100     PHX::MDField<ScalarT, Cell, QuadPoint> poissonsRatio;
00101 
00105     RealType A;
00106     RealType B;
00107     RealType C;
00108     RealType theta;
00109     RealType R;
00110     RealType kappa0;
00111     RealType W;
00112     RealType D1;
00113     RealType D2;
00114     RealType calpha;
00115     RealType psi;
00116     RealType N;
00117     RealType L;
00118     RealType phi;
00119     RealType Q;
00120 
00121     std::string strainName, stressName;
00122     std::string backStressName, capParameterName, eqpsName,volPlasticStrainName;
00123 
00127     PHX::MDField<ScalarT, Cell, QuadPoint, Dim, Dim> stress;
00128 
00132     PHX::MDField<ScalarT, Cell, QuadPoint, Dim, Dim> backStress;
00133 
00137     PHX::MDField<ScalarT, Cell, QuadPoint> capParameter;
00138 
00142     //PHX::MDField<ScalarT, Cell, QuadPoint> friction;
00143 
00147     //PHX::MDField<ScalarT, Cell, QuadPoint> dilatancy;
00148 
00152     PHX::MDField<ScalarT, Cell, QuadPoint> eqps;
00153 
00157     PHX::MDField<ScalarT, Cell, QuadPoint> volPlasticStrain;
00158 
00162     //PHX::MDField<ScalarT, Cell, QuadPoint> hardeningModulus;
00163 
00167     Intrepid::Tensor4<ScalarT> Celastic, compliance, id1, id2, id3;
00168     Intrepid::Tensor<ScalarT> I;
00169     Intrepid::Tensor<ScalarT> depsilon, sigmaN, strainN, sigmaVal, alphaVal;
00170     Intrepid::Tensor<ScalarT> deps_plastic, sigmaTr, alphaTr;
00171     Intrepid::Tensor<ScalarT> dfdsigma, dgdsigma, dfdalpha, halpha;
00172     Intrepid::Tensor<ScalarT> dfdotCe, sigmaK, alphaK, dsigma, dev_plastic;
00173     Intrepid::Tensor<ScalarT> xi, sN, s, strainCurrent;
00174     Intrepid::Tensor<ScalarT> dJ3dsigma, eps_dev;
00175 
00176 
00177   };
00178 }
00179 
00180 #endif
00181 

Generated on Wed Mar 26 2014 18:36:37 for Albany: a Trilinos-based PDE code by  doxygen 1.7.1