Updated 2D seismic plane waves convergence benchmark.

parent f0cad67b
......@@ -35,12 +35,22 @@ var l_parts = [1, 13];
for( var l_cl = 0; l_cl < l_cls.length; l_cl++ ) {
for( var l_ty = 0; l_ty < l_base.length; l_ty++ ) {
for( var l_pa = 0; l_pa < l_parts.length; l_pa++ ) {
console.log( 'generating config for char length / type / part:', l_cls[l_cl], '/', l_base[l_ty], '/', l_parts[l_pa] );
for( var l_ro = 0; l_ro < 2; l_ro++ ) {
var l_id = l_base[l_ty] + '_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa];
// create reorder-only mesh for parallel configs
if( l_base[l_ty] == 'gts' && l_parts[l_pa] != 1 && l_ro == 1 ) {
l_id = l_id + '_reorder_only';
}
else if( l_ro == 1 ) {
continue;
}
console.log( 'generating config for char length / type / part / reorder only:', l_cls[l_cl], '/', l_base[l_ty], '/', l_parts[l_pa] ), '/', l_ro;
var l_meshBase = 'meshes/gen/edge_v/' + l_base[l_ty] + '_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa];
var l_meshBase = 'meshes/gen/edge_v/' + l_id;
var l_meshExt = '.msh';
var l_config = 'gen/' + l_base[l_ty] + '_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa] + '.xml';
var l_config = 'gen/' + l_id + '.xml';
l_fs.outputFile(
l_config,
......@@ -48,7 +58,9 @@ for( var l_cl = 0; l_cl < l_cls.length; l_cl++ ) {
'config.njk', {
i_meshBase: l_meshBase,
i_meshExt: l_meshExt,
i_errorXml: 'errors/' + l_base[l_ty] + '_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa] + '.xml'
i_waveField: 'wave_field/' + l_id + '/wf',
i_receivers: 'receivers/' + l_id,
i_errorXml: 'errors/' + l_id + '.xml'
}
),
function(l_err) {
......@@ -57,5 +69,8 @@ for( var l_cl = 0; l_cl < l_cls.length; l_cl++ ) {
)
}
}
}
}
console.log( 'done' )
Meshes for the 2D Plane Waves Setups
====================================
The "reorder_only" GTS-versions went through the same reordering as the parallel versions but only have a single partition.
Used commands:
.. code-block:: bash
......
......@@ -25,9 +25,11 @@
<edge_v>
<mesh>
<periodic>106</periodic>
<reorder_only>{{i_reorderOnly}}</reorder_only>
{%- if i_nParts > 1 %}
<n_partitions>{{i_nParts}}</n_partitions>
{%- endif %}
<write_element_annotations>1</write_element_annotations>
<files>
<in>{{i_meshIn}}</in>
<out>
......@@ -38,7 +40,7 @@
</mesh>
<time>
<n_groups>6</n_groups>
<n_groups>{{i_nTimeGroups}}</n_groups>
{%- if i_nParts == 1 %}
<files>
<out_time_steps>{{i_statsOut}}</out_time_steps>
......
......@@ -49,17 +49,38 @@ for( var l_cl = 0; l_cl < l_cls.length; l_cl++ ) {
)
}
for( var l_ty = 0; l_ty < l_base.length; l_ty++ ) {
for( var l_ty = 0; l_ty < l_base.length; l_ty++ ) {
for( var l_pa = 0; l_pa < l_parts.length; l_pa++ ) {
console.log( 'generating EDGE-V config for char length / nParts:', l_cls[l_cl], '/', l_parts[l_pa] )
for( var l_ro = 0; l_ro < 2; l_ro++ ) {
var l_id = l_base[l_ty] + '_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa];
// create reorder-only mesh for parallel configs
if( l_base[l_ty] == 'gts' && l_parts[l_pa] != 1 && l_ro == 1 ) {
l_id = l_id + '_reorder_only';
}
else if( l_ro == 1 ) {
continue;
}
console.log( 'generating EDGE-V config for char length / nParts / reorder only:', l_cls[l_cl], '/', l_parts[l_pa], '/', l_ro )
var l_configOut = 'gen/configs/edge_v/' + l_id + '.xml';
var l_nTimeGroups = 1;
if( l_base[l_ty] == 'lts' ) {
l_nTimeGroups = 5;
}
var l_meshOut = 'gen/edge_v/' + l_id;
var l_statsOut = 'gen/stats/edge_v_' + l_id + '.csv';
l_fs.outputFile(
'gen/configs/edge_v/' + l_base[l_ty] + '_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa] + '.xml',
l_configOut,
nunjucks.render(
'edge_v.njk', {
i_meshIn: 'gen/gmsh/' + l_base[l_ty] + '_' + l_cls[l_cl] + '.msh',
i_nParts: l_parts[l_pa],
i_meshOut: 'gen/edge_v/' + l_base[l_ty] + '_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa],
i_statsOut: 'gen/stats/edge_v_' + l_cls[l_cl] + '.csv',
i_nTimeGroups: l_nTimeGroups,
i_reorderOnly: l_ro,
i_meshOut: l_meshOut,
i_statsOut: l_statsOut,
}
),
function(l_err) {
......@@ -68,5 +89,6 @@ for( var l_ty = 0; l_ty < l_base.length; l_ty++ ) {
)
}
}
}
}
console.log( 'done' )
......@@ -42,6 +42,12 @@ do
do
echo "$(date) running EDGE-V for char length ${l_cl} for nParts ${l_pa}"
edge_v -x gen/configs/edge_v/${l_ty}_cl_${l_cl}_pa_${l_pa}.xml 2>&1 > gen/logs/${l_ty}_cl_${l_cl}_pa_${l_pa}_edge_v.log
if [[ l_pa -gt 1 && ${l_ty} == 'gts' ]]
then
echo "$(date) running EDGE-V for char length ${l_cl} for nParts ${l_pa} (reorder only)"
edge_v -x gen/configs/edge_v/${l_ty}_cl_${l_cl}_pa_${l_pa}_reorder_only.xml 2>&1 > gen/logs/${l_ty}_cl_${l_cl}_pa_${l_pa}_reorder_only_edge_v.log
fi
done
done
done
Runs of the 2D Plane Waves Setups
=================================
Used commands:
.. code-block:: bash
./run_all.sh -e $(pwd)/edge
......@@ -71,6 +71,12 @@ do
else
echo "$(date) running EDGE for ${l_ty}, char length ${l_cl} and for nParts ${l_pa}"
mpiexec --oversubscribe -n ${l_pa} ${EDGE_PATH} -x configs/gen/${l_ty}_cl_${l_cl}_pa_${l_pa}.xml 2>&1 > logs/edge_${l_ty}_cl_${l_cl}_pa_${l_pa}.log
if [[ ${l_ty} == 'gts' ]]
then
echo "$(date) running EDGE for ${l_ty}, char length ${l_cl} and for nParts ${l_pa} (reorder only)"
${EDGE_PATH} -x configs/gen/${l_ty}_cl_${l_cl}_pa_${l_pa}_reorder_only.xml 2>&1 > logs/edge_${l_ty}_cl_${l_cl}_pa_${l_pa}_reorder_only.log
fi
fi
done
done
......
Configs for the 3D Plane Waves Setups
=====================================
Used commands:
.. code-block:: bash
./gen_configs.js
......@@ -5,6 +5,7 @@
@author Alexander Breuer (breuer AT mytum.de)
@section LICENSE
Copyright (c) 2021, Friedrich Schiller University Jena
Copyright (c) 2019, Alexander Breuer
Copyright (c) 2016, Regents of the University of California
All rights reserved.
......@@ -25,9 +26,10 @@
<edge>
<cfr>
<mesh>
<files>
<in>{{i_meshIn}}</in>
</files>
<in>
<base>{{i_meshBase}}</base>
<extension>{{i_meshExt}}</extension>
</in>
<boundary>
<periodic>106</periodic>
</boundary>
......
......@@ -5,6 +5,7 @@
* @author Alexander Breuer (breuer AT mytum.de)
*
* @section LICENSE
* Copyright (c) 2021, Friedrich Schiller University Jena
* Copyright (c) 2019, Alexander Breuer
* All rights reserved.
*
......@@ -28,26 +29,26 @@ var l_fs = require('fs-extra');
// minimum edge lengths
var l_cls = [25, 20, 15, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
var l_base = ['lts', 'gts_on_lts', 'gts'];
var l_base = ['lts', 'gts'];
var l_parts = [1, 8];
for( var l_cl = 0; l_cl < l_cls.length; l_cl++ ) {
for( var l_ty = 0; l_ty < l_base.length; l_ty++ ) {
console.log( 'generating config for char length:', l_cls[l_cl] )
for( var l_pa = 0; l_pa < l_parts.length; l_pa++ ) {
console.log( 'generating config for char length / type / part:', l_cls[l_cl], '/', l_base[l_ty], '/', l_parts[l_pa] );
var l_path = 'meshes/gen/ascii/' + l_base[l_ty] + '_' + l_cls[l_cl] + '.msh';
if( l_base[l_ty] == 'lts' ) {
l_path = 'meshes/gen/hdf5/' + l_base[l_ty] + '_' + l_cls[l_cl] + '.h5m'
}
else if( l_base[l_ty] == 'gts_on_lts' ) {
l_path = 'meshes/gen/ascii/lts_' + l_cls[l_cl] + '.msh'
}
var l_meshBase = 'meshes/gen/edge_v/' + l_base[l_ty] + '_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa];
var l_meshExt = '.msh';
var l_config = 'gen/' + l_base[l_ty] + '_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa] + '.xml';
l_fs.outputFile(
'gen/configs/' + l_base[l_ty] + '_' + l_cls[l_cl] + '.xml',
l_config,
nunjucks.render(
'config.njk', {
i_meshIn: l_path,
i_errorXml: 'errors/' + l_base[l_ty] + '_' + l_cls[l_cl] + '.xml'
i_meshBase: l_meshBase,
i_meshExt: l_meshExt,
i_errorXml: 'errors/' + l_base[l_ty] + '_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa] + '.xml'
}
),
function(l_err) {
......@@ -55,5 +56,6 @@ for( var l_cl = 0; l_cl < l_cls.length; l_cl++ ) {
}
)
}
}
}
console.log( 'done' )
Meshes for the 3D Plane Waves Setups
====================================
Used commands:
.. code-block:: bash
./generate.sh
......@@ -5,6 +5,7 @@
@author Alexander Breuer (breuer AT mytum.de)
@section LICENSE
Copyright (c) 2021, Friedrich Schiller University Jena
Copyright (c) 2019, Alexander Breuer
All rights reserved.
......@@ -24,18 +25,12 @@
<edge_v>
<mesh>
<periodic>106</periodic>
{%- if i_nParts > 1 %}
<n_partitions>{{i_nParts}}</n_partitions>
{%- endif %}
<files>
<in>{{i_meshIn}}</in>
<out>{{i_meshOut}}.h5m</out>
{%- if i_nParts > 1 %}
<out_by_partition>
<out>
<base>{{i_meshOut}}</base>
<extension>.h5m</extension>
</out_by_partition>
{%- endif %}
<extension>.msh</extension></out>
</files>
</mesh>
......
......@@ -5,6 +5,7 @@
* @author Alexander Breuer (breuer AT mytum.de)
*
* @section LICENSE
* Copyright (c) 2021, Friedrich Schiller University Jena
* Copyright (c) 2019, Alexander Breuer
* All rights reserved.
*
......@@ -46,17 +47,16 @@ for( var l_cl = 0; l_cl < l_cls.length; l_cl++ ) {
if(l_err) return console.log( l_err );
}
)
}
for( var l_pa = 0; l_pa < l_parts.length; l_pa++ ) {
console.log( 'generating EDGE-V config for char length / nParts:', l_cls[l_cl], '/', l_parts[l_pa] )
l_fs.outputFile(
'gen/configs/edge_v/lts_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa] + '.xml',
'gen/configs/edge_v/' + l_base[l_ty] + '_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa] + '.xml',
nunjucks.render(
'edge_v.njk', {
i_meshIn: 'gen/ascii/lts_' + l_cls[l_cl] + '.msh',
i_meshIn: 'gen/gmsh/' + l_base[l_ty] + '_' + l_cls[l_cl] + '.msh',
i_nParts: l_parts[l_pa],
i_meshOut: 'gen/hdf5/lts_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa],
i_meshOut: 'gen/edge_v/' + l_base[l_ty] + '_cl_' + l_cls[l_cl] + '_pa_' + l_parts[l_pa],
i_statsOut: 'gen/stats/edge_v_' + l_cls[l_cl] + '.csv',
}
),
......@@ -65,5 +65,6 @@ for( var l_cl = 0; l_cl < l_cls.length; l_cl++ ) {
}
)
}
}
}
console.log( 'done' )
......@@ -5,6 +5,7 @@
# @author Alexander Breuer (breuer AT mytum.de)
#
# @section LICENSE
# Copyright (c) 2021, Friedrich Schiller University Jena
# Copyright (c) 2019, Alexander Breuer
# All rights reserved.
#
......@@ -26,7 +27,7 @@ echo "gmsh-version:"
gmsh --version
rm -r gen 2> /dev/null
mkdir -p gen/ascii gen/hdf5 gen/logs
mkdir -p gen/gmsh gen/edge_v gen/logs
./gen_configs.js
......@@ -35,12 +36,12 @@ do
for l_ty in gts lts
do
echo "$(date) running gmsh char length ${l_cl} for type ${l_ty}"
gmsh -3 -format msh2 gen/configs/gmsh/${l_ty}_${l_cl}.geo -o gen/ascii/${l_ty}_${l_cl}.msh 2>&1 > gen/logs/${l_ty}_${l_cl}.msh.log
done
gmsh -3 -format msh2 gen/configs/gmsh/${l_ty}_${l_cl}.geo -o gen/gmsh/${l_ty}_${l_cl}.msh > gen/logs/gmsh_${l_ty}_${l_cl}.log 2>&1
for l_pa in 1 8
do
echo "$(date) running EDGE-V for char length ${l_cl} for nParts ${l_pa}"
edge_v -x gen/configs/edge_v/lts_cl_${l_cl}_pa_${l_pa}.xml 2>&1 > gen/logs/lts_cl_${l_cl}_pa_${pa}.h5m.log
edge_v -x gen/configs/edge_v/${l_ty}_cl_${l_cl}_pa_${l_pa}.xml > gen/logs/edge_v_${l_ty}_cl_${l_cl}_pa_${l_pa}.log 2>&1
done
done
done
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment