MFEM
v3.2
Finite element discretization library
Main Page
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Pages
fem
linearform.hpp
Go to the documentation of this file.
1
// Copyright (c) 2010, Lawrence Livermore National Security, LLC. Produced at
2
// the Lawrence Livermore National Laboratory. LLNL-CODE-443211. All Rights
3
// reserved. See file COPYRIGHT for details.
4
//
5
// This file is part of the MFEM library. For more information and source code
6
// availability see http://mfem.org.
7
//
8
// MFEM is free software; you can redistribute it and/or modify it under the
9
// terms of the GNU Lesser General Public License (as published by the Free
10
// Software Foundation) version 2.1 dated February 1999.
11
12
#ifndef MFEM_LINEARFORM
13
#define MFEM_LINEARFORM
14
15
#include "../config/config.hpp"
16
#include "
lininteg.hpp
"
17
#include "
fespace.hpp
"
18
19
namespace
mfem
20
{
21
23
class
LinearForm
:
public
Vector
24
{
25
private
:
27
FiniteElementSpace
* fes;
28
30
Array<LinearFormIntegrator*>
dlfi;
31
33
Array<LinearFormIntegrator*>
blfi;
34
36
Array<LinearFormIntegrator*>
flfi;
37
38
public
:
40
LinearForm
(
FiniteElementSpace
* f) :
Vector
(f -> GetVSize())
41
{ fes = f; }
42
43
LinearForm
() { fes = NULL; }
44
45
FiniteElementSpace
*
GetFES
() {
return
fes; }
46
48
void
AddDomainIntegrator
(
LinearFormIntegrator
* lfi);
49
51
void
AddBoundaryIntegrator
(
LinearFormIntegrator
* lfi);
52
54
void
AddBdrFaceIntegrator
(
LinearFormIntegrator
* lfi);
55
57
void
Assemble
();
58
59
void
Update
() {
SetSize
(fes->
GetVSize
()); }
60
61
void
Update
(
FiniteElementSpace
*f) { fes = f;
SetSize
(f->
GetVSize
()); }
62
63
void
Update
(
FiniteElementSpace
*f,
Vector
&v,
int
v_offset);
64
66
~LinearForm
();
67
};
68
69
}
70
71
#endif
mfem::FiniteElementSpace::GetVSize
int GetVSize() const
Definition:
fespace.hpp:161
mfem::LinearForm::LinearForm
LinearForm(FiniteElementSpace *f)
Creates linear form associated with FE space *f.
Definition:
linearform.hpp:40
mfem::Vector::SetSize
void SetSize(int s)
Resize the vector if the new size is different.
Definition:
vector.hpp:263
mfem::LinearForm::Assemble
void Assemble()
Assembles the linear form i.e. sums over all domain/bdr integrators.
Definition:
linearform.cpp:34
lininteg.hpp
mfem::LinearFormIntegrator
Abstract base class LinearFormIntegrator.
Definition:
lininteg.hpp:22
mfem::LinearForm::Update
void Update(FiniteElementSpace *f)
Definition:
linearform.hpp:61
mfem::Array
Definition:
array.hpp:52
mfem::LinearForm::AddBdrFaceIntegrator
void AddBdrFaceIntegrator(LinearFormIntegrator *lfi)
Adds new Boundary Face Integrator.
Definition:
linearform.cpp:29
mfem::LinearForm::AddBoundaryIntegrator
void AddBoundaryIntegrator(LinearFormIntegrator *lfi)
Adds new Boundary Integrator.
Definition:
linearform.cpp:24
fespace.hpp
mfem::LinearForm::LinearForm
LinearForm()
Definition:
linearform.hpp:43
mfem::LinearForm::AddDomainIntegrator
void AddDomainIntegrator(LinearFormIntegrator *lfi)
Adds new Domain Integrator.
Definition:
linearform.cpp:19
mfem::FiniteElementSpace
Definition:
fespace.hpp:60
mfem::LinearForm::Update
void Update()
Definition:
linearform.hpp:59
mfem::LinearForm::~LinearForm
~LinearForm()
Destroys linear form.
Definition:
linearform.cpp:95
mfem::Vector
Vector data type.
Definition:
vector.hpp:33
mfem::LinearForm
Class for linear form - Vector with associated FE space and LFIntegrators.
Definition:
linearform.hpp:23
mfem::LinearForm::GetFES
FiniteElementSpace * GetFES()
Definition:
linearform.hpp:45
Generated on Fri Feb 18 2022 19:00:29 for MFEM by
1.8.5