libMesh
src
reduced_basis
transient_rb_assembly_expansion.C
Go to the documentation of this file.
1
// rbOOmit: An implementation of the Certified Reduced Basis method.
2
// Copyright (C) 2009, 2010 David J. Knezevic
3
4
// This file is part of rbOOmit.
5
6
// rbOOmit is free software; you can redistribute it and/or
7
// modify it under the terms of the GNU Lesser General Public
8
// License as published by the Free Software Foundation; either
9
// version 2.1 of the License, or (at your option) any later version.
10
11
// rbOOmit is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
// Lesser General Public License for more details.
15
16
// You should have received a copy of the GNU Lesser General Public
17
// License along with this library; if not, write to the Free Software
18
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
20
// rbOOmit includes
21
#include "libmesh/transient_rb_assembly_expansion.h"
22
#include "libmesh/elem_assembly.h"
23
24
namespace
libMesh
25
{
26
27
void
TransientRBAssemblyExpansion::perform_M_interior_assembly
(
unsigned
int
q,
28
FEMContext
& context)
const
29
{
30
libmesh_error_msg_if(q >=
get_n_M_terms
(),
"Error: We must have q < get_n_M_terms in perform_M_interior_assembly."
);
31
libmesh_assert
(
_M_assembly_vector
[q]);
32
33
return
_M_assembly_vector
[q]->interior_assembly( context );
34
}
35
36
void
TransientRBAssemblyExpansion::perform_M_boundary_assembly
(
unsigned
int
q,
37
FEMContext
& context)
const
38
{
39
libmesh_error_msg_if(q >=
get_n_M_terms
(),
"Error: We must have q < get_n_M_terms in perform_M_boundary_assembly."
);
40
libmesh_assert
(
_M_assembly_vector
[q]);
41
42
return
_M_assembly_vector
[q]->boundary_assembly( context );
43
}
44
45
unsigned
int
TransientRBAssemblyExpansion::get_n_M_terms
()
const
46
{
47
return
cast_int<unsigned int>(
_M_assembly_vector
.size());
48
}
49
50
void
TransientRBAssemblyExpansion::attach_M_assembly
(
ElemAssembly
* M_q_assembly)
51
{
52
_M_assembly_vector
.push_back(M_q_assembly);
53
}
54
55
ElemAssembly
&
TransientRBAssemblyExpansion::get_M_assembly
(
unsigned
int
q)
56
{
57
libmesh_error_msg_if(q >=
get_n_M_terms
(),
"Error: We must have q < get_n_M_terms in get_M_assembly."
);
58
59
return
*
_M_assembly_vector
[q];
60
}
61
62
}
libMesh::TransientRBAssemblyExpansion::attach_M_assembly
void attach_M_assembly(ElemAssembly *A_q_assembly)
Attach ElemAssembly object for the time-derivative (both interior and boundary assembly).
Definition:
transient_rb_assembly_expansion.C:50
libMesh
The libMesh namespace provides an interface to certain functionality in the library.
libMesh::TransientRBAssemblyExpansion::perform_M_boundary_assembly
void perform_M_boundary_assembly(unsigned int q, FEMContext &context) const
Perform the specified M boundary assembly.
Definition:
transient_rb_assembly_expansion.C:36
libMesh::TransientRBAssemblyExpansion::perform_M_interior_assembly
void perform_M_interior_assembly(unsigned int q, FEMContext &context) const
Perform the specified M interior assembly.
Definition:
transient_rb_assembly_expansion.C:27
libMesh::TransientRBAssemblyExpansion::get_M_assembly
ElemAssembly & get_M_assembly(unsigned int q)
Return a reference to the specified M_assembly object.
Definition:
transient_rb_assembly_expansion.C:55
libMesh::TransientRBAssemblyExpansion::_M_assembly_vector
std::vector< ElemAssembly * > _M_assembly_vector
Vectors storing the function pointers to the assembly routines for the time-derivative operators...
Definition:
transient_rb_assembly_expansion.h:90
libMesh::libmesh_assert
libmesh_assert(ctx)
libMesh::FEMContext
This class provides all data required for a physics package (e.g.
Definition:
fem_context.h:62
libMesh::ElemAssembly
ElemAssembly provides a per-element (interior and boundary) assembly functionality.
Definition:
elem_assembly.h:38
libMesh::TransientRBAssemblyExpansion::get_n_M_terms
unsigned int get_n_M_terms() const
Get Q_m, the number of terms in the affine expansion for the bilinear form.
Definition:
transient_rb_assembly_expansion.C:45
Generated on Thu Jul 17 2025 01:29:10 for libMesh by
1.8.14