MFEM
v3.1
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
60
void
ConformingAssemble
(
Vector
&b)
const
;
61
63
void
ConformingAssemble
();
64
65
void
Update
() {
SetSize
(fes->
GetVSize
()); }
66
67
void
Update
(
FiniteElementSpace
*f) { fes = f;
SetSize
(f->
GetVSize
()); }
68
69
void
Update
(
FiniteElementSpace
*f,
Vector
&v,
int
v_offset);
70
72
~LinearForm
();
73
};
74
75
}
76
77
#endif
mfem::FiniteElementSpace::GetVSize
int GetVSize() const
Definition:
fespace.hpp:164
mfem::LinearForm::ConformingAssemble
void ConformingAssemble()
Apply the conforming interpolation matrix to 'this': this = P'*this.
Definition:
linearform.cpp:102
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)
Resizes the vector if the new size is different.
Definition:
vector.hpp:259
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:67
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
Abstract finite element space.
Definition:
fespace.hpp:62
mfem::LinearForm::Update
void Update()
Definition:
linearform.hpp:65
mfem::LinearForm::~LinearForm
~LinearForm()
Destroys linear form.
Definition:
linearform.cpp:118
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 18:59:18 for MFEM by
1.8.5