15 self, namespace, output, subdirectory, template_prefix, output_path
17 if self.
d[
"POLYNOMIAL_TYPE"] ==
"legendre":
18 QuadratureWeights, QuadratureNodes = MathUtils.getGaussLegendre(
19 self.
d[
"NUMBER_OF_DOF"]
21 OtherQuadratureWeights, OtherQuadratureNodes = MathUtils.getGaussLobatto(
22 self.
d[
"NUMBER_OF_DOF"]
24 elif self.
d[
"POLYNOMIAL_TYPE"] ==
"lobatto":
25 QuadratureWeights, QuadratureNodes = MathUtils.getGaussLobatto(
26 self.
d[
"NUMBER_OF_DOF"]
28 OtherQuadratureWeights, OtherQuadratureNodes = MathUtils.getGaussLobatto(
29 self.
d[
"NUMBER_OF_DOF"]
31 QuadratureNodes = QuadratureNodes[::-1]
34 "Quadrature type " + self.
d[
"POLYNOMIAL_TYPE"] +
" not supported."
37 self.
d[
"QuadratureWeights"], self.
d[
"QuadratureNodes"] = (
41 self.
d[
"quadrature_seq"] = range(self.
d[
"NUMBER_OF_DOF"])
43 l_padSize = self.
d[
"NUMBER_OF_DOF_PADDED"] - self.
d[
"NUMBER_OF_DOF"]
44 uh2lob = MathUtils.assembleQuadratureConversion(
45 QuadratureNodes, OtherQuadratureNodes, self.
d[
"NUMBER_OF_DOF"]
47 self.
d[
"uh2lob"] = MathUtils.matrixPadAndFlatten_ColMajor(uh2lob, l_padSize)
48 self.
d[
"uh2lobSize"] = len(self.
d[
"uh2lob"])
49 self.
d[
"uh2lob_seq"] = range(self.
d[
"uh2lobSize"])
51 l_padSize = self.
d[
"NUMBER_OF_DOF_PADDED"] - self.
d[
"NUMBER_OF_DOF"]
52 dg2fv = MathUtils.assembleDGToFV(
55 self.
d[
"NUMBER_OF_DOF"],
56 self.
d[
"NUMBER_OF_DOF_LIMITER"],
58 self.
d[
"dg2fv"] = MathUtils.matrixPadAndFlatten_ColMajor(dg2fv, l_padSize)
59 self.
d[
"dg2fvSize"] = len(self.
d[
"dg2fv"])
60 self.
d[
"dg2fv_seq"] = range(self.
d[
"dg2fvSize"])
63 self.
d[
"NUMBER_OF_DOF_LIMITER_PADDED"] - self.
d[
"NUMBER_OF_DOF_LIMITER"]
65 fv2dg = MathUtils.assembleFVToDG(
68 self.
d[
"NUMBER_OF_DOF"],
69 self.
d[
"NUMBER_OF_DOF_LIMITER"],
71 self.
d[
"fv2dg"] = MathUtils.matrixPadAndFlatten_ColMajor(fv2dg, l_padSize)
72 self.
d[
"fv2dgSize"] = len(self.
d[
"fv2dg"])
73 self.
d[
"fv2dg_seq"] = range(self.
d[
"fv2dgSize"])
76 headfile_template=template_prefix +
"Quadrature.template.h",
77 cppfile_template=template_prefix +
"Quadrature.template.cpp",
78 classname=output_path +
"/Quadrature",
80 subdirectory=subdirectory +
".",
82 default_overwrite=
True,
83 apply_iteratively=
True,
85 output.add(generated_kernels)
86 output.makefile.add_h_file(output_path +
"/Quadrature.h", generated=
True)
87 output.makefile.add_cpp_file(output_path +
"/Quadrature.cpp", generated=
True)