16 self, namespace, output, subdirectory, template_prefix, output_path
18 self.
_build_gemms(namespace, output, subdirectory, template_prefix, output_path)
21 headfile_template=template_prefix +
"AMRRoutines.template.h",
22 cppfile_template=template_prefix +
"AMRRoutines.template.cpp",
23 classname=output_path +
"/AMRRoutines",
25 subdirectory=subdirectory +
".",
27 default_overwrite=
True,
28 apply_iteratively=
True,
30 output.add(generated_kernels)
31 output.makefile.add_h_file(output_path +
"/AMRRoutines.h", generated=
True)
32 output.makefile.add_cpp_file(output_path +
"/AMRRoutines.cpp", generated=
True)
34 def _build_gemms(self, namespace, output, subdirectory, template_prefix, output_path):
37 nDim = self.
d[
"DIMENSIONS"]
38 nDof = self.
d[
"NUMBER_OF_DOF"]
40 nDofPad = self.
d[
"NUMBER_OF_DOF_PADDED"]
41 nUnknownsPad = self.
d[
"NUMBER_OF_UNKNOWNS_PADDED"]
42 nData = self.
d[
"NUMBER_OF_DATA"]
43 nDataPad = self.
d[
"NUMBER_OF_DATA_PADDED"]
47 self.
d[
"GEMMS"][
"face_Q_x"] =
Gemms(
61 self.
d[
"SOLUTION_STORAGE_PRECISION"]
63 self.
d[
"GEMMS"][
"face_F_x"] =
Gemms(
77 self.
d[
"SOLUTION_STORAGE_PRECISION"]
79 self.
d[
"GEMMS"][
"face_F_x_add"] =
Gemms(
93 self.
d[
"SOLUTION_STORAGE_PRECISION"]
96 self.
d[
"GEMMS"][
"face_Q_y"] =
Gemms(
110 self.
d[
"SOLUTION_STORAGE_PRECISION"]
112 self.
d[
"GEMMS"][
"face_F_y"] =
Gemms(
126 self.
d[
"SOLUTION_STORAGE_PRECISION"]
128 self.
d[
"GEMMS"][
"face_F_y_add"] =
Gemms(
142 self.
d[
"SOLUTION_STORAGE_PRECISION"]
145 self.
d[
"GEMMS"][
"volume_x"] =
Gemms(
160 self.
d[
"SOLUTION_STORAGE_PRECISION"]
164 self.
d[
"GEMMS"][
"volume_y"] =
Gemms(nDataPad, nDof, nDof, nDataPad*nDof , nDofPad, nDataPad*nDof, 1, 0, 1,
169 self.
d[
"SOLUTION_STORAGE_PRECISION"])
170 self.
d[
"GEMMS"][
"volume_z"] =
Gemms(nData , nDof, nDof, nDataPad*nDof2, nDofPad, nData*nDof2 , 1, 0, 1,
175 self.
d[
"SOLUTION_STORAGE_PRECISION"])
176 self.
d[
"GEMMS"][
"volume_z_add"] =
Gemms(nData, nDof, nDof, nDataPad*nDof2, nDofPad, nData*nDof2 , 1, 1, 1,
181 self.
d[
"SOLUTION_STORAGE_PRECISION"])
183 self.
d[
"GEMMS"][
"volume_y"] =
Gemms(nData , nDof, nDof, nDataPad*nDof , nDofPad, nData*nDof , 1, 0, 1,
188 self.
d[
"SOLUTION_STORAGE_PRECISION"])
189 self.
d[
"GEMMS"][
"volume_y_add"] =
Gemms(nData, nDof, nDof, nDataPad*nDof , nDofPad, nData*nDof , 1, 1, 1,
194 self.
d[
"SOLUTION_STORAGE_PRECISION"])
196 if self.
d[
"USE_LIBXSMM"]:
198 output_path=output_path,
199 output_file_name=
"AMRRoutines_libxsmm.c",
202 gemm_config_list=self.
d[
"GEMMS"].values(),