DOLFIN
DOLFIN C++ interface
Loading...
Searching...
No Matches
LocalAssembler.h
1// Copyright (C) 2011 Marie E. Rognes
2//
3// This file is part of DOLFIN.
4//
5// DOLFIN is free software: you can redistribute it and/or modify
6// it under the terms of the GNU Lesser General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// DOLFIN is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU Lesser General Public License for more details.
14//
15// You should have received a copy of the GNU Lesser General Public License
16// along with DOLFIN. If not, see <http://www.gnu.org/licenses/>.
17//
18// First added: 2011-01-04
19// Last changed: 2015-09-30
20
21#ifndef __LOCAL_ASSEMBLER_H
22#define __LOCAL_ASSEMBLER_H
23
24#include <vector>
25
26#include <dolfin/common/types.h>
27#include <Eigen/Dense>
28
29namespace ufc
30{
31 class cell;
32}
33
34namespace dolfin
35{
36
37 class Cell;
38 class Facet;
39 class UFC;
40 template<typename T> class MeshFunction;
41
48
50 {
51
52 public:
53
57 static void
58 assemble(Eigen::Matrix<double, Eigen::Dynamic,
59 Eigen::Dynamic,
60 Eigen::RowMajor>& A,
61 UFC& ufc,
62 const std::vector<double>& coordinate_dofs,
63 ufc::cell& ufc_cell,
64 const Cell& cell,
65 const MeshFunction<std::size_t>* cell_domains,
66 const MeshFunction<std::size_t>* exterior_facet_domains,
67 const MeshFunction<std::size_t>* interior_facet_domains
68 );
69
72 static void assemble_cell(Eigen::Matrix<double, Eigen::Dynamic,
73 Eigen::Dynamic,
74 Eigen::RowMajor>& A,
75 UFC& ufc,
76 const std::vector<double>& coordinate_dofs,
77 const ufc::cell& ufc_cell,
78 const Cell& cell,
79 const MeshFunction<std::size_t>* cell_domains
80 );
81
85 static void
86 assemble_exterior_facet(Eigen::Matrix<double, Eigen::Dynamic,
87 Eigen::Dynamic,
88 Eigen::RowMajor>& A,
89 UFC& ufc,
90 const std::vector<double>& coordinate_dofs,
91 const ufc::cell& ufc_cell,
92 const Cell& cell,
93 const Facet& facet,
94 const std::size_t local_facet,
95 const MeshFunction<std::size_t>* exterior_facet_domains
96 );
97
101 static void
102 assemble_interior_facet(Eigen::Matrix<double, Eigen::Dynamic,
103 Eigen::Dynamic,
104 Eigen::RowMajor>& A,
105 UFC& ufc,
106 const std::vector<double>& coordinate_dofs,
107 const ufc::cell& ufc_cell,
108 const Cell& cell,
109 const Facet& facet,
110 const std::size_t local_facet,
111 const MeshFunction<std::size_t>* interior_facet_domains,
112 const MeshFunction<std::size_t>* cell_domains
113 );
114 };
115
116}
117
118#endif
A Cell is a MeshEntity of topological codimension 0.
Definition Cell.h:43
A Facet is a MeshEntity of topological codimension 1.
Definition Facet.h:40
Definition LocalAssembler.h:50
static void assemble_interior_facet(Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > &A, UFC &ufc, const std::vector< double > &coordinate_dofs, const ufc::cell &ufc_cell, const Cell &cell, const Facet &facet, const std::size_t local_facet, const MeshFunction< std::size_t > *interior_facet_domains, const MeshFunction< std::size_t > *cell_domains)
Definition LocalAssembler.cpp:190
static void assemble(Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > &A, UFC &ufc, const std::vector< double > &coordinate_dofs, ufc::cell &ufc_cell, const Cell &cell, const MeshFunction< std::size_t > *cell_domains, const MeshFunction< std::size_t > *exterior_facet_domains, const MeshFunction< std::size_t > *interior_facet_domains)
Definition LocalAssembler.cpp:40
static void assemble_exterior_facet(Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > &A, UFC &ufc, const std::vector< double > &coordinate_dofs, const ufc::cell &ufc_cell, const Cell &cell, const Facet &facet, const std::size_t local_facet, const MeshFunction< std::size_t > *exterior_facet_domains)
Definition LocalAssembler.cpp:140
static void assemble_cell(Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > &A, UFC &ufc, const std::vector< double > &coordinate_dofs, const ufc::cell &ufc_cell, const Cell &cell, const MeshFunction< std::size_t > *cell_domains)
Definition LocalAssembler.cpp:96
Definition RegularCutRefinement.h:31
Definition UFC.h:47
Definition adapt.h:30