00001 00012 #ifndef _NEUMANN_BC_BASSO_H_ 00013 #define _NEUMANN_BC_BASSO_H_ 00014 00015 // std includes 00016 #include <list> 00017 00018 // Basso includes 00019 #include "basso.h" 00020 #include "Element.h" 00021 #include "DofMap.h" 00022 #include "basic_fem_operations.h" 00023 00024 namespace basso { 00025 00026 00031 class NeumannBC { 00032 00033 public: 00034 00035 // PUBLIC DEFS 00036 00037 // CONSTRUCTORS 00042 NeumannBC( const Array<Dof> &dofs, Numeric sf ) 00043 { 00044 mScaleFactor=sf; 00045 mDofs=dofs; 00046 } 00047 00052 NeumannBC( const Dof &ldof, Numeric sf ) : mDofs(1) 00053 { 00054 mScaleFactor=sf; 00055 mDofs[0]=ldof; 00056 } 00057 00058 virtual ~NeumannBC() { } 00059 00060 // ACCESSORS 00061 00062 // MEMBER FUNCTIONS 00068 virtual void ContributeForce( const DofMap &dofmap, nArray &f ) = 0; 00069 00070 protected: 00071 00072 00073 protected: 00075 Array<Dof> mDofs; 00076 Numeric mScaleFactor; 00077 00078 }; 00079 00080 00081 00082 } // end namespace 00083 00084 #endif 00085 00086