DOLFIN
DOLFIN C++ interface
Loading...
Searching...
No Matches
MixedAssembler.h
1// it under the terms of the GNU Lesser General Public License as published by
2// the Free Software Foundation, either version 3 of the License, or
3// (at your option) any later version.
4//
5// DOLFIN is distributed in the hope that it will be useful,
6// but WITHOUT ANY WARRANTY; without even the implied warranty of
7// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8// GNU Lesser General Public License for more details.
9//
10// You should have received a copy of the GNU Lesser General Public License
11// along with DOLFIN. If not, see <http://www.gnu.org/licenses/>.
12//
13// Modified by Cecile Daversin-Catty 2017
14
15#ifndef __MIXED_ASSEMBLER_H
16#define __MIXED_ASSEMBLER_H
17
18#include <vector>
19#include "AssemblerBase.h"
20
21namespace dolfin
22{
23
24 // Forward declarations
25 class GenericTensor;
26 class Form;
27 class UFC;
28 template<typename T> class MeshFunction;
29
44
46 {
47 public:
48
51
58 void assemble(GenericTensor& A, const Form& a);
59
70 void assemble_cells(GenericTensor& A, const Form& a, UFC& ufc,
71 std::shared_ptr<const MeshFunction<std::size_t>> domains,
72 std::vector<double>* values);
73
86 UFC& ufc,
87 std::shared_ptr<const MeshFunction<std::size_t>> domains,
88 std::vector<double>* values);
89
103 UFC& ufc,
104 std::shared_ptr<const MeshFunction<std::size_t>> domains,
105 std::shared_ptr<const MeshFunction<std::size_t>> cell_domains,
106 std::vector<double>* values);
107
117 void assemble_vertices(GenericTensor& A, const Form& a, UFC& ufc,
118 std::shared_ptr<const MeshFunction<std::size_t>> domains);
119
120 };
121
122}
123
124#endif
Provide some common functions used in assembler classes.
Definition AssemblerBase.h:42
Base class for UFC code generated by FFC for DOLFIN with option -l.
Definition Form.h:86
A common interface for arbitrary rank tensors.
Definition GenericTensor.h:49
Definition MeshFunction.h:58
Definition MixedAssembler.h:46
MixedAssembler()
Constructor.
Definition MixedAssembler.h:50
void assemble_interior_facets(GenericTensor &A, const Form &a, UFC &ufc, std::shared_ptr< const MeshFunction< std::size_t > > domains, std::shared_ptr< const MeshFunction< std::size_t > > cell_domains, std::vector< double > *values)
Definition MixedAssembler.cpp:412
void assemble_exterior_facets(GenericTensor &A, const Form &a, UFC &ufc, std::shared_ptr< const MeshFunction< std::size_t > > domains, std::vector< double > *values)
Definition MixedAssembler.cpp:308
void assemble_vertices(GenericTensor &A, const Form &a, UFC &ufc, std::shared_ptr< const MeshFunction< std::size_t > > domains)
Definition MixedAssembler.cpp:564
void assemble(GenericTensor &A, const Form &a)
Definition MixedAssembler.cpp:49
void assemble_cells(GenericTensor &A, const Form &a, UFC &ufc, std::shared_ptr< const MeshFunction< std::size_t > > domains, std::vector< double > *values)
Definition MixedAssembler.cpp:102
Definition UFC.h:47
Definition adapt.h:30