From 7c5c33c304a50339a3b121f4a9dd3ec6c0c6876d Mon Sep 17 00:00:00 2001
From: Andrea Mola
Date: Tue, 19 Nov 2024 10:37:14 +0100
Subject: [PATCH 1/5] implemented changes to move to deal.II version 9.6.0
---
include/bem_fma.h | 12 +++----
include/bem_problem.h | 16 +++++-----
include/boundary_conditions.h | 2 +-
include/constrained_matrix.h | 6 ++--
include/laplace_kernel.h | 6 ++--
include/local_expansion.h | 2 +-
include/local_expansion_coeff.h | 4 +--
include/multipole_expansion.h | 4 +--
include/singular_kernel_integral.h | 13 ++++----
include/true_constrained_matrix.h | 10 +++---
source/bem_fma.cc | 32 +++++++++----------
source/bem_problem.cc | 16 +++++-----
source/computational_domain.cc | 1 -
source/local_expansion.cc | 2 +-
source/local_expansion_coeff.cc | 2 +-
source/multipole_expansion.cc | 4 +--
source/singular_kernel_integral.cc | 12 +++----
tests/local_expansion_copy.cc | 2 +-
...local_expansion_creation_and_evaluation.cc | 2 +-
tests/local_expansion_translation.cc | 2 +-
tests/multipole_expansion_copy.cc | 2 +-
...ipole_expansion_creation_and_evaluation.cc | 2 +-
..._creation_and_evaluation_neumann_kernel.cc | 2 +-
tests/multipole_expansion_translation.cc | 2 +-
tests/vectorial_dof_handler_64_bits.cc | 2 +-
...ler_64_bits.with_64bit_indices=true.output | 1 -
26 files changed, 79 insertions(+), 82 deletions(-)
diff --git a/include/bem_fma.h b/include/bem_fma.h
index 38881e4..db6bca5 100644
--- a/include/bem_fma.h
+++ b/include/bem_fma.h
@@ -98,10 +98,10 @@ class BEMFMA : public ParameterAcceptor
/// Mapping in the BEMFMA class. It also sets up some useful vector for,
/// mixed boundary conditions and double nodes handling.
void
- init_fma(const DoFHandler & input_dh,
+ init_fma(const DoFHandler &input_dh,
const std::vector> &db_in,
- const TrilinosWrappers::MPI::Vector & input_sn,
- const Mapping & input_mapping =
+ const TrilinosWrappers::MPI::Vector &input_sn,
+ const Mapping &input_mapping =
StaticMappingQ1::mapping,
unsigned int quad_order = 4,
unsigned int sing_quad_order = 5);
@@ -173,8 +173,8 @@ class BEMFMA : public ParameterAcceptor
multipole_matr_vect_products(
const TrilinosWrappers::MPI::Vector &phi_values,
const TrilinosWrappers::MPI::Vector &dphi_dn_values,
- TrilinosWrappers::MPI::Vector & matrVectProdN,
- TrilinosWrappers::MPI::Vector & matrVectProdD) const;
+ TrilinosWrappers::MPI::Vector &matrVectProdN,
+ TrilinosWrappers::MPI::Vector &matrVectProdD) const;
// void compute_m2l_flags();
@@ -209,7 +209,7 @@ class BEMFMA : public ParameterAcceptor
/// architectures.
TrilinosWrappers::PreconditionILU &
FMA_preconditioner(const TrilinosWrappers::MPI::Vector &alpha,
- AffineConstraints & c);
+ AffineConstraints &c);
protected:
/// Three pointers to the problem parameters to be set equal to
diff --git a/include/bem_problem.h b/include/bem_problem.h
index 2f7982a..6995a33 100644
--- a/include/bem_problem.h
+++ b/include/bem_problem.h
@@ -126,8 +126,8 @@ class BEMProblem : public ParameterAcceptor
const MPI_Comm comm = MPI_COMM_WORLD);
void
- solve(TrilinosWrappers::MPI::Vector & phi,
- TrilinosWrappers::MPI::Vector & dphi_dn,
+ solve(TrilinosWrappers::MPI::Vector &phi,
+ TrilinosWrappers::MPI::Vector &dphi_dn,
const TrilinosWrappers::MPI::Vector &tmp_rhs);
/// This function takes care of the proper initialization of all the elements
@@ -151,8 +151,8 @@ class BEMProblem : public ParameterAcceptor
/// have kept this function serial. We stress that it needs to be called only
/// once.
void
- compute_constraints(IndexSet & c_cpu_set,
- AffineConstraints & constraints,
+ compute_constraints(IndexSet &c_cpu_set,
+ AffineConstraints &constraints,
const TrilinosWrappers::MPI::Vector &tmp_rhs);
// private:
@@ -198,7 +198,7 @@ class BEMProblem : public ParameterAcceptor
/// vector src. The result is stored
/// in the vector dst.
void
- vmult(TrilinosWrappers::MPI::Vector & dst,
+ vmult(TrilinosWrappers::MPI::Vector &dst,
const TrilinosWrappers::MPI::Vector &src) const;
/// The second method computes the
@@ -206,7 +206,7 @@ class BEMProblem : public ParameterAcceptor
/// system.
void
- compute_rhs(TrilinosWrappers::MPI::Vector & dst,
+ compute_rhs(TrilinosWrappers::MPI::Vector &dst,
const TrilinosWrappers::MPI::Vector &src) const;
/// The third method computes the
@@ -223,8 +223,8 @@ class BEMProblem : public ParameterAcceptor
/// Depending on the resolution stategy we go whether for the direct or fma
/// strategy.
void
- solve_system(TrilinosWrappers::MPI::Vector & phi,
- TrilinosWrappers::MPI::Vector & dphi_dn,
+ solve_system(TrilinosWrappers::MPI::Vector &phi,
+ TrilinosWrappers::MPI::Vector &dphi_dn,
const TrilinosWrappers::MPI::Vector &tmp_rhs);
diff --git a/include/boundary_conditions.h b/include/boundary_conditions.h
index eba23c3..87702c1 100644
--- a/include/boundary_conditions.h
+++ b/include/boundary_conditions.h
@@ -77,7 +77,7 @@ class BoundaryConditions : public ParameterAcceptor
{
public:
BoundaryConditions(ComputationalDomain &comp_dom,
- BEMProblem & bem,
+ BEMProblem &bem,
const MPI_Comm comm = MPI_COMM_WORLD)
: wind(dim)
, comp_dom(comp_dom)
diff --git a/include/constrained_matrix.h b/include/constrained_matrix.h
index 8c79544..6bf2c06 100644
--- a/include/constrained_matrix.h
+++ b/include/constrained_matrix.h
@@ -52,9 +52,9 @@ template
class ConstrainedOperator
{
public:
- ConstrainedOperator(const MATRIX & m,
+ ConstrainedOperator(const MATRIX &m,
const AffineConstraints &c,
- const IndexSet & c_cpu_set,
+ const IndexSet &c_cpu_set,
MPI_Comm comm = MPI_COMM_WORLD)
: constraints(c)
, matrix(m)
@@ -74,7 +74,7 @@ class ConstrainedOperator
private:
const AffineConstraints &constraints;
- const MATRIX & matrix;
+ const MATRIX &matrix;
const IndexSet constr_cpu_set;
MPI_Comm mpi_communicator;
unsigned int n_mpi_processes;
diff --git a/include/laplace_kernel.h b/include/laplace_kernel.h
index bdb213f..ac8e6c4 100644
--- a/include/laplace_kernel.h
+++ b/include/laplace_kernel.h
@@ -112,9 +112,9 @@ namespace LaplaceKernel
template // mio//
void
kernels(const Tensor<1, dim> &R,
- Tensor<2, dim> & H,
- Tensor<1, dim> & D,
- double & d)
+ Tensor<2, dim> &H,
+ Tensor<1, dim> &D,
+ double &d)
{
double r = R.norm();
double r2 = r * r;
diff --git a/include/local_expansion.h b/include/local_expansion.h
index 23c205d..c27c927 100644
--- a/include/local_expansion.h
+++ b/include/local_expansion.h
@@ -44,7 +44,7 @@ class LocalExpansion
LocalExpansion(const unsigned int order,
const dealii::Point<3> ¢er,
- const AssLegFunction * assLegFunction);
+ const AssLegFunction *assLegFunction);
LocalExpansion(const LocalExpansion &other);
diff --git a/include/local_expansion_coeff.h b/include/local_expansion_coeff.h
index 5864a64..4d5499c 100644
--- a/include/local_expansion_coeff.h
+++ b/include/local_expansion_coeff.h
@@ -31,7 +31,7 @@ class LocalExpansionCoeff
const unsigned int &m,
const unsigned int &nn,
const unsigned int &mm,
- const double & value);
+ const double &value);
unsigned int
getNumberOfElements();
unsigned int
@@ -49,7 +49,7 @@ class LocalExpansionCoeff
private:
unsigned int _p;
- double * _coeff;
+ double *_coeff;
};
#endif /* LOCALEXPANSIONCOEFF_HPP */
diff --git a/include/multipole_expansion.h b/include/multipole_expansion.h
index dd96141..43f49ad 100644
--- a/include/multipole_expansion.h
+++ b/include/multipole_expansion.h
@@ -51,7 +51,7 @@ class MultipoleExpansion
MultipoleExpansion(const unsigned int order,
const dealii::Point<3> ¢er,
- const AssLegFunction * assLegFunction);
+ const AssLegFunction *assLegFunction);
MultipoleExpansion(const MultipoleExpansion &other);
@@ -68,7 +68,7 @@ class MultipoleExpansion
void
AddNormDer(const double strength,
- const dealii::Point<3> & point,
+ const dealii::Point<3> &point,
const dealii::Tensor<1, 3> &normal);
double
diff --git a/include/singular_kernel_integral.h b/include/singular_kernel_integral.h
index 5718afd..6c5038f 100644
--- a/include/singular_kernel_integral.h
+++ b/include/singular_kernel_integral.h
@@ -33,7 +33,6 @@
#include
// Here are some functions to generate standard grids:
#include
-#include
#include
// Output of grids in various graphics formats:
@@ -60,9 +59,9 @@ class SingularKernelIntegral
public:
SingularKernelIntegral(
const typename DoFHandler::active_cell_iterator &in_cell,
- const FiniteElement & in_fe,
- const Mapping & in_mapping,
- const Point & in_eta);
+ const FiniteElement &in_fe,
+ const Mapping &in_mapping,
+ const Point &in_eta);
@@ -80,9 +79,9 @@ class SingularKernelIntegral
private:
const typename DoFHandler::active_cell_iterator &cell;
- const FiniteElement & fe;
- const Mapping & mapping;
- const Point & eta;
+ const FiniteElement &fe;
+ const Mapping &mapping;
+ const Point η
// to be read from input file
unsigned int rho_quadrature_order = 4;
unsigned int theta_quadrature_order = 20;
diff --git a/include/true_constrained_matrix.h b/include/true_constrained_matrix.h
index 8cbd358..cf26847 100644
--- a/include/true_constrained_matrix.h
+++ b/include/true_constrained_matrix.h
@@ -50,9 +50,9 @@ template
class ConstrainedOperator
{
public:
- ConstrainedOperator(const MATRIX & m,
+ ConstrainedOperator(const MATRIX &m,
const AffineConstraints &c,
- const IndexSet & c_cpu_set,
+ const IndexSet &c_cpu_set,
MPI_Comm comm = MPI_COMM_WORLD)
: cm(c)
, matrix(m)
@@ -82,7 +82,7 @@ class ConstrainedOperator
private:
const AffineConstraints &cm;
- const MATRIX & matrix;
+ const MATRIX &matrix;
const IndexSet constr_cpu_set;
AffineConstraints cmt;
MPI_Comm mpi_communicator;
@@ -112,7 +112,7 @@ class ConstrainedOperator
template
void
-ConstrainedOperator::constraint_vmult(VEC & dst,
+ConstrainedOperator::constraint_vmult(VEC &dst,
const VEC &src) const
{
VEC loc_src(src.locally_owned_elements(), constr_cpu_set, mpi_communicator);
@@ -141,7 +141,7 @@ ConstrainedOperator::constraint_vmult(VEC & dst,
template
void
-ConstrainedOperator::constraint_tvmult(VEC & dst,
+ConstrainedOperator::constraint_tvmult(VEC &dst,
const VEC &src) const
{
VEC loc_dst(constr_cpu_set);
diff --git a/source/bem_fma.cc b/source/bem_fma.cc
index 83b3e9b..a584ee9 100644
--- a/source/bem_fma.cc
+++ b/source/bem_fma.cc
@@ -47,10 +47,10 @@ BEMFMA::~BEMFMA()
template
void
BEMFMA::init_fma(
- const DoFHandler & input_dh,
+ const DoFHandler &input_dh,
const std::vector> &db_in,
- const TrilinosWrappers::MPI::Vector & input_sn,
- const Mapping & input_mapping,
+ const TrilinosWrappers::MPI::Vector &input_sn,
+ const Mapping &input_mapping,
unsigned int quad_order,
unsigned int sing_quad_order)
{
@@ -735,7 +735,7 @@ BEMFMA::direct_integrals()
auto f_worker_direct_childless_non_int_list =
[this](typename std::vector::iterator block_it,
DirectScratchData &,
- DirectCopyData & copy_data,
+ DirectCopyData ©_data,
const std::vector> &support_points,
std::vector> &sing_quadratures) {
// pcout<<"processing block "<::direct_integrals()
auto f_worker_direct_bigger_blocks =
[this](typename std::vector::iterator block_it,
DirectScratchData &,
- DirectCopyData & copy_data,
+ DirectCopyData ©_data,
const std::vector> &support_points,
types::global_dof_index startBlockLevel) {
copy_data.vec_local_dof_indices.resize(0);
@@ -1124,7 +1124,7 @@ BEMFMA::direct_integrals()
copy_data.vec_start_helper.resize(0);
types::global_dof_index blockId = *block_it;
- OctreeBlock * block1 = this->blocks[blockId];
+ OctreeBlock *block1 = this->blocks[blockId];
const std::vector &nodesBlk1Ids =
block1->GetBlockNodeList();
types::global_dof_index helper_index = 0;
@@ -1824,7 +1824,7 @@ BEMFMA::multipole_integrals()
MultipoleData ©_data) //, const unsigned int dofs_per_cell)
{
types::global_dof_index blockId = *blocky;
- OctreeBlock * block = this->blocks[blockId];
+ OctreeBlock *block = this->blocks[blockId];
double delta = block->GetDelta();
Point deltaHalf;
for (unsigned int i = 0; i < dim; i++)
@@ -2231,7 +2231,7 @@ BEMFMA::generate_multipole_expansions(
// for each block we get the center and the quad points
types::global_dof_index blockId = childlessList[kk];
- OctreeBlock * block = blocks[blockId];
+ OctreeBlock *block = blocks[blockId];
double delta = blocks[blockId]->GetDelta();
Point deltaHalf;
@@ -2447,7 +2447,7 @@ BEMFMA::generate_multipole_expansions(
auto f_worker_ascend =
[this](typename std::vector *>::iterator block_it,
AscendScratchData &,
- AscendCopyData & copy_data,
+ AscendCopyData ©_data,
types::global_dof_index start) {
types::global_dof_index kk =
std::distance(this->blocks.begin(), block_it);
@@ -2571,8 +2571,8 @@ void
BEMFMA::multipole_matr_vect_products(
const TrilinosWrappers::MPI::Vector &phi_values,
const TrilinosWrappers::MPI::Vector &dphi_dn_values,
- TrilinosWrappers::MPI::Vector & matrVectProdN,
- TrilinosWrappers::MPI::Vector & matrVectProdD) const
+ TrilinosWrappers::MPI::Vector &matrVectProdN,
+ TrilinosWrappers::MPI::Vector &matrVectProdD) const
{
pcout << "Computing multipole matrix-vector products... " << std::endl;
Teuchos::TimeMonitor LocalTimer(*MatrVec);
@@ -2734,7 +2734,7 @@ BEMFMA::multipole_matr_vect_products(
std::vector::const_iterator
block_it_id,
DescendScratchData &,
- DescendCopyData & copy_data,
+ DescendCopyData ©_data,
const types::global_dof_index start) {
// types::global_dof_index kk = std::distance(this->blocks.begin(),
// block_it);
@@ -2743,7 +2743,7 @@ BEMFMA::multipole_matr_vect_products(
copy_data.start = start;
copy_data.blockId = *block_it_id;
types::global_dof_index kk = *block_it_id;
- OctreeBlock * block_it;
+ OctreeBlock *block_it;
block_it = this->blocks[*block_it_id];
// copy_data.local_level_indices[kk] = start + kk;
//*****************definire chi e' on_process qui
@@ -3169,7 +3169,7 @@ BEMFMA::multipole_matr_vect_products(
for (types::global_dof_index kk = r.begin(); kk < r.end(); ++kk)
{
types::global_dof_index block1Id = childlessList[kk];
- OctreeBlock * block1 = blocks[block1Id];
+ OctreeBlock *block1 = blocks[block1Id];
std::vector nodesBlk1Ids =
block1->GetBlockNodeList();
@@ -3291,7 +3291,7 @@ template
TrilinosWrappers::PreconditionILU &
BEMFMA::FMA_preconditioner(
const TrilinosWrappers::MPI::Vector &alpha,
- AffineConstraints & c) // TO BE CHANGED!!!
+ AffineConstraints &c) // TO BE CHANGED!!!
{
Teuchos::TimeMonitor LocalTimer(*PrecondTime);
// the final preconditioner (with constraints) has a slightly different
@@ -4635,7 +4635,7 @@ BEMFMA::generate_octree_blocking()
// neigh: let's check
{
types::global_dof_index block2Id = *pos;
- OctreeBlock * block2 = blocks[block2Id];
+ OctreeBlock *block2 = blocks[block2Id];
double delta2 = block2->GetDelta();
Point PMin2 = block2->GetPMin();
Point Center2;
diff --git a/source/bem_problem.cc b/source/bem_problem.cc
index 0c4e5b4..5c38cc1 100644
--- a/source/bem_problem.cc
+++ b/source/bem_problem.cc
@@ -1588,7 +1588,7 @@ BEMProblem::compute_alpha()
template
void
-BEMProblem::vmult(TrilinosWrappers::MPI::Vector & dst,
+BEMProblem::vmult(TrilinosWrappers::MPI::Vector &dst,
const TrilinosWrappers::MPI::Vector &src) const
{
serv_phi = src;
@@ -1648,7 +1648,7 @@ BEMProblem::vmult(TrilinosWrappers::MPI::Vector & dst,
template
void
-BEMProblem::compute_rhs(TrilinosWrappers::MPI::Vector & dst,
+BEMProblem::compute_rhs(TrilinosWrappers::MPI::Vector &dst,
const TrilinosWrappers::MPI::Vector &src) const
{
serv_phi = src;
@@ -1698,8 +1698,8 @@ BEMProblem::compute_rhs(TrilinosWrappers::MPI::Vector & dst,
// the linear system.
template
void
-BEMProblem::solve_system(TrilinosWrappers::MPI::Vector & phi,
- TrilinosWrappers::MPI::Vector & dphi_dn,
+BEMProblem::solve_system(TrilinosWrappers::MPI::Vector &phi,
+ TrilinosWrappers::MPI::Vector &dphi_dn,
const TrilinosWrappers::MPI::Vector &tmp_rhs)
{
Teuchos::TimeMonitor LocalTimer(*LacSolveTime);
@@ -1834,8 +1834,8 @@ BEMProblem::solve_system(TrilinosWrappers::MPI::Vector & phi,
// either in a direct or multipole method
template
void
-BEMProblem::solve(TrilinosWrappers::MPI::Vector & phi,
- TrilinosWrappers::MPI::Vector & dphi_dn,
+BEMProblem::solve(TrilinosWrappers::MPI::Vector &phi,
+ TrilinosWrappers::MPI::Vector &dphi_dn,
const TrilinosWrappers::MPI::Vector &tmp_rhs)
{
if (solution_method == "Direct")
@@ -1861,8 +1861,8 @@ BEMProblem::solve(TrilinosWrappers::MPI::Vector & phi,
template
void
BEMProblem::compute_constraints(
- IndexSet & c_cpu_set,
- AffineConstraints & c,
+ IndexSet &c_cpu_set,
+ AffineConstraints &c,
const TrilinosWrappers::MPI::Vector &tmp_rhs)
{
diff --git a/source/computational_domain.cc b/source/computational_domain.cc
index f2af7d9..830fd2c 100644
--- a/source/computational_domain.cc
+++ b/source/computational_domain.cc
@@ -2,7 +2,6 @@
#include "../include/computational_domain.h"
-#include
#include
using namespace std;
diff --git a/source/local_expansion.cc b/source/local_expansion.cc
index 4c982c5..815c24c 100644
--- a/source/local_expansion.cc
+++ b/source/local_expansion.cc
@@ -28,7 +28,7 @@ LocalExpansion::LocalExpansion()
LocalExpansion::LocalExpansion(const unsigned int order,
const dealii::Point<3> ¢er,
- const AssLegFunction * assLegFunction)
+ const AssLegFunction *assLegFunction)
{
this->p = order;
diff --git a/source/local_expansion_coeff.cc b/source/local_expansion_coeff.cc
index d252569..c1eea65 100644
--- a/source/local_expansion_coeff.cc
+++ b/source/local_expansion_coeff.cc
@@ -58,7 +58,7 @@ LocalExpansionCoeff::set(const unsigned int &n,
const unsigned int &m,
const unsigned int &nn,
const unsigned int &mm,
- const double & value)
+ const double &value)
{
_coeff[(mm + nn) + getNNOffset(nn) + getMOffset(m) + getNOffset(n)] = value;
}
diff --git a/source/multipole_expansion.cc b/source/multipole_expansion.cc
index fece5b8..fe25d27 100644
--- a/source/multipole_expansion.cc
+++ b/source/multipole_expansion.cc
@@ -22,7 +22,7 @@ MultipoleExpansion::MultipoleExpansion()
MultipoleExpansion::MultipoleExpansion(const unsigned int order,
const dealii::Point<3> ¢er,
- const AssLegFunction * assLegFunction)
+ const AssLegFunction *assLegFunction)
{
this->p = order;
@@ -121,7 +121,7 @@ MultipoleExpansion::Add(const double strength, const dealii::Point<3> &point)
void
MultipoleExpansion::AddNormDer(const double strength,
- const dealii::Point<3> & point,
+ const dealii::Point<3> &point,
const dealii::Tensor<1, 3> &normal)
{
diff --git a/source/singular_kernel_integral.cc b/source/singular_kernel_integral.cc
index 64a4546..2f95593 100644
--- a/source/singular_kernel_integral.cc
+++ b/source/singular_kernel_integral.cc
@@ -4,9 +4,9 @@
template <>
SingularKernelIntegral<3>::SingularKernelIntegral(
const DoFHandler<2, 3>::active_cell_iterator &in_cell,
- const FiniteElement<2, 3> & in_fe,
- const Mapping<2, 3> & in_mapping,
- const Point<2> & in_eta)
+ const FiniteElement<2, 3> &in_fe,
+ const Mapping<2, 3> &in_mapping,
+ const Point<2> &in_eta)
: cell(in_cell)
, fe(in_fe)
, mapping(in_mapping)
@@ -16,9 +16,9 @@ SingularKernelIntegral<3>::SingularKernelIntegral(
template <>
SingularKernelIntegral<2>::SingularKernelIntegral(
const DoFHandler<1, 2>::active_cell_iterator &in_cell,
- const FiniteElement<1, 2> & in_fe,
- const Mapping<1, 2> & in_mapping,
- const Point<1> & in_eta)
+ const FiniteElement<1, 2> &in_fe,
+ const Mapping<1, 2> &in_mapping,
+ const Point<1> &in_eta)
: cell(in_cell)
, fe(in_fe)
, mapping(in_mapping)
diff --git a/tests/local_expansion_copy.cc b/tests/local_expansion_copy.cc
index a0af360..408d791 100644
--- a/tests/local_expansion_copy.cc
+++ b/tests/local_expansion_copy.cc
@@ -58,7 +58,7 @@ main()
// we define the center, order of truncation and associated laplace functions
// needed to construct the MultipoleExpansion class object
Point<3> center(3.0, 3.0, 3.0);
- AssLegFunction * alf_ptr = new AssLegFunction();
+ AssLegFunction *alf_ptr = new AssLegFunction();
unsigned int truncation_order = 6;
MultipoleExpansion multipole(truncation_order, center, alf_ptr);
diff --git a/tests/local_expansion_creation_and_evaluation.cc b/tests/local_expansion_creation_and_evaluation.cc
index 5eae09a..36d0ce0 100644
--- a/tests/local_expansion_creation_and_evaluation.cc
+++ b/tests/local_expansion_creation_and_evaluation.cc
@@ -61,7 +61,7 @@ main()
// we define the center, order of truncation and associated laplace functions
// needed to construct the MultipoleExpansion class object
Point<3> center(3.0, 3.0, 3.0);
- AssLegFunction * alf_ptr = new AssLegFunction();
+ AssLegFunction *alf_ptr = new AssLegFunction();
unsigned int truncation_order = 6;
MultipoleExpansion multipole(truncation_order, center, alf_ptr);
diff --git a/tests/local_expansion_translation.cc b/tests/local_expansion_translation.cc
index 035d80b..b672925 100644
--- a/tests/local_expansion_translation.cc
+++ b/tests/local_expansion_translation.cc
@@ -61,7 +61,7 @@ main()
// we define the center, order of truncation and associated laplace functions
// needed to construct the MultipoleExpansion class object
Point<3> center(3.0, 3.0, 3.0);
- AssLegFunction * alf_ptr = new AssLegFunction();
+ AssLegFunction *alf_ptr = new AssLegFunction();
unsigned int truncation_order = 6;
MultipoleExpansion multipole(truncation_order, center, alf_ptr);
diff --git a/tests/multipole_expansion_copy.cc b/tests/multipole_expansion_copy.cc
index 03a9dae..1221a3d 100644
--- a/tests/multipole_expansion_copy.cc
+++ b/tests/multipole_expansion_copy.cc
@@ -55,7 +55,7 @@ main()
// we define the center, order of truncation and associated laplace functions
// needed to construct the MultipoleExpansion class object
Point<3> center(3.0, 3.0, 3.0);
- AssLegFunction * alf_ptr = new AssLegFunction();
+ AssLegFunction *alf_ptr = new AssLegFunction();
unsigned int truncation_order = 6;
MultipoleExpansion multipole(truncation_order, center, alf_ptr);
diff --git a/tests/multipole_expansion_creation_and_evaluation.cc b/tests/multipole_expansion_creation_and_evaluation.cc
index f9c7c1b..1560398 100644
--- a/tests/multipole_expansion_creation_and_evaluation.cc
+++ b/tests/multipole_expansion_creation_and_evaluation.cc
@@ -59,7 +59,7 @@ main()
// we define the center, order of truncation and associated laplace functions
// needed to construct the MultipoleExpansion class object
Point<3> center(3.0, 3.0, 3.0);
- AssLegFunction * alf_ptr = new AssLegFunction();
+ AssLegFunction *alf_ptr = new AssLegFunction();
unsigned int truncation_order = 6;
MultipoleExpansion multipole(truncation_order, center, alf_ptr);
diff --git a/tests/multipole_expansion_creation_and_evaluation_neumann_kernel.cc b/tests/multipole_expansion_creation_and_evaluation_neumann_kernel.cc
index fb33be4..4cea74a 100644
--- a/tests/multipole_expansion_creation_and_evaluation_neumann_kernel.cc
+++ b/tests/multipole_expansion_creation_and_evaluation_neumann_kernel.cc
@@ -70,7 +70,7 @@ main()
// we define the center, order of truncation and associated laplace functions
// needed to construct the MultipoleExpansion class object
Point<3> center(3.0, 3.0, 3.0);
- AssLegFunction * alf_ptr = new AssLegFunction();
+ AssLegFunction *alf_ptr = new AssLegFunction();
unsigned int truncation_order = 6;
MultipoleExpansion multipole(truncation_order, center, alf_ptr);
diff --git a/tests/multipole_expansion_translation.cc b/tests/multipole_expansion_translation.cc
index c461089..a6513cf 100644
--- a/tests/multipole_expansion_translation.cc
+++ b/tests/multipole_expansion_translation.cc
@@ -59,7 +59,7 @@ main()
// we define the center, order of truncation and associated laplace functions
// needed to construct the MultipoleExpansion class object
Point<3> center(3.0, 3.0, 3.0);
- AssLegFunction * alf_ptr = new AssLegFunction();
+ AssLegFunction *alf_ptr = new AssLegFunction();
unsigned int truncation_order = 6;
MultipoleExpansion multipole(truncation_order, center, alf_ptr);
diff --git a/tests/vectorial_dof_handler_64_bits.cc b/tests/vectorial_dof_handler_64_bits.cc
index 96c1b48..fa5cda6 100644
--- a/tests/vectorial_dof_handler_64_bits.cc
+++ b/tests/vectorial_dof_handler_64_bits.cc
@@ -49,7 +49,7 @@ main(int argc, char *argv[])
const unsigned int dim = 3;
Triangulation tria;
std::ifstream in;
- in.open(SOURCE_DIR "/../utilities/coarse_sphere.inp");
+ in.open(SOURCE_DIR "/../grids/coarse_sphere.inp");
GridIn gi;
gi.attach_triangulation(tria);
gi.read_ucd(in);
diff --git a/tests/vectorial_dof_handler_64_bits.with_64bit_indices=true.output b/tests/vectorial_dof_handler_64_bits.with_64bit_indices=true.output
index c87d78d..4a7cef9 100644
--- a/tests/vectorial_dof_handler_64_bits.with_64bit_indices=true.output
+++ b/tests/vectorial_dof_handler_64_bits.with_64bit_indices=true.output
@@ -1,5 +1,4 @@
-DEAL::Check on the DoFHandler with codim 1 FESystem and 64 bits indices
DEAL::Distributing scalar dofs
DEAL::Distributing vector dofs
DEAL::Distributed dofs
From b75c99742a3779a2405895b5535435750035a658 Mon Sep 17 00:00:00 2001
From: Luca Heltai
Date: Wed, 20 Nov 2024 11:41:31 +0100
Subject: [PATCH 2/5] Indent.
---
include/bem_problem.h | 10 +++++-----
include/driver.h | 20 ++++++++++----------
source/local_expansion.cc | 12 ++++++++----
source/multipole_expansion.cc | 15 ++++++++++-----
4 files changed, 33 insertions(+), 24 deletions(-)
diff --git a/include/bem_problem.h b/include/bem_problem.h
index 6995a33..d925ea7 100644
--- a/include/bem_problem.h
+++ b/include/bem_problem.h
@@ -49,11 +49,11 @@
#include
#include
-//#include
-//#include
-//#include
-//#include
-//#include
+// #include
+// #include
+// #include
+// #include
+// #include
#include
#include
diff --git a/include/driver.h b/include/driver.h
index ba78e55..298f500 100644
--- a/include/driver.h
+++ b/include/driver.h
@@ -31,17 +31,17 @@
#include
#include
//
-//#include
-//#include
-//#include
-//#include
-//#include
+// #include
+// #include
+// #include
+// #include
+// #include
//
-//#include
-//#include
-//#include
-//#include
-//#include
+// #include
+// #include
+// #include
+// #include
+// #include
#include
#include
diff --git a/source/local_expansion.cc b/source/local_expansion.cc
index 815c24c..2f1e511 100644
--- a/source/local_expansion.cc
+++ b/source/local_expansion.cc
@@ -110,7 +110,8 @@ LocalExpansion::Add(
{
if (other.is_zero)
- {}
+ {
+ }
else
{
unsigned int p = this->p;
@@ -135,7 +136,8 @@ LocalExpansion::Add(
for (int mm = -1 * nn; mm < nn + 1; mm++)
{
if (abs(mm - m) > nn - n)
- {}
+ {
+ }
else
{
std::complex a = std::complex(
@@ -183,7 +185,8 @@ LocalExpansion::Add(
// static unsigned int call_count=0;
if (multipole.is_zero)
- {}
+ {
+ }
else
{
// cout< &evalPoint)
{
std::complex fieldValue = std::complex(0., 0.);
if (this->is_zero)
- {}
+ {
+ }
else
{
unsigned int p = this->p;
diff --git a/source/multipole_expansion.cc b/source/multipole_expansion.cc
index fe25d27..8dbe221 100644
--- a/source/multipole_expansion.cc
+++ b/source/multipole_expansion.cc
@@ -76,7 +76,8 @@ MultipoleExpansion::Add(const MultipoleExpansion &multipole, const double sol)
{
if (multipole.is_zero || sol == 0)
- {}
+ {
+ }
else
{
this->is_zero = false;
@@ -94,7 +95,8 @@ MultipoleExpansion::Add(const double strength, const dealii::Point<3> &point)
{
if (strength == 0)
- {}
+ {
+ }
else
{
this->is_zero = false;
@@ -126,7 +128,8 @@ MultipoleExpansion::AddNormDer(const double strength,
{
if (strength == 0)
- {}
+ {
+ }
else
{
this->is_zero = false;
@@ -213,7 +216,8 @@ MultipoleExpansion::Add(
for (int mm = -1 * nn; mm < nn + 1; mm++)
{
if (abs(m - mm) > n - nn)
- {}
+ {
+ }
else
{
std::complex a = std::complex(
@@ -263,7 +267,8 @@ MultipoleExpansion::Evaluate(const dealii::Point<3> &evalPoint)
{
std::complex fieldValue(0., 0.);
if (this->is_zero)
- {}
+ {
+ }
else
{
dealii::Point<3> blockRelPos = evalPoint + (-1.0 * this->center);
From 236578890095dddae0973db32873b3d77e8eafbd Mon Sep 17 00:00:00 2001
From: Luca Heltai
Date: Wed, 20 Nov 2024 11:45:40 +0100
Subject: [PATCH 3/5] Move to 9.6.0.
---
.github/workflows/indentation.yml | 2 +-
.github/workflows/tests.yml | 4 ++--
VERSION | 2 +-
docker/Dockerfile | 2 +-
scripts/dr.sh | 2 +-
5 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/indentation.yml b/.github/workflows/indentation.yml
index 0afa7f5..c8d0fc6 100644
--- a/.github/workflows/indentation.yml
+++ b/.github/workflows/indentation.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
container:
- image: dealii/dealii:v9.5.0-jammy
+ image: dealii/dealii:v9.6.0-jammy
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
steps:
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 84ca77d..526e0c3 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
container:
- image: dealii/dealii:v9.5.0-jammy
+ image: dealii/dealii:v9.6.0-jammy
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
steps:
@@ -32,7 +32,7 @@ jobs:
runs-on: ubuntu-latest
container:
- image: dealii/dealii:v9.5.0-jammy
+ image: dealii/dealii:v9.6.0-jammy
options: --user root --env OMPI_ALLOW_RUN_AS_ROOT=1 --env OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1
steps:
diff --git a/VERSION b/VERSION
index 847b3ad..4a3e1cf 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-9.5.0
\ No newline at end of file
+9.6.0
\ No newline at end of file
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 76e7868..d4893ea 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -1,4 +1,4 @@
-FROM dealii/dealii:v9.5.0-jammy
+FROM dealii/dealii:v9.6.0-jammy
# pi-BEM master image
RUN git clone https://github.com/mathLab/pi-BEM/ &&\
diff --git a/scripts/dr.sh b/scripts/dr.sh
index 8643e05..9150be9 100755
--- a/scripts/dr.sh
+++ b/scripts/dr.sh
@@ -1,2 +1,2 @@
#!/bin/bash
-docker run --user $(id -u):$(id -g) -i -t --rm -P -v `pwd`:/app:rw dealii/dealii:v9.5.0-jammy /bin/sh -c "cd /app; $@"
+docker run --user $(id -u):$(id -g) -i -t --rm -P -v `pwd`:/app:rw dealii/dealii:v9.6.0-jammy /bin/sh -c "cd /app; $@"
From 9b6d42ec5284d47eba361b227ac6b6c2add32270 Mon Sep 17 00:00:00 2001
From: Luca Heltai
Date: Wed, 20 Nov 2024 11:50:45 +0100
Subject: [PATCH 4/5] Updated clang format style.
---
.clang-format | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/.clang-format b/.clang-format
index 2975f20..265b966 100644
--- a/.clang-format
+++ b/.clang-format
@@ -1,5 +1,5 @@
#
-# The clang-format (Clang 11) style file used by deal.II.
+# The clang-format (Clang 16) style file used by deal.II.
#
AccessModifierOffset: -2
@@ -160,6 +160,8 @@ PointerAlignment: Right
ReflowComments: true
CommentPragmas: '( \| |\*--||@ref | @p |@param |@name |@returns |@warning |@ingroup |@author |@date |@related |@relates |@relatesalso |@deprecated |@image |@return |@brief |@attention |@copydoc |@addtogroup |@todo |@tparam |@see |@note |@skip |@skipline |@until |@line |@dontinclude |@include)'
+QualifierAlignment: Left
+
SortIncludes: true
SortUsingDeclarations: true
@@ -175,7 +177,7 @@ SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
-Standard: Cpp11
+Standard: c++20
TabWidth: 2
From 90f21a61eb941edfb1ccdbf085824cd1bd34073b Mon Sep 17 00:00:00 2001
From: Luca Heltai
Date: Wed, 20 Nov 2024 11:57:45 +0100
Subject: [PATCH 5/5] Changes in README.
---
CMakeLists.txt | 5 +-
README.md | 174 +++++++++++++++++++++++--------------------------
2 files changed, 83 insertions(+), 96 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f0a8051..70a6150 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,6 @@
##
# CMake script for large project, with one executable
-# and a library of objects, optionally
-# depending on deal2lkit.
+# and a library of objects
#
# The structure of the directory is assumed to be:
# ./source: containing implementations and one file with "int main()"
@@ -38,7 +37,7 @@ ENDIF()
CMAKE_MINIMUM_REQUIRED(VERSION 3.13.4)
-FIND_PACKAGE(deal.II 9.5 REQUIRED
+FIND_PACKAGE(deal.II 9.5.0 REQUIRED
HINTS ${deal.II_DIR} ${DEAL_II_DIR} ../ ../../ $ENV{DEAL_II_DIR}
)
diff --git a/README.md b/README.md
index c2c603e..fcfdd33 100644
--- a/README.md
+++ b/README.md
@@ -4,19 +4,19 @@
-# pi-BEM: Parallel BEM Solver
+# pi-BEM: Parallel BEM Solver
[![Build Status](https://travis-ci.org/mathLab/pi-BEM.svg?branch=master)](https://travis-ci.org/mathLab/pi-BEM)
Copyright (C) 2015 -- 2019 by Nicola Giuliani (1), Andrea Mola (2) and Luca Heltai (2)
-(1) Scuola Internazionale Superiore di Studi Avanzati E-mail: ngiuliani@sissa.it
+(1) Scuola Internazionale Superiore di Studi Avanzati E-mail:
-(2) Scuola Internazionale Superiore di Studi Avanzati E-mail: andrea.mola@sissa.it
+(2) Scuola Internazionale Superiore di Studi Avanzati E-mail:
-(3) Scuola Internazionale Superiore di Studi Avanzati E-mail: luca.heltai@sissa.it
+(3) Scuola Internazionale Superiore di Studi Avanzati E-mail:
-The library represents a parallel solver for the Laplace equation through Boundary Element Methods. We have developed the software in C++ on top of many high performance libraries, the [deal.II](https://github.com/dealii/dealii) library for Finite Element Handling, the [METIS](http://glaros.dtc.umn.edu/gkhome/metis/metis/download) project and [Trilinos](https://trilinos.org/) library for automatic Workload balance, [OpenCASCADE](https://www.opencascade.com/) for CAD integration, and [deal2lkit](https://github.com/luca-heltai/deal2lkit) for parameter handling.
+The library represents a parallel solver for the Laplace equation through Boundary Element Methods. We have developed the software in C++ on top of many high performance libraries, the [deal.II](https://github.com/dealii/dealii) library for Finite Element Handling, the [METIS](http://glaros.dtc.umn.edu/gkhome/metis/metis/download) project and [Trilinos](https://trilinos.org/) library for automatic Workload balance, and [OpenCASCADE](https://www.opencascade.com/) for CAD integration.
## Provided features
@@ -32,131 +32,125 @@ We provide the following capabilities
- Hybrid Distributed (MPI) - Shared (Intel Threaded Building Block) memory parallelisation for the BEM-FMM code
- Recovery of both primal (potential) and dual (potential normal derivative) unknowns.
- L2 projection of the full 3D potential gradient for post processing.
-- Extensive tuning via parameter file using the [deal2lkit](https://github.com/mathLab/deal2lkit) library
-
+- Extensive tuning via parameter file using.
## Code Structure
+
We have subdivided the code in main classes to handle the many different aspects of a complete BEM simulation.
- Driver. This class is in charge of organising the overall BEM simulation. It has interfaces with all the other classes in order to perform a complete simulation.
- ComputationalDomain. This class handles, and provides to the other classes, ONLY the geometry of the problem. In particular
- - it handles the domain decomposition using a graph partitioning tool (METIS);
- - it reads the domain from an external file.
+- it handles the domain decomposition using a graph partitioning tool (METIS);
+- it reads the domain from an external file.
- BoundaryCondition. The class handles the boundary conditions. In particular
- - it reads the boundary conditions for the potential and its normal derivative;
- - given the peculiarities of the BEM, the boundary conditions represent the actual unknowns, thus it creates the vectors containing the two variables and fills them with the proper data;
- - it performs the error analysis on both unknowns.
+ - it reads the boundary conditions for the potential and its normal derivative;
+ - given the peculiarities of the BEM, the boundary conditions represent the actual unknowns, thus it creates the vectors containing the two variables and fills them with the proper data;
+ - it performs the error analysis on both unknowns.
- BEMProblem. This class is the core of the BEM simulation
- - it receives the variables vector filled in with the proper boundary condition;
- - it creates the codimension 1 functional space setting up the BEM;
- - it solves the system using a preconditioned parallel GMRES solver;
- - it eventually interacts with the FMM accelerator.
+ - it receives the variables vector filled in with the proper boundary condition;
+ - it creates the codimension 1 functional space setting up the BEM;
+ - it solves the system using a preconditioned parallel GMRES solver;
+ - it eventually interacts with the FMM accelerator.
- BEMFMA. This class handles the accelerator, in particular
- - it sets up an hierarchical 3D space subdivision (octree);
- - it receives two distributed vectors representing the unknowns and performs a full FMM matrix vector product.
+ - it sets up an hierarchical 3D space subdivision (octree);
+ - it receives two distributed vectors representing the unknowns and performs a full FMM matrix vector product.
## Install Procedure using CANDI
+
To install from scratch all the needed library you can look to the automatic installation procedure provided by [CANDI](https://github.com/koecher/candi) developed Uwe Köcher.
## Install Procedure using spack
+
Just follow the [instructions](https://github.com/dealii/dealii/wiki/deal.II-in-Spack) to install dealii@develop using spack.
## Install Procedure using Docker
-We provide the possibility of using Docker as a tool to provide a fully operational environment for our library. To use such tool you need to install Docker following the [instructions](https://docs.docker.com/engine/installation/) provided by its authors. Then you can execute the following command line instruction
- docker run -v `pwd`:/pwd_to_your_own_directory/ -i -t mathlab/deal2lkit:latest bash
+We provide the possibility of using Docker as a tool to provide a fully operational environment for our library. To use such tool you need to install Docker following the [instructions](https://docs.docker.com/engine/installation/) provided by its authors. Then you can execute the following command line instruction
+
+ docker run -v `pwd`:/pwd_to_your_own_directory/ -i -t dealii/dealii:v9.6.0-jammy bash
to retrieve the environment. In such a shell you can easily compile the pi-BEM library following its own instructions.
## Install Procedure from scratch
-In order to successfully compile the code you need
-
-- to install the Trilinos and Metis wrappers of the library, see the official [instructions](https://www.dealii.org/developer/readme.html)
-- to install the [deal.II](https://github.com/dealii/dealii) library allowing both for multiprocessors and multithreaded environment.
-- to install the [deal2lkit](https://github.com/mathLab/deal2lkit) library allowing both for multiprocessors and multithreaded environment.
+In order to successfully compile the code you need
+- to install the Trilinos and Metis wrappers of the library, see the official [instructions](https://www.dealii.org/developer/readme.html)
+- to install the [deal.II](https://github.com/dealii/dealii) library allowing both for multiprocessors and multithreaded environment.
### deal.II Installation procedure
-Follow the detailed [instruction](https://www.dealii.org/developer/readme.html) to install deal with METIS and Trilinos wrappers. We highlight that in order to fully exploit pi-BEM you need to properly install the following additional packages: MPI, TBB, METIS, TRILINOS ans OPENCASCADE. For more detailed instruction you can look to the the deal.ii install procedures. In the following we provide an example of the installation of all the proper packages.
+Follow the detailed [instruction](https://www.dealii.org/developer/readme.html) to install deal with METIS and Trilinos wrappers. We highlight that in order to fully exploit pi-BEM you need to properly install the following additional packages: MPI, TBB, METIS, TRILINOS ans OPENCASCADE. For more detailed instruction you can look to the the deal.ii install procedures. In the following we provide an example of the installation of all the proper packages.
### OpenCASCADE Installation procedure
-- Download the latest version at [OpenCASCADE](https://github.com/tpaviot/oce)
-- Follow the instructions
+- Download the latest version at [OpenCASCADE](https://github.com/tpaviot/oce)
+- Follow the instructions
### METIS-PARMETIS Installation procedure
+
- Download the latest version at [METIS](http://glaros.dtc.umn.edu/gkhome/metis/metis/download)
- Follow the [instructions](http://glaros.dtc.umn.edu/gkhome/metis/metis/download) for the correct installation of the package
-
### Trilinos Installation procedure
+
- Download the latest version at [Trilinos](https://trilinos.org/download/)
- This is a possible configuration file
- cmake -D Trilinos_ENABLE_OPTIONAL_PACKAGES:BOOL=ON \
- -D Trilinos_ENABLE_ALL_PACKAGES:BOOL=ON \
- -D CMAKE_CXX_FLAGS:STRING="-O3" \
- -D CMAKE_C_FLAGS:STRING="-O3" \
- -D CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE \
- -D Trilinos_VERBOSE_CONFIGURE:BOOL=FALSE \
- -D TPL_ENABLE_MPI:BOOL=ON \
- -D CMAKE_BUILD_TYPE:STRING=RELEASE \
- -D Trilinos_ENABLE_Fortran:BOOL=ON \
- -D BLAS_LIBRARY_NAMES:STRING="blas" \
- -D BLAS_LIBRARY_DIRS:PATH=/usr/lib/libblas/ \
- -D TPL_BLAS_LIBRARIES:PATH=/usr/lib/libblas/ \
- -D Trilinos_WARNINGS_AS_ERRORS_FLAGS:STRING="" \
- -D CMAKE_INSTALL_PREFIX:PATH=/usr/local/ \
- -D BUILD_SHARED_LIBS:BOOL=ON ../
-
- make install
+ cmake -D Trilinos_ENABLE_OPTIONAL_PACKAGES:BOOL=ON \
+ -D Trilinos_ENABLE_ALL_PACKAGES:BOOL=ON \
+ -D CMAKE_CXX_FLAGS:STRING="-O3" \
+ -D CMAKE_C_FLAGS:STRING="-O3" \
+ -D CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE \
+ -D Trilinos_VERBOSE_CONFIGURE:BOOL=FALSE \
+ -D TPL_ENABLE_MPI:BOOL=ON \
+ -D CMAKE_BUILD_TYPE:STRING=RELEASE \
+ -D Trilinos_ENABLE_Fortran:BOOL=ON \
+ -D BLAS_LIBRARY_NAMES:STRING="blas" \
+ -D BLAS_LIBRARY_DIRS:PATH=/usr/lib/libblas/ \
+ -D TPL_BLAS_LIBRARIES:PATH=/usr/lib/libblas/ \
+ -D Trilinos_WARNINGS_AS_ERRORS_FLAGS:STRING="" \
+ -D CMAKE_INSTALL_PREFIX:PATH=/usr/local/ \
+ -D BUILD_SHARED_LIBS:BOOL=ON ../
+
+ make install
- if some packages create conflicts they can be disabled as seen on the Trilinos webpage
-
-
-
-
-### deal2lkit Installation procedure
-Follow the detailed [instruction](https://https://github.com/mathLab/deal2lkit) to install deal2lkit.
-
-
### pi-BEM Installation procedure
Then you can clone the repository and compile it
- git clone https://github.com/mathLab/pi-BEM.git
- cd pi-BEM
- mkdir build
- cd build
- cmake ../
- make -j4
+ git clone
+ cd pi-BEM
+ mkdir build
+ cd build
+ cmake ../
+ make -j4
-After you have compiled your application, you can run
+After you have compiled your application, you can run
- make test
+ make test
or
-
- ctest
+
+ ctest
to start the testsuite.
Take a look at
-https://www.dealii.org/developer/developers/testsuite.html for more
+ for more
information on how to create tests and add categories of tests.
If you want you can run a preliminary execution in the build library typing
-
- mpirun -np 1 bem_fma_2d
-
-this will automatically generate the parameter file for the bi-dimensional run while
- mpirun -np 1 bem_fma_3d
-
+ mpirun -np 1 bem_fma_2d
+
+this will automatically generate the parameter file for the bi-dimensional run while
+
+ mpirun -np 1 bem_fma_3d
+
will create a proper parameter file for a 3 dimensional simulation.
# Notice to developers
@@ -165,34 +159,28 @@ Before making a pull request, please make sure you run the script
./scripts/indent
-from the base directory of this project, to ensure that no random
+from the base directory of this project, to ensure that no random
white space changes are inserted in the repository.
-The script requires Artistic Style Version 2.04 (astyle) to work
-properly.
+The script requires `clang-format` version 16.0.6 to work properly.
# Cite this work
If you use this software, please consider citing the following work:
- @article{GiulianiMolaHeltai2018,
- doi = {10.1016/j.advengsoft.2018.03.008},
- url = {https://doi.org/10.1016/j.advengsoft.2018.03.008},
- year = {2018},
- month = {jul},
- publisher = {Elsevier {BV}},
- volume = {121},
- pages = {39--58},
- author = {Nicola Giuliani and Andrea Mola and Luca Heltai},
- title = {$\uppi$ - {BEM} : A flexible parallel implementation for adaptive, geometry aware, and high order boundary element methods},
- journal = {Advances in Engineering Software}
- }
-
-
-
-#Licence
+ @article{GiulianiMolaHeltai2018,
+ doi = {10.1016/j.advengsoft.2018.03.008},
+ url = {,
+ year = {2018},
+ month = {jul},
+ publisher = {Elsevier {BV}},
+ volume = {121},
+ pages = {39--58},
+ author = {Nicola Giuliani and Andrea Mola and Luca Heltai},
+ title = {$\uppi$ - {BEM} : A flexible parallel implementation for adaptive, geometry aware, and high order boundary element methods},
+ journal = {Advances in Engineering Software}
+ }
+
+# Licence
Please see the file [LICENSE](https://github.com/mathLab/pi-BEM/blob/master/LICENSE) for details
-
-
-