$extrastylesheet
elem_assembly.h
Go to the documentation of this file.
00001 // The libMesh Finite Element Library.
00002 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
00003 
00004 // This library is free software; you can redistribute it and/or
00005 // modify it under the terms of the GNU Lesser General Public
00006 // License as published by the Free Software Foundation; either
00007 // version 2.1 of the License, or (at your option) any later version.
00008 
00009 // This library is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // Lesser General Public License for more details.
00013 
00014 // You should have received a copy of the GNU Lesser General Public
00015 // License along with this library; if not, write to the Free Software
00016 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 
00018 #ifndef LIBMESH_ELEM_ASSEMBLY_H
00019 #define LIBMESH_ELEM_ASSEMBLY_H
00020 
00021 #include "libmesh/reference_counted_object.h"
00022 #include "libmesh/system.h"
00023 #include "libmesh/node.h"
00024 
00025 
00026 namespace libMesh
00027 {
00028 
00029 class FEMContext;
00030 
00037 class ElemAssembly : public ReferenceCountedObject<ElemAssembly>
00038 {
00039 public:
00040 
00045   ElemAssembly () {}
00046 
00050   virtual ~ElemAssembly () {}
00051 
00055   virtual void interior_assembly(FEMContext& ) { }
00056 
00060   virtual void boundary_assembly(FEMContext& ) { }
00061 
00066   virtual void
00067   get_nodal_rhs_values(std::map<numeric_index_type, Number>& values,
00068                        const System& ,
00069                        const Node& )
00070   {
00071     // By default, just clear the values map
00072     values.clear();
00073   }
00074 
00075 };
00076 
00077 }
00078 
00079 #endif // LIBMESH_ELEM_ASSEMBLY_H