Skip to content

Commit 5027f91

Browse files
committed
Style and change a few type to something more descriptive
1 parent 67b7e90 commit 5027f91

16 files changed

+79
-83
lines changed

palace/drivers/transientsolver.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,10 @@ std::function<double(double)> TransientSolver::GetTimeExcitation(bool dot) const
112112
MFEM_VERIFY(data.pulse_tau > 0.0,
113113
"Excitation width is missing for transient simulation!");
114114
}
115-
const double delay =
116-
(type == Excitation::GAUSSIAN || type == Excitation::DIFF_GAUSSIAN ||
117-
type == Excitation::MOD_GAUSSIAN)
118-
? 4.5 * data.pulse_tau
119-
: 0.0;
115+
const double delay = (type == Excitation::GAUSSIAN || type == Excitation::DIFF_GAUSSIAN ||
116+
type == Excitation::MOD_GAUSSIAN)
117+
? 4.5 * data.pulse_tau
118+
: 0.0;
120119
switch (type)
121120
{
122121
case Excitation::SINUSOIDAL:

palace/fem/coefficient.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -169,10 +169,9 @@ class BdrSurfaceFluxCoefficient : public mfem::Coefficient,
169169
: *B->ParFESpace()->GetParMesh()),
170170
E(E), B(B), mat_op(mat_op), two_sided(two_sided), x0(x0)
171171
{
172-
MFEM_VERIFY(
173-
(E || (Type != SurfaceFlux::ELECTRIC && Type != SurfaceFlux::POWER)) &&
174-
(B || (Type != SurfaceFlux::MAGNETIC && Type != SurfaceFlux::POWER)),
175-
"Missing E or B field grid function for surface flux coefficient!");
172+
MFEM_VERIFY((E || (Type != SurfaceFlux::ELECTRIC && Type != SurfaceFlux::POWER)) &&
173+
(B || (Type != SurfaceFlux::MAGNETIC && Type != SurfaceFlux::POWER)),
174+
"Missing E or B field grid function for surface flux coefficient!");
176175
}
177176

178177
double Eval(mfem::ElementTransformation &T, const mfem::IntegrationPoint &ip) override
@@ -250,8 +249,9 @@ inline void BdrSurfaceFluxCoefficient<SurfaceFlux::MAGNETIC>::GetLocalFlux(
250249
}
251250

252251
template <>
253-
inline void BdrSurfaceFluxCoefficient<SurfaceFlux::POWER>::GetLocalFlux(
254-
mfem::ElementTransformation &T, mfem::Vector &V) const
252+
inline void
253+
BdrSurfaceFluxCoefficient<SurfaceFlux::POWER>::GetLocalFlux(mfem::ElementTransformation &T,
254+
mfem::Vector &V) const
255255
{
256256
// Flux E x H = E x μ⁻¹ B.
257257
double W1_data[3], W2_data[3];

palace/fem/multigrid.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ namespace palace::fem
2222
// Construct sequence of FECollection objects.
2323
template <typename FECollection>
2424
inline std::vector<std::unique_ptr<FECollection>>
25-
ConstructFECollections(int p, int dim, int mg_max_levels,
26-
MultigridCoarsening mg_coarsen_type, bool mat_lor)
25+
ConstructFECollections(int p, int dim, int mg_max_levels, MultigridCoarsening mg_coarsening,
26+
bool mat_lor)
2727
{
2828
// If the solver will use a LOR preconditioner, we need to construct with a specific basis
2929
// type.
@@ -57,7 +57,7 @@ ConstructFECollections(int p, int dim, int mg_max_levels,
5757
{
5858
break;
5959
}
60-
switch (mg_coarsen_type)
60+
switch (mg_coarsening)
6161
{
6262
case MultigridCoarsening::LINEAR:
6363
p--;

palace/linalg/ksp.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ std::unique_ptr<IterativeSolver<OperType>> ConfigureKrylovSolver(const IoData &i
2828
{
2929
// Create the solver.
3030
std::unique_ptr<IterativeSolver<OperType>> ksp;
31-
const auto type = iodata.solver.linear.ksp_type;
31+
const auto type = iodata.solver.linear.krylov_solver;
3232
const int print = iodata.problem.verbose;
3333
switch (type)
3434
{
@@ -60,7 +60,7 @@ std::unique_ptr<IterativeSolver<OperType>> ConfigureKrylovSolver(const IoData &i
6060
ksp->SetMaxIter(iodata.solver.linear.max_it);
6161

6262
// Configure preconditioning side (only for GMRES).
63-
if (iodata.solver.linear.pc_side_type != PreconditionerSide::DEFAULT &&
63+
if (iodata.solver.linear.pc_side != PreconditionerSide::DEFAULT &&
6464
type != KrylovSolver::GMRES)
6565
{
6666
Mpi::Warning(comm,
@@ -71,7 +71,7 @@ std::unique_ptr<IterativeSolver<OperType>> ConfigureKrylovSolver(const IoData &i
7171
if (type == KrylovSolver::GMRES || type == KrylovSolver::FGMRES)
7272
{
7373
auto *gmres = static_cast<GmresSolver<OperType> *>(ksp.get());
74-
gmres->SetPreconditionerSide(iodata.solver.linear.pc_side_type);
74+
gmres->SetPreconditionerSide(iodata.solver.linear.pc_side);
7575
}
7676
}
7777

palace/linalg/mumps.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class MumpsSolver : public mfem::MUMPSSolver
3232
: iodata.solver.linear.complex_coarse_solve
3333
? mfem::MUMPSSolver::UNSYMMETRIC
3434
: mfem::MUMPSSolver::SYMMETRIC_INDEFINITE,
35-
iodata.solver.linear.sym_fact_type,
35+
iodata.solver.linear.sym_factorization,
3636
(iodata.solver.linear.strumpack_compression_type == SparseCompression::BLR)
3737
? iodata.solver.linear.strumpack_lr_tol
3838
: 0.0,

palace/linalg/strumpack.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class StrumpackSolverBase : public StrumpackSolverType
2929
int lossy_prec, int print);
3030

3131
StrumpackSolverBase(const IoData &iodata, MPI_Comm comm, int print)
32-
: StrumpackSolverBase(comm, iodata.solver.linear.sym_fact_type,
32+
: StrumpackSolverBase(comm, iodata.solver.linear.sym_factorization,
3333
iodata.solver.linear.strumpack_compression_type,
3434
iodata.solver.linear.strumpack_lr_tol,
3535
iodata.solver.linear.strumpack_butterfly_l,

palace/linalg/superlu.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class SuperLUSolver : public mfem::Solver
2929
public:
3030
SuperLUSolver(MPI_Comm comm, SymbolicFactorization reorder, bool use_3d, int print);
3131
SuperLUSolver(const IoData &iodata, MPI_Comm comm, int print)
32-
: SuperLUSolver(comm, iodata.solver.linear.sym_fact_type,
32+
: SuperLUSolver(comm, iodata.solver.linear.sym_factorization,
3333
iodata.solver.linear.superlu_3d, print)
3434
{
3535
}

palace/models/curlcurloperator.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ CurlCurlOperator::CurlCurlOperator(const IoData &iodata,
2424
: print_hdr(true), dbc_attr(SetUpBoundaryProperties(iodata, *mesh.back())),
2525
nd_fecs(fem::ConstructFECollections<mfem::ND_FECollection>(
2626
iodata.solver.order, mesh.back()->Dimension(), iodata.solver.linear.mg_max_levels,
27-
iodata.solver.linear.mg_coarsen_type, false)),
27+
iodata.solver.linear.mg_coarsening, false)),
2828
h1_fecs(fem::ConstructFECollections<mfem::H1_FECollection>(
2929
iodata.solver.order, mesh.back()->Dimension(), iodata.solver.linear.mg_max_levels,
30-
iodata.solver.linear.mg_coarsen_type, false)),
30+
iodata.solver.linear.mg_coarsening, false)),
3131
rt_fec(std::make_unique<mfem::RT_FECollection>(iodata.solver.order - 1,
3232
mesh.back()->Dimension())),
3333
nd_fespaces(fem::ConstructFiniteElementSpaceHierarchy<mfem::ND_FECollection>(

palace/models/laplaceoperator.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ LaplaceOperator::LaplaceOperator(const IoData &iodata,
2323
: print_hdr(true), dbc_attr(SetUpBoundaryProperties(iodata, *mesh.back())),
2424
h1_fecs(fem::ConstructFECollections<mfem::H1_FECollection>(
2525
iodata.solver.order, mesh.back()->Dimension(), iodata.solver.linear.mg_max_levels,
26-
iodata.solver.linear.mg_coarsen_type, false)),
26+
iodata.solver.linear.mg_coarsening, false)),
2727
nd_fec(std::make_unique<mfem::ND_FECollection>(iodata.solver.order,
2828
mesh.back()->Dimension())),
2929
rt_fecs(fem::ConstructFECollections<mfem::RT_FECollection>(
3030
iodata.solver.order - 1, mesh.back()->Dimension(),
3131
iodata.solver.linear.estimator_mg ? iodata.solver.linear.mg_max_levels : 1,
32-
iodata.solver.linear.mg_coarsen_type, false)),
32+
iodata.solver.linear.mg_coarsening, false)),
3333
h1_fespaces(fem::ConstructFiniteElementSpaceHierarchy<mfem::H1_FECollection>(
3434
iodata.solver.linear.mg_max_levels, mesh, h1_fecs, &dbc_attr, &dbc_tdof_lists)),
3535
nd_fespace(*mesh.back(), nd_fec.get()),

palace/models/spaceoperator.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ SpaceOperator::SpaceOperator(const IoData &iodata,
2929
print_prec_hdr(true), dbc_attr(SetUpBoundaryProperties(iodata, *mesh.back())),
3030
nd_fecs(fem::ConstructFECollections<mfem::ND_FECollection>(
3131
iodata.solver.order, mesh.back()->Dimension(), iodata.solver.linear.mg_max_levels,
32-
iodata.solver.linear.mg_coarsen_type, false)),
32+
iodata.solver.linear.mg_coarsening, false)),
3333
h1_fecs(fem::ConstructFECollections<mfem::H1_FECollection>(
3434
iodata.solver.order, mesh.back()->Dimension(), iodata.solver.linear.mg_max_levels,
35-
iodata.solver.linear.mg_coarsen_type, false)),
35+
iodata.solver.linear.mg_coarsening, false)),
3636
rt_fecs(fem::ConstructFECollections<mfem::RT_FECollection>(
3737
iodata.solver.order - 1, mesh.back()->Dimension(),
3838
iodata.solver.linear.estimator_mg ? iodata.solver.linear.mg_max_levels : 1,
39-
iodata.solver.linear.mg_coarsen_type, false)),
39+
iodata.solver.linear.mg_coarsening, false)),
4040
nd_fespaces(fem::ConstructFiniteElementSpaceHierarchy<mfem::ND_FECollection>(
4141
iodata.solver.linear.mg_max_levels, mesh, nd_fecs, &dbc_attr, &nd_dbc_tdof_lists)),
4242
h1_fespaces(fem::ConstructFiniteElementSpaceHierarchy<mfem::H1_FECollection>(

palace/models/surfacepostoperator.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -169,17 +169,17 @@ SurfacePostOperator::InterfaceDielectricData::GetCoefficient(
169169
InterfaceDielectricCoefficient<InterfaceDielectric::DEFAULT>>>(
170170
attr_list, E, mat_op, t, epsilon);
171171
case InterfaceDielectric::MA:
172-
return std::make_unique<RestrictedCoefficient<
173-
InterfaceDielectricCoefficient<InterfaceDielectric::MA>>>(attr_list, E,
174-
mat_op, t, epsilon);
172+
return std::make_unique<
173+
RestrictedCoefficient<InterfaceDielectricCoefficient<InterfaceDielectric::MA>>>(
174+
attr_list, E, mat_op, t, epsilon);
175175
case InterfaceDielectric::MS:
176-
return std::make_unique<RestrictedCoefficient<
177-
InterfaceDielectricCoefficient<InterfaceDielectric::MS>>>(attr_list, E,
178-
mat_op, t, epsilon);
176+
return std::make_unique<
177+
RestrictedCoefficient<InterfaceDielectricCoefficient<InterfaceDielectric::MS>>>(
178+
attr_list, E, mat_op, t, epsilon);
179179
case InterfaceDielectric::SA:
180-
return std::make_unique<RestrictedCoefficient<
181-
InterfaceDielectricCoefficient<InterfaceDielectric::SA>>>(attr_list, E,
182-
mat_op, t, epsilon);
180+
return std::make_unique<
181+
RestrictedCoefficient<InterfaceDielectricCoefficient<InterfaceDielectric::SA>>>(
182+
attr_list, E, mat_op, t, epsilon);
183183
}
184184
return {}; // For compiler warning
185185
}

palace/models/waveportoperator.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -659,8 +659,7 @@ WavePortData::WavePortData(const config::WavePortData &data,
659659
"different solver!");
660660
#endif
661661
}
662-
else if (pc_type == LinearSolver::STRUMPACK ||
663-
pc_type == LinearSolver::STRUMPACK_MP)
662+
else if (pc_type == LinearSolver::STRUMPACK || pc_type == LinearSolver::STRUMPACK_MP)
664663
{
665664
#if !defined(MFEM_USE_STRUMPACK)
666665
MFEM_ABORT("Solver was not built with STRUMPACK support, please choose a "
@@ -725,7 +724,7 @@ WavePortData::WavePortData(const config::WavePortData &data,
725724

726725
// Define the eigenvalue solver.
727726
constexpr int print = 0;
728-
EigenSolverBackend type = data.eigen_type;
727+
EigenSolverBackend type = data.eigen_solver;
729728
if (type == EigenSolverBackend::SLEPC)
730729
{
731730
#if !defined(PALACE_WITH_SLEPC)

palace/utils/configfile.cpp

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -71,26 +71,25 @@ PALACE_JSON_SERIALIZE_ENUM(ProblemType, {{ProblemType::DRIVEN, "Driven"},
7171

7272
// Helper for converting string keys to enum for EigenSolverBackend.
7373
PALACE_JSON_SERIALIZE_ENUM(EigenSolverBackend, {{EigenSolverBackend::DEFAULT, "Default"},
74-
{EigenSolverBackend::SLEPC, "SLEPc"},
75-
{EigenSolverBackend::ARPACK, "ARPACK"}})
74+
{EigenSolverBackend::SLEPC, "SLEPc"},
75+
{EigenSolverBackend::ARPACK, "ARPACK"}})
7676

77-
// Helper for converting string keys to enum for SurfaceFluxPostType.
77+
// Helper for converting string keys to enum for SurfaceFlux.
7878
PALACE_JSON_SERIALIZE_ENUM(SurfaceFlux, {{SurfaceFlux::ELECTRIC, "Electric"},
79-
{SurfaceFlux::MAGNETIC, "Magnetic"},
80-
{SurfaceFlux::POWER, "Power"}})
79+
{SurfaceFlux::MAGNETIC, "Magnetic"},
80+
{SurfaceFlux::POWER, "Power"}})
8181

8282
// Helper for converting string keys to enum for InterfaceDielectric.
83-
PALACE_JSON_SERIALIZE_ENUM(InterfaceDielectric,
84-
{{InterfaceDielectric::DEFAULT, "Default"},
85-
{InterfaceDielectric::MA, "MA"},
86-
{InterfaceDielectric::MS, "MS"},
87-
{InterfaceDielectric::SA, "SA"}})
83+
PALACE_JSON_SERIALIZE_ENUM(InterfaceDielectric, {{InterfaceDielectric::DEFAULT, "Default"},
84+
{InterfaceDielectric::MA, "MA"},
85+
{InterfaceDielectric::MS, "MS"},
86+
{InterfaceDielectric::SA, "SA"}})
8887

8988
// Helper for converting string keys to enum for FrequencySampling.
9089
PALACE_JSON_SERIALIZE_ENUM(FrequencySampling, {{FrequencySampling::DEFAULT, "Default"},
91-
{FrequencySampling::LINEAR, "Linear"},
92-
{FrequencySampling::LOG, "Log"},
93-
{FrequencySampling::POINT, "Point"}})
90+
{FrequencySampling::LINEAR, "Linear"},
91+
{FrequencySampling::LOG, "Log"},
92+
{FrequencySampling::POINT, "Point"}})
9493

9594
// Helper for converting string keys to enum for TimeSteppingScheme and Excitation.
9695
PALACE_JSON_SERIALIZE_ENUM(TimeSteppingScheme,
@@ -109,15 +108,14 @@ PALACE_JSON_SERIALIZE_ENUM(Excitation,
109108

110109
// Helper for converting string keys to enum for LinearSolver, KrylovSolver, and
111110
// MultigridCoarsening
112-
PALACE_JSON_SERIALIZE_ENUM(LinearSolver,
113-
{{LinearSolver::DEFAULT, "Default"},
114-
{LinearSolver::AMS, "AMS"},
115-
{LinearSolver::BOOMER_AMG, "BoomerAMG"},
116-
{LinearSolver::MUMPS, "MUMPS"},
117-
{LinearSolver::SUPERLU, "SuperLU"},
118-
{LinearSolver::STRUMPACK, "STRUMPACK"},
119-
{LinearSolver::STRUMPACK_MP, "STRUMPACK-MP"},
120-
{LinearSolver::JACOBI, "Jacobi"}})
111+
PALACE_JSON_SERIALIZE_ENUM(LinearSolver, {{LinearSolver::DEFAULT, "Default"},
112+
{LinearSolver::AMS, "AMS"},
113+
{LinearSolver::BOOMER_AMG, "BoomerAMG"},
114+
{LinearSolver::MUMPS, "MUMPS"},
115+
{LinearSolver::SUPERLU, "SuperLU"},
116+
{LinearSolver::STRUMPACK, "STRUMPACK"},
117+
{LinearSolver::STRUMPACK_MP, "STRUMPACK-MP"},
118+
{LinearSolver::JACOBI, "Jacobi"}})
121119
PALACE_JSON_SERIALIZE_ENUM(KrylovSolver, {{KrylovSolver::DEFAULT, "Default"},
122120
{KrylovSolver::CG, "CG"},
123121
{KrylovSolver::MINRES, "MINRES"},
@@ -1268,7 +1266,7 @@ void WavePortBoundaryData::SetUp(json &boundaries)
12681266
MFEM_VERIFY(data.mode_idx > 0,
12691267
"\"WavePort\" boundary \"Mode\" must be positive (1-based)!");
12701268
data.d_offset = it->value("Offset", data.d_offset);
1271-
data.eigen_type = it->value("SolverType", data.eigen_type);
1269+
data.eigen_solver = it->value("SolverType", data.eigen_solver);
12721270

12731271
data.excitation = ParsePortExcitation(it, data.excitation);
12741272
data.active = it->value("Active", data.active);
@@ -1300,7 +1298,7 @@ void WavePortBoundaryData::SetUp(json &boundaries)
13001298
std::cout << "Attributes: " << data.attributes << '\n';
13011299
std::cout << "Mode: " << data.mode_idx << '\n';
13021300
std::cout << "Offset: " << data.d_offset << '\n';
1303-
std::cout << "SolverType: " << data.eigen_type << '\n';
1301+
std::cout << "SolverType: " << data.eigen_solver << '\n';
13041302
std::cout << "Excitation: " << data.excitation << '\n';
13051303
std::cout << "Active: " << data.active << '\n';
13061304
std::cout << "MaxIts: " << data.ksp_max_its << '\n';
@@ -2113,15 +2111,15 @@ void LinearSolverData::SetUp(json &solver)
21132111
return;
21142112
}
21152113
type = linear->value("Type", type);
2116-
ksp_type = linear->value("KSPType", ksp_type);
2114+
krylov_solver = linear->value("KSPType", krylov_solver);
21172115
tol = linear->value("Tol", tol);
21182116
max_it = linear->value("MaxIts", max_it);
21192117
max_size = linear->value("MaxSize", max_size);
21202118
initial_guess = linear->value("InitialGuess", initial_guess);
21212119

21222120
// Options related to multigrid.
21232121
mg_max_levels = linear->value("MGMaxLevels", mg_max_levels);
2124-
mg_coarsen_type = linear->value("MGCoarsenType", mg_coarsen_type);
2122+
mg_coarsening = linear->value("MGCoarsenType", mg_coarsening);
21252123
mg_use_mesh = linear->value("MGUseMesh", mg_use_mesh);
21262124
mg_cycle_it = linear->value("MGCycleIts", mg_cycle_it);
21272125
mg_smooth_aux = linear->value("MGAuxiliarySmoother", mg_smooth_aux);
@@ -2135,8 +2133,8 @@ void LinearSolverData::SetUp(json &solver)
21352133
pc_mat_real = linear->value("PCMatReal", pc_mat_real);
21362134
pc_mat_shifted = linear->value("PCMatShifted", pc_mat_shifted);
21372135
complex_coarse_solve = linear->value("ComplexCoarseSolve", complex_coarse_solve);
2138-
pc_side_type = linear->value("PCSide", pc_side_type);
2139-
sym_fact_type = linear->value("ColumnOrdering", sym_fact_type);
2136+
pc_side = linear->value("PCSide", pc_side);
2137+
sym_factorization = linear->value("ColumnOrdering", sym_factorization);
21402138
strumpack_compression_type =
21412139
linear->value("STRUMPACKCompressionType", strumpack_compression_type);
21422140
strumpack_lr_tol = linear->value("STRUMPACKCompressionTol", strumpack_lr_tol);
@@ -2203,14 +2201,14 @@ void LinearSolverData::SetUp(json &solver)
22032201
if constexpr (JSON_DEBUG)
22042202
{
22052203
std::cout << "Type: " << type << '\n';
2206-
std::cout << "KSPType: " << ksp_type << '\n';
2204+
std::cout << "KSPType: " << krylov_solver << '\n';
22072205
std::cout << "Tol: " << tol << '\n';
22082206
std::cout << "MaxIts: " << max_it << '\n';
22092207
std::cout << "MaxSize: " << max_size << '\n';
22102208
std::cout << "InitialGuess: " << initial_guess << '\n';
22112209

22122210
std::cout << "MGMaxLevels: " << mg_max_levels << '\n';
2213-
std::cout << "MGCoarsenType: " << mg_coarsen_type << '\n';
2211+
std::cout << "MGCoarsenType: " << mg_coarsening << '\n';
22142212
std::cout << "MGUseMesh: " << mg_use_mesh << '\n';
22152213
std::cout << "MGCycleIts: " << mg_cycle_it << '\n';
22162214
std::cout << "MGAuxiliarySmoother: " << mg_smooth_aux << '\n';
@@ -2223,8 +2221,8 @@ void LinearSolverData::SetUp(json &solver)
22232221
std::cout << "PCMatReal: " << pc_mat_real << '\n';
22242222
std::cout << "PCMatShifted: " << pc_mat_shifted << '\n';
22252223
std::cout << "ComplexCoarseSolve: " << complex_coarse_solve << '\n';
2226-
std::cout << "PCSide: " << pc_side_type << '\n';
2227-
std::cout << "ColumnOrdering: " << sym_fact_type << '\n';
2224+
std::cout << "PCSide: " << pc_side << '\n';
2225+
std::cout << "ColumnOrdering: " << sym_factorization << '\n';
22282226
std::cout << "STRUMPACKCompressionType: " << strumpack_compression_type << '\n';
22292227
std::cout << "STRUMPACKCompressionTol: " << strumpack_lr_tol << '\n';
22302228
std::cout << "STRUMPACKLossyPrecision: " << strumpack_lossy_precision << '\n';

0 commit comments

Comments
 (0)