Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
solverstack
ScalFMM
Commits
4b3b72de
Commit
4b3b72de
authored
Apr 27, 2018
by
COULAUD Olivier
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of gitlab.inria.fr:solverstack/ScalFMM into develop
parents
262c3021
c4990e32
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
9 additions
and
100 deletions
+9
-100
CMakeLists.txt
CMakeLists.txt
+1
-1
Examples/MPIInterpolationFMM.hpp
Examples/MPIInterpolationFMM.hpp
+3
-3
Src/Core/FFmmAlgorithmThreadProcPeriodic.hpp
Src/Core/FFmmAlgorithmThreadProcPeriodic.hpp
+4
-4
Utils/src/compare2Files.cpp
Utils/src/compare2Files.cpp
+0
-91
Utils/src/sharedMemoryInterpolatiomCmpAlgos.hpp
Utils/src/sharedMemoryInterpolatiomCmpAlgos.hpp
+1
-1
No files found.
CMakeLists.txt
View file @
4b3b72de
...
...
@@ -36,7 +36,6 @@ set(SCALFMM_MINOR_VERSION 0)
set
(
SCALFMM_PATCH_VERSION rc0
)
set
(
SCALFMM_VERSION
"
${
SCALFMM_MAJOR_VERSION
}
.
${
SCALFMM_MINOR_VERSION
}
.
${
SCALFMM_PATCH_VERSION
}
"
)
SET
(
CXX_STANDARD_REQUIRED ON
)
SET
(
CMAKE_CXX_STANDARD 14
)
...
...
@@ -113,6 +112,7 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/morse_
option
(
SCALFMM_SIMGRID_NODATA
"Set to ON to avoid the allocation of numerical parts in the group tree"
OFF
)
option
(
STARPU_SIMGRID_MLR_MODELS
"Set to ON to enable MLR models need for calibration and simulation"
OFF
)
# OPENMP 4/5 support
message
(
WARNING
"OpenMP_VERSION:
${
OpenMP_VERSION
}
"
)
option
(
OPENMP_SUPPORT_PRIORITY
"Set to ON to enable tasks priority (OMP4.x/KSTAR/StarPU compiler only)"
OFF
)
# STARPU options
CMAKE_DEPENDENT_OPTION
(
OPENMP_SUPPORT_COMMUTE
"Set to ON to let tasks commute (KSTAR/StarPU compiler only)"
OFF
...
...
Examples/MPIInterpolationFMM.hpp
View file @
4b3b72de
...
...
@@ -211,7 +211,7 @@ int main(int argc, char* argv[])
// -----------------------------------------------------
std
::
vector
<
MortonIndex
>
mortonLeafDistribution
(
2
*
app
.
global
().
processCount
());
FAbstractAlgorithm
*
algorithm
=
nullptr
;
FAlgorithmTimers
*
timer
=
nullptr
;
//
FAlgorithmTimers * timer = nullptr;
{
// -----------------------------------------------------
std
::
cout
<<
"
\n
"
<<
interpolationType
<<
" FMM Proc (ORDER="
<<
ORDER
<<
") ... "
<<
std
::
endl
;
...
...
@@ -233,11 +233,11 @@ int main(int argc, char* argv[])
///////////////////////////////////////////////////////////////////////////////////////////////////
if
(
!
periodicCondition
)
{
// Non periodic case
algorithm
=
&
algoNoPer
;
timer
=
&
algoNoPer
;
//
timer = &algoNoPer ;
}
else
{
// Periodic case
algorithm
=
&
algoPer
;
timer
=
&
algoPer
;
//
timer = &algoPer ;
}
//
// FMM exectution FFmmFarField
...
...
Src/Core/FFmmAlgorithmThreadProcPeriodic.hpp
View file @
4b3b72de
...
...
@@ -1893,11 +1893,11 @@ protected:
if
(
!
offsets
[
idxNeig
].
equals
(
0
,
0
,
0
)
){
// Put periodic neighbors into other array
FReal
*
const
positionsX
=
periodicN
eighbors
[
idxNeig
]
->
getPositions
()[
0
];
FReal
*
const
positionsY
=
periodicN
eighbors
[
idxNeig
]
->
getPositions
()[
1
];
FReal
*
const
positionsZ
=
periodicN
eighbors
[
idxNeig
]
->
getPositions
()[
2
];
FReal
*
const
positionsX
=
n
eighbors
[
idxNeig
]
->
getPositions
()[
0
];
FReal
*
const
positionsY
=
n
eighbors
[
idxNeig
]
->
getPositions
()[
1
];
FReal
*
const
positionsZ
=
n
eighbors
[
idxNeig
]
->
getPositions
()[
2
];
for
(
FSize
idxPart
=
0
;
idxPart
<
periodicN
eighbors
[
idxNeig
]
->
getNbParticles
()
;
++
idxPart
){
for
(
FSize
idxPart
=
0
;
idxPart
<
n
eighbors
[
idxNeig
]
->
getNbParticles
()
;
++
idxPart
){
positionsX
[
idxPart
]
+=
boxWidth
*
FReal
(
offsets
[
idxNeig
].
getX
());
positionsY
[
idxPart
]
+=
boxWidth
*
FReal
(
offsets
[
idxNeig
].
getY
());
positionsZ
[
idxPart
]
+=
boxWidth
*
FReal
(
offsets
[
idxNeig
].
getZ
());
...
...
Utils/src/compare2Files.cpp
deleted
100644 → 0
View file @
262c3021
/*
* genarateDistributions.cpp
*
* Created on: 23 mars 2014
* Author: Olivier Coulaud
*/
// Keep in private GIT
//
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
//
#include "Utils/FGlobal.hpp"
#include "Utils/FPoint.hpp"
#include "Files/FFmaGenericLoader.hpp"
#include "Utils/FParameters.hpp"
#include "Utils/FCompareResults.hpp"
#include "Utils/FParameterNames.hpp"
//
/// \file compare2files.cpp
//!
//! \brief compare2files: Gives the error between
//!
//! Driver to transform a FMA format and/or to build a visualization file<br>
//! For a description of the FMA format see FFmaGenericLoader<br>
//! <b> General arguments:</b>
//! \param -help (-h) to see the parameters available in this driver
//! \param -fmmfile1 name1: first file name to compare (with extension .fma (ascii) or bfma (binary)
//! \param -fmmfile2 name2: second file name to compare (with extension .fma (ascii) or bfma (binary)
//! \param -ewaldfile2 name2 if name2 contains the result done by the ewald method for 1/r kernel.
//!
//! Error code (return of the main)
//! -1 Number of points is different in the two files.
//!
//! \b examples
//!
//!
//! compare2files -file1 unitCubeXYZQ100.fma -file2 unitCubeXYZQ100
int
main
(
int
argc
,
char
**
argv
){
// const FParameterNames LocalParameterEwald{
// {"-ewaldfile2"},
// "-ewaldfile2 name2 if name2 contains the result done by the ewald method for 1/r kernel"
// };
FHelpDescribeAndExit
(
argc
,
argv
,
"Driver to change the format of the input file."
,
FParameterDefinitions
::
InputFileOne
,
FParameterDefinitions
::
InputFileTwow
,
/*LocalParameterEwald*/
);
const
std
::
string
filename1
(
FParameters
::
getStr
(
argc
,
argv
,
FParameterDefinitions
::
InputFileOne
.
options
,
"data.fma"
));
const
std
::
string
filename2
(
FParameters
::
getStr
(
argc
,
argv
,
FParameterDefinitions
::
InputFileTwow
.
options
,
"data.fma"
));
typedef
double
FReal
;
FFmaGenericLoader
<
FReal
>
loader1
(
filename1
);
FFmaGenericLoader
<
FReal
>
loader2
(
filename2
);
//
// Allocation
//
FSize
nbParticles
=
loader1
.
getNumberOfParticles
();
const
unsigned
int
nbData
=
loader1
.
getNbRecordPerline
()
;
if
(
nbParticles
!=
loader2
.
getNumberOfParticles
()){
std
::
cerr
<<
"Number of points is different in the two files."
<<
std
::
endl
;
return
-
1
;
}
if
(
(
nbData
!=
8
)
&&
(
loader2
.
getNbRecordPerline
())
){
std
::
cerr
<<
"Wrong files only "
<<
std
::
min
(
loader2
.
getNbRecordPerline
(),
nbData
)
<<
" to read."
<<
std
::
endl
;
return
-
2
;
}
FmaRWParticle
<
FReal
,
8
,
8
>*
const
particles1
=
new
FmaRWParticle
<
FReal
,
8
,
8
>
[
nbParticles
];
FmaRWParticle
<
FReal
,
8
,
8
>*
const
particles2
=
new
FmaRWParticle
<
FReal
,
8
,
8
>
[
nbParticles
];
//
loader1
.
fillParticle
(
particles1
,
nbParticles
);
loader2
.
fillParticle
(
particles2
,
nbParticles
);
const
FSize
error
=
compareTwoArrays
<
FReal
,
FmaRWParticle
<
FReal
,
8
,
8
>*
>
(
"TAG"
,
nbParticles
,
particles1
,
particles2
);
//
delete
[]
particles1
;
delete
[]
particles2
;
//
return
int
(
error
);
}
Utils/src/sharedMemoryInterpolatiomCmpAlgos.hpp
View file @
4b3b72de
...
...
@@ -83,7 +83,7 @@ using FmmType = FFmmAlgorithm<OctreeType,CellType,ContainerType,KernelType,Leaf
// Simply create particles and try the kernels
int
main
(
int
argc
,
char
*
argv
[])
{
const
FParameterNames
LocalOptionAlgo
=
{
{
"-algo"
}
,
" Algorithm to run (task, newtask, sectiontask)
\n
"
};
const
FParameterNames
LocalOptionAlgo
=
{
{
"-algo"
}
,
" Algorithm to run (task, newtask, sectiontask
, omp4
)
\n
"
};
const
FParameterNames
LocalOptionCmp
=
{
{
"-cmp"
}
,
"Use to check the result with the exact solution given in the input file
\n
"
};
FHelpDescribeAndExit
(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment