Skip to content

Commit c1e6e5a

Browse files
Piyush ShardaPiyush Sharda
Piyush Sharda
authored and
Piyush Sharda
committed
consolidate
1 parent b86f994 commit c1e6e5a

File tree

1 file changed

+62
-295
lines changed

1 file changed

+62
-295
lines changed

.github/workflows/burn_cell_metal_chem.yml

+62-295
Original file line numberDiff line numberDiff line change
@@ -28,308 +28,75 @@ jobs:
2828
sudo apt-get update -y -qq
2929
sudo apt-get -qq -y install curl cmake jq clang g++>=9.3.0
3030
31-
- name: Compile and run for Z = 1
32-
run: |
33-
cd unit_test/burn_cell_metal_chem
34-
make -j 2
35-
./main1d.gnu.DEBUG.ex inputs_metal_chem_1 amrex.fpe_trap_{invalid,zero,overflow}=1 > test.out
36-
37-
- name: Print backtrace
38-
if: ${{ failure() && hashFiles('unit_test/burn_cell_metal_chem/Backtrace.0') != '' }}
39-
run: cat unit_test/burn_cell_metal_chem/Backtrace.0
40-
41-
- name: Compare to stored output for Z = 1
42-
run: |
43-
set -e
44-
cd unit_test/burn_cell_metal_chem
45-
line_numbers=(4461 4463 4465 4467 4468 4471 4472 4475 4481 4486)
46-
threshold=0.01
47-
error_found=false
48-
for line_number in "${line_numbers[@]}"; do
49-
50-
value1=$(awk 'NR=='"$line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH); else print 0}' test.out)
51-
# Adjust the line number for reference_solution_1.out
52-
reference_line_number=$((line_number - 4460))
53-
value2=$(awk 'NR=='"$reference_line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH)}' reference_solution_1.out)
54-
55-
difference=$(awk -v val1="$value1" -v val2="$value2" 'BEGIN { printf "%.2f", (val1 - val2) / val2 }')
56-
57-
if (( $(echo "$difference > $threshold" | bc -l) )); then
58-
echo "Line number: $line_number"
59-
echo "Value in test.out: $value1"
60-
echo "Value in reference_solution_1.out: $value2"
61-
echo "Difference between test and reference value is $difference, more than allowed threshold of $threshold"
62-
echo
63-
error_found=true
64-
fi
65-
done
66-
if [[ $error_found == true ]]; then
67-
exit 1
68-
fi
69-
70-
- name: Run for Z = 1 at z = 10
71-
run: |
72-
cd unit_test/burn_cell_metal_chem
73-
./main1d.gnu.DEBUG.ex inputs_metal_chem_1_z10 amrex.fpe_trap_{invalid,zero,overflow}=1 > test.out
74-
75-
- name: Print backtrace
76-
if: ${{ failure() && hashFiles('unit_test/burn_cell_metal_chem/Backtrace.0') != '' }}
77-
run: cat unit_test/burn_cell_metal_chem/Backtrace.0
78-
79-
- name: Compare to stored output for Z = 1 at z = 10
80-
run: |
81-
set -e
82-
cd unit_test/burn_cell_metal_chem
83-
line_numbers=(1613 1615 4456 4458 4460 4463 4470 4476 4481)
84-
threshold=0.01
85-
error_found=false
86-
for line_number in "${line_numbers[@]}"; do
87-
88-
value1=$(awk 'NR=='"$line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH); else print 0}' test.out)
89-
# Adjust the line number for reference_solution_1_z10.out
90-
reference_line_number=$((line_number - 1612))
91-
value2=$(awk 'NR=='"$reference_line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH)}' reference_solution_1_z10.out)
92-
93-
difference=$(awk -v val1="$value1" -v val2="$value2" 'BEGIN { printf "%.2f", (val1 - val2) / val2 }')
94-
95-
if (( $(echo "$difference > $threshold" | bc -l) )); then
96-
echo "Line number: $line_number"
97-
echo "Value in test.out: $value1"
98-
echo "Value in reference_solution_1_z10.out: $value2"
99-
echo "Difference between test and reference value is $difference, more than allowed threshold of $threshold"
100-
echo
101-
error_found=true
102-
fi
103-
done
104-
if [[ $error_found == true ]]; then
105-
exit 1
106-
fi
107-
108-
- name: Run for Z = 1e-1
109-
run: |
110-
cd unit_test/burn_cell_metal_chem
111-
./main1d.gnu.DEBUG.ex inputs_metal_chem_1e-1 amrex.fpe_trap_{invalid,zero,overflow}=1 > test.out
112-
113-
- name: Print backtrace
114-
if: ${{ failure() && hashFiles('unit_test/burn_cell_metal_chem/Backtrace.0') != '' }}
115-
run: cat unit_test/burn_cell_metal_chem/Backtrace.0
116-
117-
- name: Compare to stored output for Z = 1e-1
118-
run: |
119-
set -e
120-
cd unit_test/burn_cell_metal_chem
121-
line_numbers=(4438 4440 4442 4444 4445 4448 4449 4452 4458 4463)
122-
threshold=0.01
123-
error_found=false
124-
for line_number in "${line_numbers[@]}"; do
125-
126-
value1=$(awk 'NR=='"$line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH); else print 0}' test.out)
127-
# Adjust the line number for reference_solution
128-
reference_line_number=$((line_number - 4437))
129-
value2=$(awk 'NR=='"$reference_line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH)}' reference_solution_1e-1.out)
130-
131-
difference=$(awk -v val1="$value1" -v val2="$value2" 'BEGIN { printf "%.2f", (val1 - val2) / val2 }')
132-
133-
if (( $(echo "$difference > $threshold" | bc -l) )); then
134-
echo "Line number: $line_number"
135-
echo "Value in test.out: $value1"
136-
echo "Value in reference_solution_1e-1.out: $value2"
137-
echo "Difference between test and reference value is $difference, more than allowed threshold of $threshold"
138-
echo
139-
error_found=true
140-
fi
141-
done
142-
if [[ $error_found == true ]]; then
143-
exit 1
144-
fi
145-
146-
- name: Run for Z = 1e-2
147-
run: |
148-
cd unit_test/burn_cell_metal_chem
149-
./main1d.gnu.DEBUG.ex inputs_metal_chem_1e-2 amrex.fpe_trap_{invalid,zero,overflow}=1 > test.out
150-
151-
- name: Print backtrace
152-
if: ${{ failure() && hashFiles('unit_test/burn_cell_metal_chem/Backtrace.0') != '' }}
153-
run: cat unit_test/burn_cell_metal_chem/Backtrace.0
154-
155-
- name: Compare to stored output for Z = 1e-2
156-
run: |
157-
set -e
158-
cd unit_test/burn_cell_metal_chem
159-
line_numbers=(4438 4440 4442 4444 4445 4448 4449 4452 4458 4463)
160-
threshold=0.01
161-
error_found=false
162-
for line_number in "${line_numbers[@]}"; do
163-
164-
value1=$(awk 'NR=='"$line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH); else print 0}' test.out)
165-
# Adjust the line number for reference_solution
166-
reference_line_number=$((line_number - 4437))
167-
value2=$(awk 'NR=='"$reference_line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH)}' reference_solution_1e-2.out)
168-
169-
difference=$(awk -v val1="$value1" -v val2="$value2" 'BEGIN { printf "%.2f", (val1 - val2) / val2 }')
170-
171-
if (( $(echo "$difference > $threshold" | bc -l) )); then
172-
echo "Line number: $line_number"
173-
echo "Value in test.out: $value1"
174-
echo "Value in reference_solution_1e-2.out: $value2"
175-
echo "Difference between test and reference value is $difference, more than allowed threshold of $threshold"
176-
echo
177-
error_found=true
178-
fi
179-
done
180-
if [[ $error_found == true ]]; then
181-
exit 1
182-
fi
183-
184-
- name: Run for Z = 1e-3
185-
run: |
186-
cd unit_test/burn_cell_metal_chem
187-
./main1d.gnu.DEBUG.ex inputs_metal_chem_1e-3 amrex.fpe_trap_{invalid,zero,overflow}=1 > test.out
188-
189-
- name: Print backtrace
190-
if: ${{ failure() && hashFiles('unit_test/burn_cell_metal_chem/Backtrace.0') != '' }}
191-
run: cat unit_test/burn_cell_metal_chem/Backtrace.0
192-
193-
- name: Compare to stored output for Z = 1e-3
31+
- name: Run and compare outputs for different Z values
19432
run: |
19533
set -e
19634
cd unit_test/burn_cell_metal_chem
197-
line_numbers=(4438 4440 4442 4444 4445 4448 4449 4452 4458 4463)
198-
threshold=0.01
199-
error_found=false
200-
for line_number in "${line_numbers[@]}"; do
20135
202-
value1=$(awk 'NR=='"$line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH); else print 0}' test.out)
203-
# Adjust the line number for reference_solution
204-
reference_line_number=$((line_number - 4437))
205-
value2=$(awk 'NR=='"$reference_line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH)}' reference_solution_1e-3.out)
206-
207-
difference=$(awk -v val1="$value1" -v val2="$value2" 'BEGIN { printf "%.2f", (val1 - val2) / val2 }')
208-
209-
if (( $(echo "$difference > $threshold" | bc -l) )); then
210-
echo "Line number: $line_number"
211-
echo "Value in test.out: $value1"
212-
echo "Value in reference_solution_1e-3.out: $value2"
213-
echo "Difference between test and reference value is $difference, more than allowed threshold of $threshold"
214-
echo
215-
error_found=true
36+
declare -A line_numbers_map=(
37+
["Z=1"]="4461 4463 4465 4467 4468 4471 4472 4475 4481 4486"
38+
["Z=1_z10"]="1613 1615 4456 4458 4460 4463 4470 4476 4481"
39+
["Z=1e-1"]="4438 4440 4442 4444 4445 4448 4449 4452 4458 4463"
40+
["Z=1e-2"]="4438 4440 4442 4444 4445 4448 4449 4452 4458 4463"
41+
["Z=1e-3"]="4438 4440 4442 4444 4445 4448 4449 4452 4458 4463"
42+
["Z=1e-4"]="4438 4440 4442 4444 4445 4448 4449 4452 4458 4463"
43+
["Z=1e-5"]="4438 4440 4442 4444 4445 4448 4449 4452 4458 4463"
44+
["Z=1e-6"]="4438 4440 4442 4444 4445 4448 4449 4452 4458 4463"
45+
)
46+
47+
declare -A ref_map=(
48+
["Z=1"]="reference_solution_1.out"
49+
["Z=1_z10"]="reference_solution_1_z10.out"
50+
["Z=1e-1"]="reference_solution_1e-1.out"
51+
["Z=1e-2"]="reference_solution_1e-2.out"
52+
["Z=1e-3"]="reference_solution_1e-3.out"
53+
["Z=1e-4"]="reference_solution_1e-4.out"
54+
["Z=1e-5"]="reference_solution_1e-5.out"
55+
["Z=1e-6"]="reference_solution_1e-6.out"
56+
)
57+
58+
for Z in "Z=1" "Z=1_z10" "Z=1e-1" "Z=1e-2" "Z=1e-3" "Z=1e-4" "Z=1e-5" "Z=1e-6"; do
59+
input_file="inputs_metal_chem_${Z//Z=/}"
60+
output_file="test_${Z//Z=/}.out"
61+
./main1d.gnu.DEBUG.ex $input_file amrex.fpe_trap_{invalid,zero,overflow}=1 > $output_file
62+
63+
line_numbers="${line_numbers_map[$Z]}"
64+
ref_file="${ref_map[$Z]}"
65+
66+
error_found=false
67+
for line_number in $line_numbers; do
68+
value1=$(awk 'NR=='"$line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH); else print 0}' $output_file)
69+
70+
# Adjust the line number for the reference file
71+
if [[ "$Z" == "Z=1" ]]; then
72+
reference_line_number=$((line_number - 4460))
73+
elif [[ "$Z" == "Z=1_z10" ]]; then
74+
reference_line_number=$((line_number - 1612))
75+
else
76+
reference_line_number=$((line_number - 4437))
77+
fi
78+
79+
value2=$(awk 'NR=='"$reference_line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH)}' $ref_file)
80+
81+
difference=$(awk -v val1="$value1" -v val2="$value2" 'BEGIN { printf "%.2f", (val1 - val2) / val2 }')
82+
83+
if (( $(echo "$difference > 0.01" | bc -l) )); then
84+
echo "Z: $Z"
85+
echo "Line number: $line_number"
86+
echo "Value in $output_file: $value1"
87+
echo "Value in $ref_file: $value2"
88+
echo "Difference between test and reference value is $difference, more than allowed threshold of 0.01"
89+
echo
90+
error_found=true
91+
fi
92+
done
93+
94+
if [[ $error_found == true ]]; then
95+
exit 1
21696
fi
21797
done
218-
if [[ $error_found == true ]]; then
219-
exit 1
220-
fi
221-
222-
- name: Run for Z = 1e-4
223-
run: |
224-
cd unit_test/burn_cell_metal_chem
225-
./main1d.gnu.DEBUG.ex inputs_metal_chem_1e-4 amrex.fpe_trap_{invalid,zero,overflow}=1 > test.out
22698
227-
- name: Print backtrace
99+
- name: Print backtrace if any failure
228100
if: ${{ failure() && hashFiles('unit_test/burn_cell_metal_chem/Backtrace.0') != '' }}
229101
run: cat unit_test/burn_cell_metal_chem/Backtrace.0
230102

231-
- name: Compare to stored output for Z = 1e-4
232-
run: |
233-
set -e
234-
cd unit_test/burn_cell_metal_chem
235-
line_numbers=(4438 4440 4442 4444 4445 4448 4449 4452 4458 4463)
236-
threshold=0.01
237-
error_found=false
238-
for line_number in "${line_numbers[@]}"; do
239-
240-
value1=$(awk 'NR=='"$line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH); else print 0}' test.out)
241-
# Adjust the line number for reference_solution
242-
reference_line_number=$((line_number - 4437))
243-
value2=$(awk 'NR=='"$reference_line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH)}' reference_solution_1e-4.out)
244-
245-
difference=$(awk -v val1="$value1" -v val2="$value2" 'BEGIN { printf "%.2f", (val1 - val2) / val2 }')
246-
247-
if (( $(echo "$difference > $threshold" | bc -l) )); then
248-
echo "Line number: $line_number"
249-
echo "Value in test.out: $value1"
250-
echo "Value in reference_solution_1e-4.out: $value2"
251-
echo "Difference between test and reference value is $difference, more than allowed threshold of $threshold"
252-
echo
253-
error_found=true
254-
fi
255-
done
256-
if [[ $error_found == true ]]; then
257-
exit 1
258-
fi
259-
260-
- name: Run for Z = 1e-5
261-
run: |
262-
cd unit_test/burn_cell_metal_chem
263-
./main1d.gnu.DEBUG.ex inputs_metal_chem_1e-5 amrex.fpe_trap_{invalid,zero,overflow}=1 > test.out
264-
265-
- name: Print backtrace
266-
if: ${{ failure() && hashFiles('unit_test/burn_cell_metal_chem/Backtrace.0') != '' }}
267-
run: cat unit_test/burn_cell_metal_chem/Backtrace.0
268-
269-
- name: Compare to stored output for Z = 1e-5
270-
run: |
271-
set -e
272-
cd unit_test/burn_cell_metal_chem
273-
line_numbers=(4438 4440 4442 4444 4445 4448 4449 4452 4458 4463)
274-
threshold=0.01
275-
error_found=false
276-
for line_number in "${line_numbers[@]}"; do
277-
278-
value1=$(awk 'NR=='"$line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH); else print 0}' test.out)
279-
# Adjust the line number for reference_solution
280-
reference_line_number=$((line_number - 4437))
281-
value2=$(awk 'NR=='"$reference_line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH)}' reference_solution_1e-5.out)
282-
283-
difference=$(awk -v val1="$value1" -v val2="$value2" 'BEGIN { printf "%.2f", (val1 - val2) / val2 }')
284-
285-
if (( $(echo "$difference > $threshold" | bc -l) )); then
286-
echo "Line number: $line_number"
287-
echo "Value in test.out: $value1"
288-
echo "Value in reference_solution_1e-5.out: $value2"
289-
echo "Difference between test and reference value is $difference, more than allowed threshold of $threshold"
290-
echo
291-
error_found=true
292-
fi
293-
done
294-
if [[ $error_found == true ]]; then
295-
exit 1
296-
fi
297-
298-
- name: Run for Z = 1e-6
299-
run: |
300-
cd unit_test/burn_cell_metal_chem
301-
./main1d.gnu.DEBUG.ex inputs_metal_chem_1e-6 amrex.fpe_trap_{invalid,zero,overflow}=1 > test.out
302-
303-
- name: Print backtrace
304-
if: ${{ failure() && hashFiles('unit_test/burn_cell_metal_chem/Backtrace.0') != '' }}
305-
run: cat unit_test/burn_cell_metal_chem/Backtrace.0
306-
307-
- name: Compare to stored output for Z = 1e-6
308-
run: |
309-
set -e
310-
cd unit_test/burn_cell_metal_chem
311-
line_numbers=(4438 4440 4442 4444 4445 4448 4449 4452 4458 4463)
312-
threshold=0.01
313-
error_found=false
314-
for line_number in "${line_numbers[@]}"; do
315-
316-
value1=$(awk 'NR=='"$line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH); else print 0}' test.out)
317-
# Adjust the line number for reference_solution
318-
reference_line_number=$((line_number - 4437))
319-
value2=$(awk 'NR=='"$reference_line_number"' {match($0, /[+-]?[0-9]+([.][0-9]+)?[eE]?[+-]?[0-9]+/); if (RSTART) print substr($0, RSTART, RLENGTH)}' reference_solution_1e-6.out)
320-
321-
difference=$(awk -v val1="$value1" -v val2="$value2" 'BEGIN { printf "%.2f", (val1 - val2) / val2 }')
322-
323-
if (( $(echo "$difference > $threshold" | bc -l) )); then
324-
echo "Line number: $line_number"
325-
echo "Value in test.out: $value1"
326-
echo "Value in reference_solution_1e-6.out: $value2"
327-
echo "Difference between test and reference value is $difference, more than allowed threshold of $threshold"
328-
echo
329-
error_found=true
330-
fi
331-
done
332-
if [[ $error_found == true ]]; then
333-
exit 1
334-
fi
335-

0 commit comments

Comments
 (0)