Skip to content

Commit

Permalink
Add work-accuracy plots
Browse files Browse the repository at this point in the history
  • Loading branch information
fsimonis committed Feb 6, 2025
1 parent 2a10739 commit 46fdfc1
Showing 1 changed file with 54 additions and 10 deletions.
64 changes: 54 additions & 10 deletions tools/mapping-tester/plotconv.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,27 @@ def parseArguments(args):
styles = [(c, m) for m in style_markers for c in style_colours]


def plot(df: pl.DataFrame, yname: str, ylabel: str, filename: str):
def plotBack(
df: pl.DataFrame, yname: str, ylabel: str, xname: str, xlabel: str, filename: str
):
if xname not in df.columns:
print(f"Skipping {xname}-{yname} plot as {xname} not found in dataset.")
return

if yname not in df.columns:
print(f"Skipping {yname} as not found in dataset.")
print(f"Skipping {xname}-{yname} plot as {yname} not found in dataset.")
return

fig, ax = plt.subplots(sharex=True, sharey=True)
ax.set_xlabel("edge length(h) of mesh A")
ax.set_xlabel(xlabel)
ax.set_ylabel(ylabel)
ax.set_yscale("log")
if df["mesh A"].dtype.is_numeric():

if df[xname].dtype.is_numeric():
ax.set_xscale("log")

if df[yname].dtype.is_numeric():
ax.set_yscale("log")

series = df.group_by("mapping")
for grouped, style in zip(series, styles):
name, group = grouped
Expand All @@ -65,7 +74,7 @@ def plot(df: pl.DataFrame, yname: str, ylabel: str, filename: str):
continue
color, marker = style
ax.plot(
group["mesh A"],
group[xname],
group[yname],
label=name,
marker=marker,
Expand All @@ -74,9 +83,32 @@ def plot(df: pl.DataFrame, yname: str, ylabel: str, filename: str):

plt.gca().invert_xaxis()
plt.grid()
plt.legend()
plt.savefig(filename + ".pdf")


def plotConv(df: pl.DataFrame, yname: str, ylabel: str, filename: str):
plotBack(
df,
yname=yname,
ylabel=ylabel,
xname="mesh A",
xlabel="edge length(h) of mesh A",
filename=filename,
)


def plotWorkError(df: pl.DataFrame, yname: str, ylabel: str, filename: str):
plotBack(
df,
yname=yname,
ylabel=ylabel,
xname="relative-l2",
xlabel="relative l2-error",
filename=filename,
)


def main(argv):
args = parseArguments(argv[1:])

Expand All @@ -93,30 +125,42 @@ def main(argv):
if not df["mesh A"].dtype.is_numeric():
print("Note: 'mesh A' isn't numeric. The x-axis will not use log scaling.")

plot(
plotConv(
df,
yname="relative-l2",
ylabel="relative-l2 error mapping to mesh B",
filename=f"{args.prefix}-error",
)
plot(
plotConv(
df,
yname="peakMemB",
ylabel="peak memory of participant B [Kbytes]",
filename=f"{args.prefix}-peakMemB",
)
plot(
plotConv(
df,
yname="computeMappingTime",
ylabel="time to compute mapping [us]",
filename=f"{args.prefix}-computet",
)
plot(
plotConv(
df,
yname="mapDataTime",
ylabel="time to map Data [us]",
filename=f"{args.prefix}-mapt",
)
plotWorkError(
df,
yname="computeMappingTime",
ylabel="time to compute mapping [us]",
filename=f"{args.prefix}-computetAccuracy",
)
plotWorkError(
df,
yname="mapDataTime",
ylabel="time to map Data [us]",
filename=f"{args.prefix}-maptAccuracy",
)

return 0

Expand Down

0 comments on commit 46fdfc1

Please sign in to comment.