Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • am-dept/waves
  • Xavier.Naa/waves
  • Paul.Dechamps/waves
3 results
Show changes
Commits on Source (235)
Showing with 254 additions and 87 deletions
---
# https://clang.llvm.org/docs/ClangFormatStyleOptions.html#
# the "Visual Studio" style is similar to:
BasedOnStyle: LLVM
UseTab: Never
IndentWidth: 4
BreakBeforeBraces: Allman
AccessModifierOffset: -4
SortIncludes: false
ColumnLimit: 0
...
# EditorConfig is awesome: https://EditorConfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 4
*_lfs.msh filter=lfs diff=lfs merge=lfs -text
*_lfs.apdl filter=lfs diff=lfs merge=lfs -text
*_lfs.ansys filter=lfs diff=lfs merge=lfs -text
*.brep filter=lfs diff=lfs merge=lfs -text
*.stp filter=lfs diff=lfs merge=lfs -text
......@@ -31,12 +31,19 @@ workspace.tar.gz
# build dir
build
## Ansys
#*.apdl
# gitlab-ci / clang-format
patches
# Ansys
*.apdl
!*_lfs.apdl
*.ansys
!*_lfs.ansys
# Gmsh
*.pos
*.msh
*.msh # do not commit the mesh...
!*_lfs.msh # ... except in the lfs
#*.opt
# sge output
......
# gitlab-ci file for waves
default:
image: rboman/waves
image: rboman/waves-py3:2020.3
before_script:
- source /opt/intel/mkl/bin/mklvars.sh intel64
- source /opt/intel/tbb/bin/tbbvars.sh intel64
- echo $(nproc)
- printenv | sort
.global_tag: &global_tag_def
tags:
- mn2l
# - warson # you can choose a set of runners here
stages:
- build
- test
build-py2:
format:
<<: *global_tag_def
stage: build
script:
- clang-format --version # we use clang-format-10 exclusively
- ./scripts/format_code.py
- mkdir -p patches
- if git diff --patch --exit-code > patches/clang-format.patch; then echo "Clang format changed nothing"; else echo "Clang format found changes to make!"; false; fi
artifacts:
paths:
- patches/
expire_in: 1 day
when: on_failure
allow_failure: true
build-no-tlnos:
<<: *global_tag_def
stage: build
script:
- printenv | sort
- rm -rf build workspace
- mkdir build
- cd build
- cmake -DUSE_PY3=OFF -Wno-dev ..
- make -j 4
artifacts:
paths:
- build/
expire_in: 1 hour
- cmake -Wno-dev -C ../CMake/disable-trilinos.cmake ..
- make -j 8
build-py2-no-tlnos:
build:
<<: *global_tag_def
stage: build
script:
- printenv | sort
- rm -rf build workspace
- mkdir build
- cd build
- cmake -DUSE_PY3=OFF -Wno-dev -C ../CMake/disable-trilinos.cmake ..
- make -j 4
- cmake -Wno-dev ..
- make -j 8
artifacts:
paths:
- build/
expire_in: 1 day
build-py3:
image: rboman/waves-py3
build-red:
<<: *global_tag_def
image: rboman/waves-py3-red:2020.3
stage: build
script:
- printenv | sort
- rm -rf build workspace
- mkdir build
- cd build
- cmake -Wno-dev ..
- make -j 4
- make -j 8
artifacts:
paths:
- build/
expire_in: 1 hour
expire_in: 1 day
doxygen:
<<: *global_tag_def
stage: test
script:
- cd build
......@@ -57,27 +80,26 @@ doxygen:
artifacts:
paths:
- build/doxygen/
expire_in: 1 day
expire_in: 1 week
dependencies:
- build-py2
- build
ctest-py2:
ctest:
<<: *global_tag_def
stage: test
script:
- cd build
- ctest -j 4 #--verbose
- ctest --output-on-failure -j 8
#timeout: 10 hours # will be available in 12.3
dependencies:
- build-py2
ctest-py3:
image: rboman/waves-py3
- build
ctest-red:
<<: *global_tag_def
image: rboman/waves-py3-red:2020.3
stage: test
script:
- cd build
- ctest -j 4 #--verbose
- ctest --output-on-failure -j 8 -R katoptron
dependencies:
- build-py3
- build-red
......@@ -12,11 +12,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# FindEIGEN.cmake - try to find Eigen headers
# FindEIGEN.cmake - try to find Eigen 3 headers
# The logic that checks the version comes from FindEigen3.cmake (source dir)
# ----------------------------------------------------------------------------
# output:
# EIGEN_FOUND : TRUE/FALSE
# EIGEN_INCLUDE_DIRS : where the Eigen/*.h are [cached]
# EIGEN_VERSION : version number of Eigen
# ----------------------------------------------------------------------------
# autodetection:
# utiliser "CMAKE_PREFIX_PATH=c:\local"
......@@ -24,12 +26,53 @@
# ou "INCLUDE=c:\local\include"
# ----------------------------------------------------------------------------
# Check version (only for Eigen 3)
macro(_eigen3_check_version)
file(READ "${EIGEN_INCLUDE_DIRS}/Eigen/src/Core/util/Macros.h" _eigen3_version_header)
string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}")
set(EIGEN_WORLD_VERSION "${CMAKE_MATCH_1}")
string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}")
set(EIGEN_MAJOR_VERSION "${CMAKE_MATCH_1}")
string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}")
set(EIGEN_MINOR_VERSION "${CMAKE_MATCH_1}")
set(EIGEN_VERSION ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})
if(${EIGEN_VERSION} VERSION_LESS ${EIGEN_FIND_VERSION})
message(FATAL_ERROR "Eigen version ${EIGEN_VERSION} found in ${EIGEN_INCLUDE_DIRS}, but at least version ${EIGEN_FIND_VERSION} is required!")
endif()
endmacro()
# Set a dummy version if not provided
if(NOT EIGEN_FIND_VERSION)
if(NOT EIGEN_FIND_VERSION_MAJOR)
set(EIGEN_FIND_VERSION_MAJOR 3)
endif()
if(NOT EIGEN_FIND_VERSION_MINOR)
set(EIGEN_FIND_VERSION_MINOR 3)
endif()
if(NOT EIGEN_FIND_VERSION_PATCH)
set(EIGEN_FIND_VERSION_PATCH 4)
endif()
set(EIGEN_FIND_VERSION "${EIGEN_FIND_VERSION_MAJOR}.${EIGEN_FIND_VERSION_MINOR}.${EIGEN_FIND_VERSION_PATCH}")
endif()
# Find the header and check the version
find_path(EIGEN_INCLUDE_DIRS "Eigen/Dense" PATHS "/usr/include/eigen3")
if (EIGEN_INCLUDE_DIRS)
_eigen3_check_version()
else()
message(FATAL_ERROR "Eigen3 headers not found! Define the path in the INCLUDE environment variable.")
endif()
# handle the QUIETLY and REQUIRED arguments and set EIGEN_FOUND to TRUE
# if all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(EIGEN DEFAULT_MSG
EIGEN_INCLUDE_DIRS)
find_package_handle_standard_args(EIGEN
FOUND_VAR EIGEN_FOUND
REQUIRED_VARS EIGEN_INCLUDE_DIRS
VERSION_VAR EIGEN_VERSION)
#MESSAGE(STATUS "EIGEN_FOUND = ${EIGEN_FOUND}")
......@@ -14,7 +14,7 @@
if(NOT MPI4PY_INCLUDE_DIR)
execute_process(COMMAND
"${PYTHON_EXECUTABLE}" "-c" "from __future__ import print_function; import mpi4py; print(mpi4py.get_include())"
"${PYTHON_EXECUTABLE}" "-c" "import mpi4py; print(mpi4py.get_include())"
OUTPUT_VARIABLE MPI4PY_INCLUDE_DIR
RESULT_VARIABLE MPI4PY_COMMAND_RESULT
OUTPUT_STRIP_TRAILING_WHITESPACE)
......
......@@ -13,5 +13,5 @@
# limitations under the License.
SET(WAVES_USE_MRSTLNOS OFF CACHE BOOL "" FORCE)
SET(WAVES_USE_KATOPTRON OFF CACHE BOOL "" FORCE)
SET(WAVES_USE_TLNOS OFF CACHE BOOL "" FORCE)
......@@ -17,6 +17,19 @@
MACRO(MACRO_AddTest srcDir)
#message(STATUS "Adding test directory ${srcDir}")
#Extract the number of MPI processes used to
#launch one test.
#If no extra arguments are given, the number
#is set to 1.
set (extra_macro_args ${ARGN})
list(LENGTH extra_macro_args num_extra_args)
if (${num_extra_args} GREATER 0)
list(GET extra_macro_args 0 nProcs)
else()
set(nProcs 1)
endif ()
file(GLOB tfiles RELATIVE ${srcDir} ${srcDir}/*)
#message(STATUS "tfiles=${tfiles}")
foreach(tfile ${tfiles})
......@@ -26,11 +39,18 @@ MACRO(MACRO_AddTest srcDir)
NOT ${tfile} STREQUAL "__init__.py")
string(REPLACE "${PROJECT_SOURCE_DIR}/" "" strip ${spath})
message(STATUS "Adding test ${strip}")
add_test(NAME ${strip}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
COMMAND ${PYTHON_EXECUTABLE} run.py --nogui --clean ${strip})
if (${nProcs} GREATER 1)
add_test(NAME "${strip}-MPI${nProcs}"
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
COMMAND mpirun -np ${nProcs} --allow-run-as-root ${PYTHON_EXECUTABLE} run.py --nogui --clean ${strip})
# (mpi is run as root in docker)
else()
add_test(NAME ${strip}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
COMMAND ${PYTHON_EXECUTABLE} run.py --nogui --clean ${strip})
endif ()
else()
MACRO_AddTest(${srcDir}/${tfile})
MACRO_AddTest(${srcDir}/${tfile} ${nProcs})
endif()
endforeach()
ENDMACRO()
......
......@@ -14,8 +14,8 @@
FIND_PROGRAM(CMAKE_CXX_COMPILER NAMES clang++)
FIND_PROGRAM(CMAKE_C_COMPILER NAMES clang)
# vtk for py3
SET(VTK_DIR "/opt/vtk/lib/cmake/vtk-7.1" CACHE PATH "" FORCE)
# Trilinos not compiling with clang (check to wiki to fix)
LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
INCLUDE(disable-trilinos)
# Copyright 2020 University of Liège
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# MSYS2 with MinGW (AC)
SET(CMAKE_GENERATOR "MSYS Makefiles" CACHE INTERNAL "" FORCE)
SET(WAVES_USE_MKL OFF CACHE BOOL "" FORCE)
SET(WAVES_USE_MUMPS OFF CACHE BOOL "" FORCE)
......@@ -15,7 +15,7 @@
FIND_PROGRAM(CMAKE_CXX_COMPILER NAMES icpc)
FIND_PROGRAM(CMAKE_C_COMPILER NAMES icc)
# gmm automatically finds openblas, so we force to look for mkl
# force to look for mkl
SET(BLA_VENDOR "Intel10_64lp" CACHE STRING "" FORCE)
# Trilinos not available on spring
......
# This file is used when PFEM is compiled on Windows x64
# with Luc Papeleux's precompiled libraries
SET(CMAKE_INSTALL_PREFIX "../waves_INSTALL" CACHE PATH "" FORCE)
STRING(REGEX REPLACE "\\\\" "/" MYLIBS $ENV{METAFORLIBS})
SET(CMAKE_GENERATOR "Visual Studio 15 2017 Win64" CACHE INTERNAL "" FORCE)
SET(PYTHON_INCLUDE_DIR "${MYLIBS}/Python/include" CACHE PATH "" FORCE)
SET(PYTHON_LIBRARY "${MYLIBS}/Python/Libs/python37.lib" CACHE FILEPATH "" FORCE)
SET(PYTHON_RELEASE_LIBRARY "${MYLIBS}/Python/Libs/python37.lib" CACHE FILEPATH "" FORCE)
SET(PYTHON_DEBUG_LIBRARY "${MYLIBS}/Python/Libs/python37_d.lib" CACHE FILEPATH "" FORCE)
# Disable Trilinos (we should test with Trilinos/clang)
LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
INCLUDE(disable-trilinos)
......@@ -16,6 +16,10 @@
PROJECT(Waves)
# ----------------------------------------------------------------------------
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
IF(${CMAKE_VERSION} VERSION_GREATER "3.14.0") # we might want to update the project and use the NEW behavior here
cmake_policy(SET CMP0078 OLD)
cmake_policy(SET CMP0086 OLD)
ENDIF()
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH
"Single output directory for building all libraries.")
......@@ -28,40 +32,38 @@ IF(NOT CMAKE_BUILD_TYPE)
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
FORCE)
ENDIF(NOT CMAKE_BUILD_TYPE)
MESSAGE(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMake")
# -- GENERAL OPTIONS
#OPTION(WAVES_USE_MKL "Use Intel MKL for BLAS/LAPACK" OFF)
# print OS
MESSAGE(STATUS "CMAKE_SYSTEM_NAME=\"${CMAKE_SYSTEM_NAME}\"")
MESSAGE(STATUS "CMAKE_CXX_COMPILER_ID=${CMAKE_CXX_COMPILER_ID}")
# (de)activate python 3
OPTION(USE_PY3 "Use python 3" ON)
# (de)activate modules
OPTION(WAVES_USE_FDTD "Compile fdtd module" ON)
OPTION(WAVES_USE_FLOW "Compile flow module" ON)
OPTION(WAVES_USE_HEAT "Compile heat module" ON)
OPTION(WAVES_USE_MIRRORS "Compile mirrors module" ON)
OPTION(WAVES_USE_MRSTLNOS "Compile mrstlnos module" ON)
OPTION(WAVES_USE_KATOPTRON "Compile katoptron module" ON)
OPTION(WAVES_USE_PARAMS "Compile params module" ON)
OPTION(WAVES_USE_SPH "Compile sph module" ON)
OPTION(WAVES_USE_TLNOS "Compile tlnos module" ON)
OPTION(WAVES_USE_WAVES "Compile waves module" ON)
# (de)activate extensions
OPTION(WAVES_USE_TBOXVTK "Compile tboxVtk module" ON)
# todo: should be removed
OPTION(WAVES_USE_TBB "Compile with TBB" ON)
# (de)activate external packages
OPTION(WAVES_USE_MKL "Compile with Intel MKL" ON)
OPTION(WAVES_USE_MUMPS "Compile with MUMPS" ON)
OPTION(WAVES_USE_TBB "Compile with TBB" ON) # todo: should be removed
# --- Disable some Options on Windows
IF(WIN32)
# Trilinos is not available on Windows
MESSAGE("Disabling TRILINOS on Windows")
SET(WAVES_USE_MRSTLNOS OFF CACHE BOOL "" FORCE)
SET(WAVES_USE_KATOPTRON OFF CACHE BOOL "" FORCE)
SET(WAVES_USE_TLNOS OFF CACHE BOOL "" FORCE)
ENDIF()
......@@ -81,6 +83,7 @@ IF((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Inte
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -Wno-unknown-pragmas -Wno-sign-compare") # merge trilinos
ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE)
ADD_DEFINITIONS(-D_USE_MATH_DEFINES) # otherwise M_PI is undefined
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") # parallel build with MSVC
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") # add verbosity
ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
......@@ -94,14 +97,17 @@ IF(APPLE)
ENDIF()
# -- Search for Python
IF(USE_PY3)
SET(pyVersion 3.6)
IF (CMAKE_VERSION VERSION_LESS 3.12.0)
FIND_PACKAGE(PythonInterp 3.6 REQUIRED)
FIND_PACKAGE(PythonLibs 3.6 REQUIRED)
ELSE()
SET(pyVersion 2.7)
find_package (Python3 COMPONENTS Interpreter Development)
# use Python3_ROOT_DIR if wrong python found (e.g. anaconda)
SET(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
SET(PYTHON_LIBRARIES ${Python3_LIBRARIES})
SET(PYTHON_INCLUDE_PATH ${Python3_INCLUDE_DIRS})
SET(PYTHONLIBS_VERSION_STRING ${Python3_VERSION})
ENDIF()
FIND_PACKAGE(PythonInterp ${pyVersion} REQUIRED)
FIND_PACKAGE(PythonLibs ${pyVersion} REQUIRED)
MESSAGE(STATUS "PYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}")
MESSAGE(STATUS "PYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}")
MESSAGE(STATUS "PYTHON_INCLUDE_DIR:FILEPATH=${PYTHON_INCLUDE_DIR}")
......@@ -140,6 +146,11 @@ ELSE()
MESSAGE("Doxygen need to be installed to generate the doxygen documentation")
ENDIF()
# -- Configure file (for SWIG to detect definitions)
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/waves_config.h.in
${PROJECT_BINARY_DIR}/waves_config.h)
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}) # to find "waves_config.h"
# -- CTest
ENABLE_TESTING()
......@@ -168,8 +179,8 @@ IF(WAVES_USE_MIRRORS)
ADD_SUBDIRECTORY( mirrors )
ENDIF()
IF(WAVES_USE_MRSTLNOS)
ADD_SUBDIRECTORY( mrstlnos )
IF(WAVES_USE_KATOPTRON)
ADD_SUBDIRECTORY( katoptron )
ENDIF()
IF(WAVES_USE_PARAMS)
......@@ -188,4 +199,12 @@ IF(WAVES_USE_WAVES)
ADD_SUBDIRECTORY( waves )
ENDIF()
# -- Packaging
# set paths and target names
SET(WAVES_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/fwk/src" "${PROJECT_SOURCE_DIR}/tbox/src" "${PROJECT_BINARY_DIR}")
SET(WAVES_SWIG_DIRS "${PROJECT_SOURCE_DIR}/fwk/_src" "${PROJECT_SOURCE_DIR}/tbox/_src")
SET(WAVES_LIBRARIES fwk tbox)
# export target config
EXPORT(TARGETS ${WAVES_LIBRARIES} FILE "${PROJECT_BINARY_DIR}/wavesTargets.cmake")
# generate configuration file with absolute paths
CONFIGURE_FILE(waves-config.cmake.in "${PROJECT_BINARY_DIR}/waves-config.cmake" @ONLY)
......@@ -11,7 +11,7 @@
/flow/ @acrovato
/heat/ @R.Boman
/mirrors/ @Kim.Liegeois
/mrstlnos/ @Kim.Liegeois
/katoptron/ @Kim.Liegeois
/sph/ @R.Boman
/tlnos/ @R.Boman
/waves/ @R.Boman
......
......@@ -787,6 +787,7 @@ INPUT = @PROJECT_SOURCE_DIR@/README.md \
@PROJECT_SOURCE_DIR@/fwk/src \
@PROJECT_SOURCE_DIR@/heat/src \
@PROJECT_SOURCE_DIR@/mirrors/src \
@PROJECT_SOURCE_DIR@/katoptron/src \
@PROJECT_SOURCE_DIR@/sph/src \
@PROJECT_SOURCE_DIR@/tbox/src \
@PROJECT_SOURCE_DIR@/waves/src
......@@ -1726,7 +1727,7 @@ PAPER_TYPE = a4
# If left blank no extra packages will be included.
# This tag requires that the tag GENERATE_LATEX is set to YES.
EXTRA_PACKAGES =
EXTRA_PACKAGES = amsmath
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
# generated LaTeX document. The header should contain everything until the first
......
#!/usr/bin/env python
# -*- coding: latin-1; -*-
#!/usr/bin/env python3
# -*- coding: utf-8; -*-
# Copyright 2020 University of Liège
#
......@@ -16,7 +16,7 @@
# limitations under the License.
from __future__ import print_function
import numpy as np
import os
import shutil
......
#!/usr/bin/env python
# -*- coding: latin-1; -*-
#!/usr/bin/env python3
# -*- coding: utf-8; -*-
# Copyright 2020 University of Liège
#
......@@ -16,13 +16,6 @@
# limitations under the License.
from __future__ import print_function
from __future__ import division
from builtins import zip
from builtins import str
from builtins import range
from past.utils import old_div
from builtins import object
import tbox
import math
......@@ -60,7 +53,7 @@ tags = enum('READY', 'DONE', 'EXIT', 'START', 'WAKEUP', 'SUICIDE')
class Job(object):
class Job:
""" Class containing data transmitted between MPI procs
"""
def __init__(self, parameters, name, xi, m_i):
......@@ -91,7 +84,7 @@ class Job(object):
os.chdir('..')
class Master(object):
class Master:
"""
MPI Process with rank #0
"""
......@@ -218,7 +211,7 @@ class Master(object):
correlations = surrogate_parameters['correlations']
for j in range(0,d):
xi[j] = old_div((X[m_i,j]-means[j]),(surrogate_parameters['nstddeviation']*np.sqrt(variances[j])))
xi[j] = (X[m_i,j]-means[j]) / (surrogate_parameters['nstddeviation']*np.sqrt(variances[j]))
elif surrogate_parameters['training_points'] == 'gamma':
means = surrogate_parameters['means']
......@@ -249,7 +242,7 @@ class Master(object):
elif surrogate_parameters['training_points'] == 'gamma':
xi2 = np.zeros((d,))
for j in range(0,d):
xi2[j] = old_div((xi[j][0]-means[j]),np.sqrt(variances[j]))
xi2[j] = (xi[j][0]-means[j]) / np.sqrt(variances[j])
Z[m_i,:] = np.transpose(phi(xi2,N,n_max,d))
#print xi2
else:
......@@ -351,7 +344,7 @@ class Master(object):
comm.send(None, dest=s, tag=tags.SUICIDE)
class Worker(object):
class Worker:
"""
MPI Process with rank #1-#n
"""
......
# -*- coding: latin-1; -*-
# -*- coding: utf-8; -*-
# mirrors MODULE initialization file
import tbox
......
#!/usr/bin/env python
# -*- coding: latin-1; -*-
#!/usr/bin/env python3
# -*- coding: utf-8; -*-
# Copyright 2020 University of Liège
#
......