2
// ************************************************************************
5
// Copyright (2005) Sandia Corporation
7
// Copyright (year first published) Sandia Corporation. Under the terms
8
// of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government
9
// retains certain rights in this software.
11
// This library is free software; you can redistribute it and/or modify
12
// it under the terms of the GNU Lesser General Public License as
13
// published by the Free Software Foundation; either version 2.1 of the
14
// License, or (at your option) any later version.
16
// This library is distributed in the hope that it will be useful, but
17
// WITHOUT ANY WARRANTY; without even the implied warranty of
18
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19
// Lesser General Public License for more details.
21
// You should have received a copy of the GNU Lesser General Public
22
// License along with this library; if not, write to the Free Software
23
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
25
// Questions? Contact Kevin Long (krlong@sandia.gov),
26
// Sandia National Laboratories, Livermore, California, USA
28
// ************************************************************************
31
#ifndef SUNDANCE_ELEMENTINTEGRALLINEARFORM_H
32
#define SUNDANCE_ELEMENTINTEGRALLINEARFORM_H
34
#include "SundanceDefs.hpp"
35
#include "SundanceCellJacobianBatch.hpp"
36
#include "SundanceQuadratureFamily.hpp"
37
#include "SundanceBasisFamily.hpp"
38
#include "Teuchos_Array.hpp"
39
#include "SundanceElementIntegralBase.hpp"
42
#ifndef DOXYGEN_DEVELOPER_ONLY
44
namespace SundanceStdFwk
46
using namespace SundanceUtils;
47
using namespace SundanceStdMesh;
48
using namespace SundanceStdMesh::Internal;
49
using namespace SundanceCore;
50
using namespace SundanceCore::Internal;
54
using namespace Teuchos;
57
* ElementIntegralLinearForm provides an abstract base class for storing
58
* information about the geometry/topology over which the form is defined,
59
* the basis for the test space, and the quadrature rule.
60
* Computational routines are provided by subclasses; this is for storage
61
* and information only, providing no particular interface to integration.
63
class ElementIntegralLinearForm : public ElementIntegralBase
67
ElementIntegralLinearForm( int spatialDim,
68
const CellType& maxCellType,
70
const CellType& cellType,
71
const BasisFamily &testBasis,
72
const QuadratureFamily& quad,
73
const ParameterList& verbParams
74
= *ElementIntegralBase::defaultVerbParams() ):
75
ElementIntegralBase( spatialDim , maxCellType ,
78
testBasis_( testBasis ) {;}
81
virtual ~ElementIntegralLinearForm() {;}
84
virtual const BasisFamily &testBasis() const { return testBasis_; }
87
const BasisFamily &testBasis_;
93
#endif /* DOXYGEN_DEVELOPER_ONLY */