16#ifndef INCG_LF_ASSEMBLE_H
17#define INCG_LF_ASSEMBLE_H
19#include <fmt/ranges.h>
20#include <spdlog/fmt/ostr.h>
21#include <spdlog/sinks/stdout_color_sinks.h>
22#include <spdlog/spdlog.h>
26#include "assemble_concepts.h"
27#include "dofhandler.h"
114template <
typename TMPMATRIX, EntityMatrixProv
ider ENTITY_MATRIX_PROVIDER>
122 "Trial and test space must be defined on the same mesh");
135 std::span<const gdof_idx_t>
row_idx(
138 std::span<const gdof_idx_t>
col_idx(
145 <<
", entity " << mesh->Index(*
entity));
148 <<
", entity " << mesh->Index(*
entity));
164 std::stringstream
ss;
209template <
typename TMPMATRIX, EntityMatrixProv
ider ENTITY_MATRIX_PROVIDER>
243template <
typename TMPMATRIX, EntityMatrixProv
ider ENTITY_MATRIX_PROVIDER>
298template <
typename VECTOR, EntityVectorProv
ider ENTITY_VECTOR_PROVIDER>
309 if (entity_vector_provider.isActive(*
entity)) {
313 const std::span<const gdof_idx_t>
dof_idx(
320 <<
", entity " << mesh->Index(*
entity));
354template <
typename VECTOR,
class ENTITY_VECTOR_PROVIDER>
A general (interface) class for DOF handling, see Lecture Document Paragraph 2.7.4....
virtual std::shared_ptr< const lf::mesh::Mesh > Mesh() const =0
Acess to underlying mesh object.
virtual std::span< const gdof_idx_t > GlobalDofIndices(const lf::mesh::Entity &entity) const =0
access to indices of global dof's belonging to an entity
virtual size_type NumLocalDofs(const lf::mesh::Entity &entity) const =0
tells the number of degrees of freedom subordinate/_belonging_ to to an entity
virtual size_type NumDofs() const =0
total number of dof's handled by the object
Interface class representing a topological entity in a cellular complex
void AssembleMatrixLocally(dim_t codim, const DofHandler &dof_handler_trial, const DofHandler &dof_handler_test, ENTITY_MATRIX_PROVIDER &entity_matrix_provider, TMPMATRIX &matrix)
Assembly function for standard assembly of finite element matrices.
std::shared_ptr< spdlog::logger > & AssembleMatrixLogger()
The logger that is used by AssembleMatrixLocally() to log additional information. (for logging levels...
void AssembleVectorLocally(dim_t codim, const DofHandler &dof_handler, ENTITY_VECTOR_PROVIDER &entity_vector_provider, VECTOR &resultvector)
entity-local assembly of (right-hand-side) vectors from element vectors
D.o.f. index mapping and assembly facilities.
lf::base::size_type size_type