Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Examples  

EssentialBC.h

Go to the documentation of this file.
00001 #ifndef ESSENTIALBC_H
00002 #define ESSENTIALBC_H
00003 
00004 #include "SundanceDefs.h"
00005 
00006 #include "CellSet.h"
00007 #include "Expr.h"
00008 #include "QuadratureFamily.h"
00009 #include "GaussLegendre.h"
00010 
00011 
00012 namespace Sundance
00013 {
00014 
00015   using namespace TSF;
00016   using std::string;
00017 
00018   using std::ostream;
00019 
00020   /** \ingroup UserLevelFE
00021    * EssentialBC represents a strong boundary condition.
00022    */
00023 
00024   class EssentialBC
00025     {
00026     public:
00027       /** name User-level methods */
00028       //@{
00029       /** */
00030       EssentialBC();
00031       /** */
00032       EssentialBC(const Expr& expr,
00033                   const QuadratureFamily& quad = new GaussLegendre(4));
00034       /** */
00035       EssentialBC(const CellSet& cellSet, const Expr& expr,
00036                   const QuadratureFamily& quad = new GaussLegendre(4));
00037 
00038       /** */
00039       EssentialBC& operator&=(const EssentialBC& other);
00040       /** */
00041       EssentialBC operator&&(const EssentialBC& other) const ;
00042 
00043       /** */
00044       EssentialBC linearization(const Expr& u, const Expr& u0) const ;
00045 
00046       /** */
00047       EssentialBC variation(const Expr& u) const ;
00048 
00049       //@}
00050 
00051       /** \name Developer-only methods */
00052       //@{
00053       /** */
00054       void print(ostream& os) const ;
00055 
00056       /** */
00057       const TSFArray<CellSet>& cellSets() const {return cellSets_;}
00058       /** */
00059       const TSFArray<ExprArray>& expr() const {return expr_;}
00060       /** */
00061       const TSFArray<TSFArray<QuadratureFamily> >& quad() const {return quad_;}
00062       //@}
00063     private:
00064       EssentialBC(const TSFArray<CellSet>& cellSets,
00065                   const TSFArray<ExprArray>& expr,
00066                   const TSFArray<TSFArray<QuadratureFamily> >& quad);
00067 
00068       TSFArray<CellSet> cellSets_;
00069       TSFArray<ExprArray> expr_;
00070       TSFArray<TSFArray<QuadratureFamily> > quad_;
00071     };
00072 
00073 
00074   /** \relates EssentialBC
00075    * write to stream
00076    */
00077   inline ostream& operator<<(ostream& os, EssentialBC& i)
00078     {
00079       i.print(os);
00080       return os;
00081     }
00082 
00083 }
00084 #endif

Contact:
Kevin Long (krlong@ca.sandia.gov)


Documentation generated by