| 201 | include_tensors=include_tensors) |
| 202 | |
| 203 | def generate_general(subfolders): |
| 204 | # we use always use double here, since these kernels are only used in the initialization |
| 205 | arch = useArchitectureIdentifiedBy('d' + cmdLineArgs.host_arch[1:]) |
| 206 | |
| 207 | outputDir = os.path.join(cmdLineArgs.outputDir, 'general') |
| 208 | if not os.path.exists(outputDir): |
| 209 | os.mkdir(outputDir) |
| 210 | |
| 211 | subfolders += [f'general'] |
| 212 | |
| 213 | # for now, enforce Eigen as a code generator here... Until we have a shared subroutine cache |
| 214 | generator = Generator(arch) |
| 215 | general.addStiffnessTensor(generator) |
| 216 | generator.generate(outputDir=outputDir, |
| 217 | namespace='seissol_general', |
| 218 | gemm_cfg=GeneratorCollection([Eigen(arch)]), |
| 219 | cost_estimator=cost_estimators, |
| 220 | include_tensors=general.includeMatrices(cmdLineArgs.matricesDir)) |
| 221 | |
| 222 | generate_general(subfolders) |
| 223 | |