...
 
Commits (364)

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

# Exclude the usual build environment stuff.
.clang-format
.git
.gitignore
.gitlab-ci.yml
ThirdParty
build
builds
.DS_Store
# Make sure Dockerfiles aren't included in build context to
# improve caching.
pkg/docker/nektar/Dockerfile
pkg/docker/nektar-workbook/Dockerfile
pkg/docker/nektar-env/Dockerfile
# Files to ignore for export
.gitlab-ci.yml export-ignore
.gitignore export-ignore
.gitattributes export-ignore
.gitmodules export-ignore
......
.*
!.gitignore
!.gitlab-ci.yml
!.gitattributes
!.clang-format
!.dockerignore
# Ignore builds and ThirdParty directories
build
builds
......@@ -12,3 +14,6 @@ ThirdParty
*.pdf
# Kdevelop project files
*.kdev4
# Sublime project files
*.sublime-project
*.sublime-workspace
stages:
- docker-build-env
- docker-build-image
- docker-build-dev
- docker-test-image
.docker_build_template: &docker_build_template
image: docker:stable
stage: docker-build-image
only:
- master
- /^docker\/.*$/
- tags
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- docker pull ${image_name} || true
- DOCKER_BUILDKIT=1 docker build -t ${image_name} -f ${dockerfile} .
- docker tag ${image_name} ${image_name}:$CI_COMMIT_SHORT_SHA
- docker push ${image_name}:$CI_COMMIT_SHORT_SHA
- if [ ! -z $CI_COMMIT_TAG ]; then docker tag ${image_name} ${image_name}:$CI_COMMIT_TAG; docker push ${image_name}:$CI_COMMIT_TAG; fi
- docker push ${image_name}:latest
.docker-test-template: &docker_test_template
image: ${image_name}
stage: docker-test-image
only:
- master
- /^docker\/.*$/
- tags
docker-build-env:
<<: *docker_build_template
stage: docker-build-env
variables:
image_name: nektarpp/nektar-env
dockerfile: docker/nektar-env/Dockerfile
only:
refs:
- master
- /^docker\/.*$/
- tags
changes:
- docker/nektar-env/Dockerfile
docker-build-nektar:
<<: *docker_build_template
variables:
image_name: nektarpp/nektar
dockerfile: docker/nektar/Dockerfile
GIT_SUBMODULE_STRATEGY: normal
docker-build-workbook:
<<: *docker_build_template
variables:
image_name: nektarpp/nektar-workbook
dockerfile: docker/nektar-workbook/Dockerfile
docker-build-dev:
<<: *docker_build_template
stage: docker-build-dev
variables:
image_name: nektarpp/nektar-dev
dockerfile: docker/nektar-dev/Dockerfile
docker-test-nektar:
<<: *docker_test_template
variables:
image_name: nektarpp/nektar
script:
- mpirun -n 3 IncNavierStokesSolver $CI_PROJECT_DIR/solvers/IncNavierStokesSolver/Tests/ChanFlow_m3_par.xml
docker-test-nektar-dev:
<<: *docker_test_template
variables:
image_name: nektarpp/nektar-dev
script:
- cd $CI_PROJECT_DIR/templates/executable
- ./test.sh /usr/local/lib64/nektar++/cmake 3
[submodule "docs/tutorial"]
branch = master
path = docs/tutorial
url = git@gitlab.nektar.info:nektar/tutorial
url = https://gitlab.nektar.info/nektar/tutorial.git
ignore = all
Changelog
=========
v5.1.0
------
**Library**
- Added IMEXOrder4, RK5 and AB4 time integration schemes (!1037)
**FieldConvert**
- Add field conversion from Halfmode to SingleMode (!1032)
v5.0.0
------
**Library**
- Added in sum factorisation version for pyramid expansions and orthogonal
expansion in pyramids (!750)
- Added detection of 'abort' file to cleanly terminate simulation early (!772)
- Significant overhaul of CMake infrastructure (!770, !804)
- Fix ThridpartyCCM options (!802)
- Fix Windows CRLF tokens in GEO reader and improve comment handling (!805)
......@@ -46,6 +39,8 @@ v5.0.0
- Fix minor bug in ARPACK thirdparty build cmake (!874)
- Added in sum factorisation version for pyramid expnasions and orthogonal
expansion in pyramids (!750)
- Adjust boost third-party compilation to account for different toolset
choices (!886)
- Switch MeshGraph to use factory pattern and add HDF5 geometry support (!900,
!904, !941)
- Restructure the low energy preconditioner to handle pyramidic and variable
......@@ -62,7 +57,7 @@ v5.0.0
- Fix ability to have periodic boundary conditions that are aligned by a
rotation rather than just a translation (!933)
- Added a coupling interface to exchange data between solvers at run time
and a DummySolver to test the implementations (!853, !931, !950, !973)
and a DummySolver to test the implementations (!853, !931, !950, !973, !1017)
- Fix compilation issue with newer Boost versions and clang (!940)
- If only `NEKTAR_BUILD_LIBRARY` is enabled, only libraries up to and including
`MultiRegions` will be built by default (!945)
......@@ -70,7 +65,8 @@ v5.0.0
- Fix missing metadata import from Hdf5 files (!971)
- Fix missing flags for periodic BC in DiffusionLDG (!985)
- Add the moving reference frame as a forcing (!987)
- Added rtree for element bounding box lookup to accelerate interpolation (!996)
- Added rtree for element bounding box lookup to accelerate interpolation (!996,
!1066)
- Fix integration weights on prisms and pyramids if not using the default
integration rule (!998)
- Fix missing ContainsPoint in Pyramid expansion (!1000)
......@@ -79,11 +75,25 @@ v5.0.0
- Combine and generalise demo code in StdRegions and LocalRegions (!993)
- Fix for error output to allow for custom error streams (!944)
- Fixed bug in ReOrientQuadFacePhysMap (!1003)
- Add NekPy Python interface (!962, !990, !989, !1004)
- Add NekPy Python interface (!962, !990, !989, !1004, !1014, !1061, !1070)
- Fix edge case for ThirdPartyScotch and FindScoth (!1009)
- Fix to populate m_elmtToExpId map if not already set up in GetExpIndex (!1019)
- Added flag to skip periodic BCs while filling Dirichlet BCs in
ContField3D.cpp (!1018)
- Fix bounding box for interpolation (!1033)
- Added IMEXOrder4, RK5 and AB4 time integration schemes (!1037)
- Fix TriExp.cpp orientation bug (!1048)
- Fix XML attributes in conditions.cpp to be unordered (!1015)
- Fix issue with HDF5 mesh input in serial (!1049)
- Add estimate of filters CPU time (!1044)
- Update CompressibleFlowSolver/Examples/Test_IsentropicVortex1.xml example (!1045)
- Add error if HDG used with periodic BCs (!1071)
- Fix issues related to leading factors, arithmetic order and associativity of
exponential operator in expression evaluator (!1066)
- Remove use of `using namespace std` in header files (!1066)
- Add error messages for use of ARPACK in serial (!1079)
- Generalise ContainsPoint routine (!1078)
- Homogenized fallthrough to fix issues with gcc 7.4.0 (!1084)
**NekMesh**:
- Add feature to read basic 2D geo files as CAD (!731)
......@@ -121,6 +131,8 @@ v5.0.0
- Fix issue with extracting 1D curved surface from 2D file (!984)
- Fix surface extraction, added regression test (!994)
- Fix 2D meshing running out of memory due to missing else (!1012)
- Add support for .msh v4.1 file input (!1054)
- Added penalty term to LDG and LDGNS, slight generalization of LDG (!1080)
**FieldConvert**:
- Add input module for Semtex field files (!777)
......@@ -143,6 +155,10 @@ v5.0.0
- Fixed nparts option in FieldConvert and automated Info.xml generation (!995)
- Added if statement to fix case of 1D/2D manifold interpolation in 1D/2D space,
added check on dimensions for interpolation, fixed seg interp (!999)
- Fixed scaling for compressed xml, fixed error printout for mesh only (!1040)
- Add field conversion from Halfmode to SingleMode (!1032)
- Fix double precision output in .dat format (!1059)
- Add phase sampling feature in FilterFieldConvert (!1068)
**IncNavierStokesSolver**
- Replace steady-state check based on difference of norms by check based on
......@@ -150,7 +166,8 @@ v5.0.0
- Updated SVV to allow for the DGKernel extension (!851)
- Pre-calculate Time invariant portion of Womersley Solution (!814)
- Fix for independent setting of SVV in Homogeneous direction (!936)
- Write flow field based on CFL treshold (!1025)
- Write flow field based on CFL threshold (!1025)
- Fix unsteady Stokes solver (!1074)
**CompressibleFlowSolver**
- Add 3D regression tests (!567)
......@@ -164,6 +181,7 @@ v5.0.0
- Modified pressure outlet BCs to allow for the reference static pressure to be
set from the VALUE fields (!981)
- hp scaling for Laplacian AV (!1013)
- Removed smooth AV (!1072)
**AcousticSolver:**
- Added two new boundary conditions to the APE system: RiemannInvariantBC
......@@ -173,17 +191,31 @@ v5.0.0
- The APE system now uses u_i, c^2 and rho as base flow fields (!918)
- Added the Linearized Euler Equations (LEE) (!918)
**ADRSolver:**
- Fix forcing from file for Poisson solver (!1029)
**APESolver:**
- APESolver was replaced with AcousticSolver (!918)
**PulseWaveSolver**
- Added two new boundary conditions: AInflow and UInflow
**CardiacEPSolver**
- Converted FentonKarma model to dimensional form and added variants (!1011)
**Documentation**:
- Added an initial developer's guide (!1001)
- Updated user guide to reflect current implementation (!1051)
- Added manpages for key solvers and utilities (!1051)
**Tester**
- Fix build with boost 1.67 (!947)
- Various change to tests to decrease test time (!1053)
- Extend to support MPI tests with multiple executables (!1085)
**Packaging:**
- Add Dockerfiles and gitlab CI configuration for automatic builds (!1021,
!1092, !1098)
v4.4.2
------
......
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11)
SET(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build,
options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release
RelWithDebInfo MinSizeRel.")
......@@ -70,7 +70,7 @@ IF (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
ENDIF()
# Find default search paths for OS X; adapted from Stack Overflow question
# 1487752
# 1487752.
IF (APPLE)
EXECUTE_PROCESS(COMMAND which port
RESULT_VARIABLE DETECT_MACPORTS
......@@ -162,13 +162,14 @@ OPTION(NEKTAR_BUILD_UNIT_TESTS "Build unit tests." ON)
OPTION(NEKTAR_BUILD_TESTS "Build regression tests." ON)
OPTION(NEKTAR_BUILD_TIMINGS "Build benchmark timing codes." OFF)
OPTION(NEKTAR_BUILD_PYTHON "Build Nektar++ Python bindings" OFF)
OPTION(NEKTAR_BUILD_PACKAGES "Build Nektar++ binary packages" OFF)
MARK_AS_ADVANCED(NEKTAR_BUILD_PACKAGES)
OPTION(NEKTAR_TEST_ALL "Include full set of regression tests to this build." OFF)
OPTION(NEKTAR_TEST_USE_HOSTFILE "Use a hostfile to explicitly specify number of
slots." OFF)
OPTION(NEKTAR_ERROR_ON_WARNINGS "Use -Werror to make warnings stop compilation." ON)
MARK_AS_ADVANCED(NEKTAR_ERROR_ON_WARNINGS)
# Meshing utilities and library
IF (NOT WIN32)
OPTION(NEKTAR_USE_MESHGEN "Build mesh generation utilities." OFF)
......@@ -340,7 +341,3 @@ INSTALL(DIRECTORY ${TPDIST}/include/
)
ADD_SUBDIRECTORY(docs)
IF(NEKTAR_BUILD_PACKAGES)
ADD_SUBDIRECTORY(pkg)
ENDIF(NEKTAR_BUILD_PACKAGES)
......@@ -52,6 +52,15 @@ project. It's a pretty simple process:
- Did you add regression tests (for fixes) or unit tests and/or normal tests for
new features?
- Have you run your branch through buildbot and do all the tests pass?
- Have you fixed any new compiler warnings your code has introduced into the
compilation step for all of the Linux buildbots?
- **unused parameters**: if these are genuinely needed (e.g. virtual functions
in a derived class, please use `boost::ignore_unused()` to mark as such.
- **switch case may fall-through**: for switch statements which
*intentionally* exploit fall-through between cases, mark the end of such
cases with the comment `/* Falls through. */` to suppress the warning.
- Avoid `ASSERTL0(false, msg)`; instead use `NEKERROR(ErrorUtil:efatal, msg)`.
- Ensure variables are initialised with sensible default values.
- Is there documentation in the user guide and/or developer guide?
- Have you added a CHANGELOG entry, including the MR number?
- Are there any massive files you might have added in the commit history? We try
......@@ -110,15 +119,23 @@ You should also test your branch on the
the code against a number of Linux, Mac and Windows operating systems, both 32-
and 64-bit. If your tests don't pass, we can't merge the code into master.
Testing is presently manually executed. You should:
1. Go to the buildbot site and navigate to the *Builders* page.
2. Scroll to the bottom of the page in the section *Force all builds*
3. Enter your details. If you're working on a fork, then the *Suffix to repo
url* box should be changed to `username/nektar`.
4. Hit the *Force build* button.
5. Check the output in the *Grid* page -- hopefully everything should be green!
Tests can take up to two hours to run.
When you submit a merge request testing on buildbot will happen automatically,
unless you have marked the merge request as a work-in-progress (WIP: prefix).
Each time you push commits to a non-WIP merge request branch, it will also
trigger a build.
For WIP merge request branches, you can force a build on individual builders
using the buildbot web interface:
1. Go to the buildbot site and log in using the drop-down menu (top right).
2. Go to the console display and select the builder from the column headings on
which you would like to force test.
3. Select 'Force' from the top-right of the page.
4. Enter the details as required. If you're working on a fork, then the *Fork*
box should be changed to `username/nektar`.
5. Hit the *Start build* button.
6. Return to the *console* display to see progress. You can click on the
flashing indicator for your active build to see progress and output.
## Documentation
Nektar++ has a fairly comprehensive user guide and a developer guide that is
......
......@@ -4,7 +4,6 @@ Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
Department of Aeronautics, Imperial College London (UK), and Scientific
Computing and Imaging Institute, University of Utah (USA).
License for the specific language governing rights and limitations under
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
......
This diff is collapsed.
# Doxygen support
# adapted from http://www.bluequartz.net/projects/EIM_Segmentation/ SoftwareDocumentation/html/usewithcmakeproject.html
# adapted from http://www.bluequartz.net/projects/EIM_Segmentation/
# SoftwareDocumentation/html/usewithcmakeproject.html
OPTION(NEKTAR_BUILD_DOC "Build source code documentation using doxygen" OFF)
CMAKE_DEPENDENT_OPTION(NEKTAR_BUILD_DOC_QHP
......@@ -11,6 +12,9 @@ CMAKE_DEPENDENT_OPTION(NEKTAR_BUILD_DOC_XCODE
CMAKE_DEPENDENT_OPTION(NEKTAR_BUILD_DOC_ECLIPSE
"Use Doxygen to create documentation for Eclipse" OFF
"NEKTAR_BUILD_DOC" OFF)
CMAKE_DEPENDENT_OPTION(NEKTAR_BUILD_DOC_FIXEDWIDTH
"Use a fixed-width style sheet for doxygen output" OFF
"NEKTAR_BUILD_DOC" OFF)
IF (NEKTAR_BUILD_DOC)
FIND_PACKAGE(Doxygen)
......@@ -27,18 +31,23 @@ IF (NEKTAR_BUILD_DOC)
IF(NEKTAR_BUILD_DOC_ECLIPSE)
SET(DOXYGEN_GENERATE_ECLIPSEHELP "YES")
ENDIF()
INSTALL(DIRECTORY ${PROJECT_BINARY_DIR}/docs/doxygen/
DESTINATION ${NEKTAR_DOC_DIR})
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/docs/doxygen/Doxyfile.in
SET(DOXYGEN_EXTRA_CSS "")
IF(NEKTAR_BUILD_DOC_FIXEDWIDTH)
SET(DOXYGEN_EXTRA_CSS "docs/doxygen/doxygen-fixed-width.css")
ENDIF()
INSTALL(DIRECTORY ${PROJECT_BINARY_DIR}/docs/doxygen/html/
DESTINATION ${NEKTAR_DOC_DIR}/doxygen)
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/docs/doxygen/Doxyfile.in
${PROJECT_BINARY_DIR}/docs/doxygen/Doxyfile @ONLY IMMEDIATE)
ADD_CUSTOM_TARGET(doc
COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_SOURCE_DIR}/docs/doxygen/doxygen-fixed-width.css
${PROJECT_BINARY_DIR}/docs/doxygen/doxygen-fixed-width.css
COMMAND ${DOXYGEN_EXECUTABLE}
${PROJECT_BINARY_DIR}/docs/doxygen/Doxyfile
COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/docs/doxygen/Doxyfile
SOURCES ${PROJECT_BINARY_DIR}/docs/doxygen/Doxyfile)
ENDIF (NEKTAR_BUILD_DOC)
......
......@@ -91,7 +91,7 @@ find_path (PETSC_DIR include/petsc.h
# Arch Linux path
/opt/petsc/linux-c-opt
# MacPorts path
/opt/local/lib/petsc
${MACPORTS_PREFIX}/lib/petsc
$ENV{HOME}/petsc
DOC "PETSc Directory")
......
......@@ -110,7 +110,7 @@ IF (SCOTCH_LIBRARY AND SCOTCHERR_LIBRARY AND SCOTCH_INCLUDE_DIR)
# Finally, test if serial library needs to be linked as well.
TRY_COMPILE( COMPILE_RESULT
${CMAKE_CURRENT_BINARY_DIR}/
${CMAKE_CURRENT_SOURCE_DIR}/cmake/scripts/get-scotch-version.c
${CMAKE_CURRENT_SOURCE_DIR}/cmake/scripts/check-ptscotch-link.c
CMAKE_FLAGS -DINCLUDE_DIRECTORIES=${SCOTCH_INCLUDE_DIR}
-DLINK_DIRECTORIES=${SCOTCH_LIBRARY_DIR}
LINK_LIBRARIES "ptscotch" "ptscotcherr"
......