MFEM v2.0
linearform.hpp
Go to the documentation of this file.
00001 // Copyright (c) 2010, Lawrence Livermore National Security, LLC. Produced at
00002 // the Lawrence Livermore National Laboratory. LLNL-CODE-443211. All Rights
00003 // reserved. See file COPYRIGHT for details.
00004 //
00005 // This file is part of the MFEM library. For more information and source code
00006 // availability see http://mfem.googlecode.com.
00007 //
00008 // MFEM is free software; you can redistribute it and/or modify it under the
00009 // terms of the GNU Lesser General Public License (as published by the Free
00010 // Software Foundation) version 2.1 dated February 1999.
00011 
00012 #ifndef MFEM_LINEARFORM
00013 #define MFEM_LINEARFORM
00014 
00016 class LinearForm : public Vector
00017 {
00018 private:
00020    FiniteElementSpace * fes;
00021 
00023    Array<LinearFormIntegrator*> dlfi;
00024 
00026    Array<LinearFormIntegrator*> blfi;
00027 
00029    Array<LinearFormIntegrator*> flfi;
00030 
00031 public:
00033    LinearForm (FiniteElementSpace * f) : Vector (f -> GetVSize())
00034    { fes = f; };
00035 
00036    FiniteElementSpace * GetFES() { return fes; };
00037 
00039    void AddDomainIntegrator (LinearFormIntegrator * lfi);
00040 
00042    void AddBoundaryIntegrator (LinearFormIntegrator * lfi);
00043 
00045    void AddBdrFaceIntegrator (LinearFormIntegrator * lfi);
00046 
00048    void Assemble();
00049 
00050    void Update() { SetSize(fes -> GetVSize()); };
00051 
00052    void Update(FiniteElementSpace * f) { fes = f; SetSize(f -> GetVSize()); };
00053 
00055    ~LinearForm();
00056 };
00057 
00058 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines