Skip to content

Commit b20f9f2

Browse files
authored
Dev/jmg alien composyx pluggin (#1801)
* composyx alien pluggin * add composyx alien-bench test
1 parent df0467b commit b20f9f2

15 files changed

+615
-88
lines changed

alien/ArcaneInterface/modules/composyx/src/alien/kernels/composyx/data_structure/ComposyxInternal.h

+197-71
Large diffs are not rendered by default.

alien/ArcaneInterface/modules/composyx/src/alien/kernels/composyx/linear_solver/ComposyxInternalSolver.cc

+6
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,12 @@ ComposyxInternalSolver::init()
123123
m_output_level = m_options->outputLevel();
124124
bool verbose = (m_parallel_mng->commRank()== 0) && m_output_level>0 ;
125125
m_internal.reset(new InternalType()) ;
126+
if(m_options->solver()=="gmres")
127+
{
128+
m_internal->setParam("gmres-restart",m_options->gmresRestart()) ;
129+
m_internal->setParam("gmres-zeta", m_options->gmresZeta()) ;
130+
m_internal->setParam("gmres-ortho", m_options->gmresOrtho().localstr()) ;
131+
}
126132
m_internal->init(m_options->maxIterationNum(),
127133
m_options->stopCriteriaValue(),
128134
m_options->solver().localstr(),

alien/ArcaneInterface/modules/composyx/src/alien/kernels/composyx/linear_solver/arcane/ComposyxSolver.axl

+9
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,15 @@
1616
<simple name="output-level" type="integer" default="0">
1717
<description>Verbosity indicator (min=0, max=3)</description>
1818
</simple>
19+
<simple name="gmres-restart" type="integer" default="10">
20+
<description>GMRES restart param</description>
21+
</simple>
22+
<simple name="gmres-zeta" type="real" default="-1.">
23+
<description>GMRES compression param</description>
24+
</simple>
25+
<simple name="gmres-ortho" type="string" default="CGS">
26+
<description>GMRES ortho param</description>
27+
</simple>
1928
<simple name="solver" type="string" default="bcg">
2029
<description>gmres|cg|bcgs</description>
2130
</simple>

alien/ArcaneInterface/test/AlienBench/AlienBench-composyx-4P.arc

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<nsd>2 2 1</nsd>
2323
<lx nx="10">1.</lx>
2424
<ly ny="10">1.</ly>
25-
<lz nz="10">1.</lz>
25+
<lz nz="1">1.</lz>
2626
</cartesian>
2727
</meshgenerator>
2828
</mesh>

alien/ArcaneInterface/test/AlienBench/AlienBench-composyx-bcgs-4P.arc

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<nsd>2 2 1</nsd>
2323
<lx nx="10">1.</lx>
2424
<ly ny="10">1.</ly>
25-
<lz nz="10">1.</lz>
25+
<lz nz="1">1.</lz>
2626
</cartesian>
2727
</meshgenerator>
2828
</mesh>

alien/ArcaneInterface/test/AlienBench/AlienBench-composyx-bcgs.arc

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<nsd>1 1 1</nsd>
2323
<lx nx="10">1.</lx>
2424
<ly ny="10">1.</ly>
25-
<lz nz="10">1.</lz>
25+
<lz nz="1">1.</lz>
2626
</cartesian>
2727
</meshgenerator>
2828
</mesh>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?xml version='1.0' encoding='ISO-8859-1'?>
2+
<case codeversion="1.0" codename="AlienBench" xml:lang="en">
3+
<arcane>
4+
<title>Test unitaires des solveurs lineaires</title>
5+
<timeloop>BenchLoop</timeloop>
6+
</arcane>
7+
8+
<arcane-post-processing>
9+
<output-period>1</output-period>
10+
<output>
11+
<variable>U</variable>
12+
<variable>X</variable>
13+
<variable>K</variable>
14+
<variable>S</variable>
15+
</output>
16+
</arcane-post-processing>
17+
18+
<mesh>
19+
<meshgenerator>
20+
<cartesian>
21+
<origine>0. 0. 0.</origine>
22+
<nsd>2 2 1</nsd>
23+
<lx nx="10">1.</lx>
24+
<ly ny="10">1.</ly>
25+
<lz nz="1">1.</lz>
26+
</cartesian>
27+
</meshgenerator>
28+
</mesh>
29+
30+
31+
<alien-bench>
32+
<!-- big diagonal-coefficient keep diagonal dominant matrix -->
33+
<redistribution>false</redistribution>
34+
<homogeneous>true</homogeneous>
35+
<diagonal-coefficient>10.</diagonal-coefficient>
36+
<lambdax>0.125</lambdax>
37+
<lambday>0.25</lambday>
38+
<alpha>10.</alpha>
39+
<sigma>1000000.</sigma>
40+
<epsilon>0.01</epsilon>
41+
42+
<linear-solver name="ComposyxSolver">
43+
<solver>bcgs</solver>
44+
<preconditioner>none</preconditioner>
45+
<max-iteration-num>1000</max-iteration-num>
46+
<stop-criteria-value>1e-8</stop-criteria-value>
47+
<output-level>1</output-level>
48+
</linear-solver>
49+
50+
51+
</alien-bench>
52+
</case>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?xml version='1.0' encoding='ISO-8859-1'?>
2+
<case codeversion="1.0" codename="AlienBench" xml:lang="en">
3+
<arcane>
4+
<title>Test unitaires des solveurs lineaires</title>
5+
<timeloop>BenchLoop</timeloop>
6+
</arcane>
7+
8+
<arcane-post-processing>
9+
<output-period>1</output-period>
10+
<output>
11+
<variable>U</variable>
12+
<variable>X</variable>
13+
<variable>K</variable>
14+
<variable>S</variable>
15+
</output>
16+
</arcane-post-processing>
17+
18+
<mesh>
19+
<meshgenerator>
20+
<cartesian>
21+
<origine>0. 0. 0.</origine>
22+
<nsd>2 1 1</nsd>
23+
<lx nx="10">1.</lx>
24+
<ly ny="10">1.</ly>
25+
<lz nz="10">1.</lz>
26+
</cartesian>
27+
</meshgenerator>
28+
</mesh>
29+
30+
31+
<alien-bench>
32+
<!-- big diagonal-coefficient keep diagonal dominant matrix -->
33+
<redistribution>false</redistribution>
34+
<homogeneous>true</homogeneous>
35+
<diagonal-coefficient>10.</diagonal-coefficient>
36+
<lambdax>0.125</lambdax>
37+
<lambday>0.25</lambday>
38+
<alpha>10.</alpha>
39+
<sigma>1000000.</sigma>
40+
<epsilon>0.01</epsilon>
41+
42+
<linear-solver name="ComposyxSolver">
43+
<solver>bcgs</solver>
44+
<preconditioner>none</preconditioner>
45+
<max-iteration-num>1000</max-iteration-num>
46+
<stop-criteria-value>1e-8</stop-criteria-value>
47+
<output-level>1</output-level>
48+
</linear-solver>
49+
50+
51+
</alien-bench>
52+
</case>

alien/ArcaneInterface/test/AlienBench/AlienBench-composyx-gmres-4P.arc

+6-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<nsd>2 2 1</nsd>
2323
<lx nx="10">1.</lx>
2424
<ly ny="10">1.</ly>
25-
<lz nz="10">1.</lz>
25+
<lz nz="1">1.</lz>
2626
</cartesian>
2727
</meshgenerator>
2828
</mesh>
@@ -31,7 +31,8 @@
3131
<alien-bench>
3232
<!-- big diagonal-coefficient keep diagonal dominant matrix -->
3333
<redistribution>false</redistribution>
34-
<diagonal-coefficient>0.</diagonal-coefficient>
34+
<homogeneous>true</homogeneous>
35+
<diagonal-coefficient>10.</diagonal-coefficient>
3536
<lambdax>0.125</lambdax>
3637
<lambday>0.25</lambday>
3738
<alpha>10.</alpha>
@@ -40,8 +41,11 @@
4041

4142
<linear-solver name="ComposyxSolver">
4243
<solver>gmres</solver>
44+
<preconditioner>none</preconditioner>
4345
<max-iteration-num>1000</max-iteration-num>
4446
<stop-criteria-value>1e-8</stop-criteria-value>
47+
<gmres-restart>2</gmres-restart>
48+
<gmres-ortho>CGS</gmres-ortho>
4549
<output-level>1</output-level>
4650
</linear-solver>
4751

alien/ArcaneInterface/test/AlienBench/AlienBench-composyx-gmres.arc

+5-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
<alien-bench>
3232
<!-- big diagonal-coefficient keep diagonal dominant matrix -->
3333
<redistribution>false</redistribution>
34-
<diagonal-coefficient>0.</diagonal-coefficient>
34+
<homogeneous>true</homogeneous>
35+
<diagonal-coefficient>10.</diagonal-coefficient>
3536
<lambdax>0.125</lambdax>
3637
<lambday>0.25</lambday>
3738
<alpha>10.</alpha>
@@ -40,8 +41,11 @@
4041

4142
<linear-solver name="ComposyxSolver">
4243
<solver>gmres</solver>
44+
<preconditioner>none</preconditioner>
4345
<max-iteration-num>1000</max-iteration-num>
4446
<stop-criteria-value>1e-8</stop-criteria-value>
47+
<gmres-restart>2</gmres-restart>
48+
<gmres-ortho>CGS</gmres-ortho>
4549
<output-level>1</output-level>
4650
</linear-solver>
4751

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?xml version='1.0' encoding='ISO-8859-1'?>
2+
<case codeversion="1.0" codename="AlienBench" xml:lang="en">
3+
<arcane>
4+
<title>Test unitaires des solveurs lineaires</title>
5+
<timeloop>BenchLoop</timeloop>
6+
</arcane>
7+
8+
<arcane-post-processing>
9+
<output-period>1</output-period>
10+
<output>
11+
<variable>U</variable>
12+
<variable>X</variable>
13+
<variable>K</variable>
14+
<variable>S</variable>
15+
</output>
16+
</arcane-post-processing>
17+
18+
<mesh>
19+
<meshgenerator>
20+
<cartesian>
21+
<origine>0. 0. 0.</origine>
22+
<nsd>2 1 1</nsd>
23+
<lx nx="10">1.</lx>
24+
<ly ny="10">1.</ly>
25+
<lz nz="10">1.</lz>
26+
</cartesian>
27+
</meshgenerator>
28+
</mesh>
29+
30+
31+
<alien-bench>
32+
<!-- big diagonal-coefficient keep diagonal dominant matrix -->
33+
<redistribution>false</redistribution>
34+
<homogeneous>true</homogeneous>
35+
<diagonal-coefficient>10.</diagonal-coefficient>
36+
<lambdax>0.125</lambdax>
37+
<lambday>0.25</lambday>
38+
<alpha>10.</alpha>
39+
<sigma>1000000.</sigma>
40+
<epsilon>0.01</epsilon>
41+
42+
<linear-solver name="ComposyxSolver">
43+
<solver>gmres</solver>
44+
<preconditioner>none</preconditioner>
45+
<max-iteration-num>1000</max-iteration-num>
46+
<stop-criteria-value>1e-8</stop-criteria-value>
47+
<gmres-restart>10</gmres-restart>
48+
<gmres-ortho>CGS</gmres-ortho>
49+
<output-level>1</output-level>
50+
</linear-solver>
51+
52+
53+
</alien-bench>
54+
</case>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?xml version='1.0' encoding='ISO-8859-1'?>
2+
<case codeversion="1.0" codename="AlienBench" xml:lang="en">
3+
<arcane>
4+
<title>Test unitaires des solveurs lineaires</title>
5+
<timeloop>BenchLoop</timeloop>
6+
</arcane>
7+
8+
<arcane-post-processing>
9+
<output-period>1</output-period>
10+
<output>
11+
<variable>U</variable>
12+
<variable>X</variable>
13+
<variable>K</variable>
14+
<variable>S</variable>
15+
</output>
16+
</arcane-post-processing>
17+
18+
<mesh>
19+
<meshgenerator>
20+
<cartesian>
21+
<origine>0. 0. 0.</origine>
22+
<nsd>2 2 1</nsd>
23+
<lx nx="10">1.</lx>
24+
<ly ny="10">1.</ly>
25+
<lz nz="1">1.</lz>
26+
</cartesian>
27+
</meshgenerator>
28+
</mesh>
29+
30+
31+
<alien-bench>
32+
<!-- big diagonal-coefficient keep diagonal dominant matrix -->
33+
<redistribution>false</redistribution>
34+
<homogeneous>true</homogeneous>
35+
<diagonal-coefficient>10.</diagonal-coefficient>
36+
<lambdax>0.125</lambdax>
37+
<lambday>0.25</lambday>
38+
<alpha>10.</alpha>
39+
<sigma>1000000.</sigma>
40+
<epsilon>0.01</epsilon>
41+
42+
<linear-solver name="ComposyxSolver">
43+
<solver>gmres</solver>
44+
<preconditioner>as</preconditioner>
45+
<max-iteration-num>1000</max-iteration-num>
46+
<stop-criteria-value>1e-8</stop-criteria-value>
47+
<gmres-restart>2</gmres-restart>
48+
<gmres-zeta>-1</gmres-zeta>
49+
<gmres-ortho>CGS</gmres-ortho>
50+
<output-level>1</output-level>
51+
</linear-solver>
52+
53+
54+
</alien-bench>
55+
</case>

alien/ArcaneInterface/test/AlienBench/AlienBench-composyx.arc

+3-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<nsd>1 1 1</nsd>
2323
<lx nx="10">1.</lx>
2424
<ly ny="10">1.</ly>
25-
<lz nz="10">1.</lz>
25+
<lz nz="1">1.</lz>
2626
</cartesian>
2727
</meshgenerator>
2828
</mesh>
@@ -31,7 +31,8 @@
3131
<alien-bench>
3232
<!-- big diagonal-coefficient keep diagonal dominant matrix -->
3333
<redistribution>false</redistribution>
34-
<diagonal-coefficient>0.</diagonal-coefficient>
34+
<homogeneous>true</homogeneous>
35+
<diagonal-coefficient>10.</diagonal-coefficient>
3536
<lambdax>0.125</lambdax>
3637
<lambday>0.25</lambday>
3738
<alpha>10.</alpha>

0 commit comments

Comments
 (0)