1
#ifndef __COMBUSTION_KRONECKER_H
2
#define __COMBUSTION_KRONECKER_H
4
// Include dolfin libraries
5
#include <dolfin/tensorproduct/TensorProductFunctionSpace.h>
7
// Include the generated code (includes a lot of other stuff)
8
#include "Combustion.h"
10
namespace CombustionKronecker
13
class KroneckerForm_0 : public dolfin::TensorProductForm
18
KroneckerForm_0(boost::shared_ptr<const dolfin::TensorProductFunctionSpace> V1, boost::shared_ptr<const dolfin::TensorProductFunctionSpace> V0)
19
: dolfin::TensorProductForm(2, 0, 2, 4)
21
// Store function spaces
22
_tensor_spaces[0] = V0;
23
_tensor_spaces[1] = V1;
25
// Create forms in flattened structure (a0, a1, b0, b1, c0, c1) etc.
26
_forms[0] = boost::shared_ptr<dolfin::Form>(new Combustion::Form_0(V1->factor_space(0),V0->factor_space(0)));
27
_forms[2] = boost::shared_ptr<dolfin::Form>(new Combustion::Form_2(V1->factor_space(0),V0->factor_space(0)));
28
_forms[4] = boost::shared_ptr<dolfin::Form>(new Combustion::Form_4(V1->factor_space(0),V0->factor_space(0)));
29
_forms[6] = boost::shared_ptr<dolfin::Form>(new Combustion::Form_6(V1->factor_space(0),V0->factor_space(0)));
30
_forms[1] = boost::shared_ptr<dolfin::Form>(new Combustion::Form_1(V1->factor_space(1),V0->factor_space(1)));
31
_forms[3] = boost::shared_ptr<dolfin::Form>(new Combustion::Form_3(V1->factor_space(1),V0->factor_space(1)));
32
_forms[5] = boost::shared_ptr<dolfin::Form>(new Combustion::Form_5(V1->factor_space(1),V0->factor_space(1)));
33
_forms[7] = boost::shared_ptr<dolfin::Form>(new Combustion::Form_7(V1->factor_space(1),V0->factor_space(1)));
43
class KroneckerForm_1 : public dolfin::TensorProductForm
48
KroneckerForm_1(boost::shared_ptr<const dolfin::TensorProductFunctionSpace> V0)
49
: dolfin::TensorProductForm(1, 0, 2, 1)
51
// Store function spaces
52
_tensor_spaces[0] = V0;
54
// Create forms in flattened structure (a0, a1, b0, b1, c0, c1) etc.
55
_forms[0] = boost::shared_ptr<dolfin::Form>(new Combustion::Form_8(V0->factor_space(0)));
56
_forms[1] = boost::shared_ptr<dolfin::Form>(new Combustion::Form_9(V0->factor_space(1)));
66
typedef KroneckerForm_1 LinearForm;
67
typedef KroneckerForm_0 BilinearForm;