Skip to content
Snippets Groups Projects
poisson_dg_tensor.mini 1.57 KiB
__name = app_poisson_dg_tensor_{__exec_suffix}
__exec_suffix = deg{formcompiler.ufl_variants.degree}_{opcount_suffix}_level{formcompiler.instrumentation_level}

opcount_suffix = opcount, nonopcount | expand opcount
{opcount_suffix} == opcount and {formcompiler.instrumentation_level} != 4 | exclude

# Calculate the size of the grid to equlibritate it to 100 MB/rank
# Input parameters
dim = 3
mbperrank = 100
ranks = 32
floatingbytes = 8

# Metaini Calculations
memperrank = {mbperrank} * 1048576 | eval
dofsperdir = {formcompiler.ufl_variants.degree} + 1 | eval
celldofs = {dofsperdir} ** {dim} | eval
cellsperrank = {memperrank} / ({floatingbytes} * {celldofs}) | eval
cellsperdir = {cellsperrank} ** (1/{dim}) | eval | toint
firstdircells = {ranks} * {cellsperdir} | eval
dimminusone = {dim} - 1 | eval
ones = 1 | repeat {dimminusone}
otherdircells = {cellsperdir} | repeat {dimminusone}

# Setup the grid!
extension = 1.0 | repeat {dim}
cells = {firstdircells} {otherdircells}
partitioning = {ranks} {ones}
periodic = true | repeat {dim}

# Set up the timing identifier
identifier = poisson_dg_tensor_deg{formcompiler.ufl_variants.degree}

[wrapper.vtkcompare]
name = {__name}
extension = vtu

[formcompiler]
fastdg = 1
sumfact = 1
vectorization_quadloop = 1
vectorization_strategy = explicit
instrumentation_level = 2, 3, 4 | expand
opcounter = 1, 0 | expand opcount
performance_measuring = 0, 1 | expand opcount
quadrature_order = {formcompiler.ufl_variants.degree} * 2 | eval
assure_statement_ordering = 1

[formcompiler.ufl_variants]
cell = hexahedron
degree = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 | expand