Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
c6cd9f9
Begin of refactor (new class dgMesh)
ImperatorS79 Jul 25, 2020
4b119fa
Fix travis in PR (if I did not screwed up)
ImperatorS79 Jul 28, 2020
e082fca
Continue refactor of Mesh
ImperatorS79 Jul 28, 2020
bc97a45
Travis annoys me
ImperatorS79 Jul 28, 2020
9449ef1
Load edges (still need to find the "edge in front')
ImperatorS79 Jul 30, 2020
c0c83bf
Fix potential invalid pointers due to vector reallocation
ImperatorS79 Jul 31, 2020
5a8349e
First implementation of an "edgeInFront" algorithm
ImperatorS79 Aug 2, 2020
98ac036
Fix crash
ImperatorS79 Aug 2, 2020
488a0ae
Update Mesh class
ImperatorS79 Aug 28, 2020
e3ceb1a
Fix travis ?
ImperatorS79 Aug 28, 2020
1e0c275
Will not fix travis but anyway
ImperatorS79 Aug 28, 2020
707a666
Who knows if travis will be fixed with that commit ?
ImperatorS79 Aug 28, 2020
2f3e4da
Try not to use docker
ImperatorS79 Aug 28, 2020
0426336
One more commit ^^
ImperatorS79 Aug 28, 2020
cedb1c6
Better warnings
ImperatorS79 Aug 28, 2020
ce134e5
Test multiple os travis
ImperatorS79 Aug 28, 2020
bf4e87b
Fix a warning using gcc on linux
ImperatorS79 Aug 28, 2020
6237e93
Let's try to add windows and fix macOS
ImperatorS79 Aug 28, 2020
5f4f9fc
Let's hope it works this time
ImperatorS79 Aug 28, 2020
4f3ca83
Well well well
ImperatorS79 Aug 28, 2020
6432094
Hop hop hop
ImperatorS79 Aug 28, 2020
37ce5f8
You are without any doubt the worse pirate I have ever heard of
ImperatorS79 Aug 28, 2020
6eca881
I am not a clever man
ImperatorS79 Aug 28, 2020
51fc07f
Will macOS succeed now ?
ImperatorS79 Aug 28, 2020
ee82759
macOS I am trying my best
ImperatorS79 Aug 28, 2020
b230579
Last try before I kill apple
ImperatorS79 Aug 28, 2020
99d1176
Fix build on macOS and use MSVC on windows
ImperatorS79 Aug 28, 2020
e20d695
Fix windows and apple build
ImperatorS79 Aug 28, 2020
00a8064
Final fix I hope
ImperatorS79 Aug 28, 2020
734a99d
Fix msvc being stupid
ImperatorS79 Aug 28, 2020
60b0d24
Fix msvc stupid warning round 2
ImperatorS79 Aug 28, 2020
d8183ba
Reswitch to mingw on windows
ImperatorS79 Aug 28, 2020
f1663c5
Quick fix
ImperatorS79 Aug 28, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 108 additions & 11 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,111 @@
language: cpp

matrix:
jobs:
include:
- env: NAME="Ubuntu 64 bits"
sudo: required
services:
- docker
before_install:
- docker run -d --name ubuntu-19-04 -v $(pwd):/travis ubuntu:19.04 tail -f /dev/null
install:
- docker exec -t ubuntu-19-04 bash -c "apt-get -qq update; apt-get install -y git; apt-get install -y cmake; apt-get install -y build-essential; apt-get install -y wget; apt-get install -y tar; apt-get install -y libgfortran3; apt-get install -y libgmsh-dev; apt-get install -y libeigen3-dev"
script:
- docker exec -t ubuntu-19-04 bash -c "cd /travis; ./build_travis.sh;"
- os: linux
dist: focal
compiler: gcc
- os: osx
osx_image: xcode12u
- os: windows

before_install:
- |-
case $TRAVIS_OS_NAME in
windows)
[[ ! -f C:/tools/msys64/msys2_shell.cmd ]] && rm -rf C:/tools/msys64
choco uninstall -y mingw
choco upgrade --no-progress -y msys2
export msys2='cmd //C RefreshEnv.cmd '
export msys2+='& set MSYS=winsymlinks:nativestrict '
export msys2+='& C:\\tools\\msys64\\msys2_shell.cmd -defterm -no-start'
export mingw64="$msys2 -mingw64 -full-path -here -c "\"\$@"\" --"
export msys2+=" -msys2 -c "\"\$@"\" --"
$msys2 pacman --sync --noconfirm --needed mingw-w64-x86_64-toolchain
## Install more MSYS2 packages from https://packages.msys2.org/base here
taskkill //IM gpg-agent.exe //F # https://travis-ci.community/t/4967
export PATH=/C/tools/msys64/mingw64/bin:$PATH
export MAKE=mingw32-make # so that Autotools can find it
;;
esac

before_cache:
- |-
case $TRAVIS_OS_NAME in
windows)
# https://unix.stackexchange.com/a/137322/107554
$msys2 pacman --sync --clean --noconfirm
;;
esac

cache:
directories:
- $HOME/AppData/Local/Temp/chocolatey
- /C/tools/msys64

install:
- if [ $TRAVIS_OS_NAME == linux ]; then
sudo apt-get update && sudo apt-get install -y cmake wget tar libgmsh-dev;
wget http://gmsh.info/bin/Linux/gmsh-4.6.0-Linux64-sdk.tgz;
tar -xf gmsh-4.6.0-Linux64-sdk.tgz;
wget https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz;
tar -xf eigen-3.3.7.tar.gz;
fi
- if [ $TRAVIS_OS_NAME == osx ]; then
brew update && brew install cmake wget gnu-tar llvm libomp;
wget http://gmsh.info/bin/MacOSX/gmsh-4.6.0-MacOSX-sdk.tgz;
gtar -xf gmsh-4.6.0-MacOSX-sdk.tgz;
wget https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz;
gtar -xf eigen-3.3.7.tar.gz;
fi
- if [ $TRAVIS_OS_NAME == windows ]; then
wget http://gmsh.info/bin/Windows/gmsh-4.6.0-Windows64-sdk.zip;
7z x gmsh-4.6.0-Windows64-sdk.zip;
wget https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz;
7z x eigen-3.3.7.tar.gz;
fi

before_script:
- if [ $TRAVIS_OS_NAME == linux ]; then
export PATH=${PWD}/gmsh-4.6.0-Linux64-sdk/bin:${PWD}/gmsh-4.6.0-Linux64-sdk/lib:${PATH};
export INCLUDE=${PWD}/gmsh-4.6.0-Linux64-sdk/include:${INCLUDE};
export LIB=${PWD}/gmsh-4.6.0-Linux64-sdk/lib:${LIB};
export PYTHONPATH=${PWD}/gmsh-4.6.0-Linux64-sdk/lib:${PYTHONPATH};
export INCLUDE=${PWD}/eigen-3.3.7/:${INCLUDE};
fi
- if [ $TRAVIS_OS_NAME == osx ]; then
export PATH=${PWD}/gmsh-4.6.0-MacOSX-sdk/bin:${PWD}/gmsh-4.6.0-MacOSX-sdk/lib:${PATH};
export INCLUDE=${PWD}/gmsh-4.6.0-MacOSX-sdk/include:${INCLUDE};
export LIB=${PWD}/gmsh-4.6.0-MacOSX-sdk/lib:${LIB};
export PYTHONPATH=${PWD}/gmsh-4.6.0-MacOSX-sdk/lib:${PYTHONPATH};
export INCLUDE=${PWD}/eigen-3.3.7/:${INCLUDE};
fi
- if [ $TRAVIS_OS_NAME == windows ]; then
export PATH=${PWD}/gmsh-4.6.0-Windows64-sdk/bin:${PWD}/gmsh-4.6.0-Windows64-sdk/lib:${PATH};
export INCLUDE=${PWD}/gmsh-4.6.0-Windows64-sdk/include:${INCLUDE};
export LIB=${PWD}/gmsh-4.6.0-Windows64-sdk/lib:${LIB};
export PYTHONPATH=${PWD}/gmsh-4.6.0-Windows64-sdk/lib:${PYTHONPATH};
export INCLUDE=${PWD}/eigen-3.3.7/:${INCLUDE};
fi
- mkdir build
- cd build
- if [ $TRAVIS_OS_NAME == linux ]; then
cmake .. -DCMAKE_BUILD_TYPE=Release -G "Unix Makefiles";
fi
- if [ $TRAVIS_OS_NAME == osx ]; then
LDFLAGS="-L/usr/local/opt/llvm/lib" CPPFLAGS="-I/usr/local/opt/llvm/include" cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/local/opt/llvm/bin/clang -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm/bin/clang++ -G "Unix Makefiles";
fi
- if [ $TRAVIS_OS_NAME == windows ]; then
cmake .. -DCMAKE_BUILD_TYPE=Release -G "MinGW Makefiles";
fi

script:
- if [ $TRAVIS_OS_NAME == linux ]; then
make;
fi
- if [ $TRAVIS_OS_NAME == osx ]; then
make;
fi
- if [ $TRAVIS_OS_NAME == windows ]; then
mingw32-make;
fi
56 changes: 16 additions & 40 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PROJECT(MULTIPHYSICS CXX)
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
CMAKE_MINIMUM_REQUIRED(VERSION 3.12)

# build type is "" by default in Linux
IF(NOT CMAKE_BUILD_TYPE)
Expand All @@ -13,12 +13,9 @@ SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin/ CACHE PATH "")
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin/ CACHE PATH "")
MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)

# enable C++11
SET(CMAKE_CXX_STANDARD 11) # newer way to set C++11 (requires cmake>3.1)
SET(CMAKE_CXX_STANDARD 17)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
#SET(CMAKE_CXX_FLAGS "-fopenmp") #enable openmp

# compiler options
IF(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS)
ADD_DEFINITIONS(-D_USE_MATH_DEFINES) # for M_PI
Expand All @@ -30,45 +27,24 @@ IF(APPLE)
SET(CMAKE_FIND_FRAMEWORK LAST)
ENDIF()

# find gmsh-sdk
# gmsh.h
FIND_PATH(GMSH_INCLUDE_DIRS NAMES "gmsh.h")
MESSAGE(STATUS "GMSH_INCLUDE_DIRS=" ${GMSH_INCLUDE_DIRS})
if(NOT GMSH_INCLUDE_DIRS)
MESSAGE(FATAL_ERROR "gmsh.h not found!")
ENDIF()
INCLUDE_DIRECTORIES(${GMSH_INCLUDE_DIRS})

# libgmsh.so
FIND_LIBRARY(GMSH_LIBRARIES gmsh)
MESSAGE(STATUS "GMSH_LIBRARIES=" ${GMSH_LIBRARIES})
IF(NOT GMSH_LIBRARIES)
MESSAGE(FATAL_ERROR "gmsh library not found!")
ENDIF()

# gmsh.exe
FIND_PROGRAM(GMSH_EXECUTABLE gmsh)
MESSAGE(STATUS "GMSH_EXECUTABLE=" ${GMSH_EXECUTABLE})
IF(NOT GMSH_EXECUTABLE)
MESSAGE(FATAL_ERROR "gmsh executable not found!")
ENDIF()

FIND_PATH(EIGEN_INCLUDE_DIRS NAMES "Eigen")
MESSAGE(STATUS "EIGEN_INCLUDE_DIRS=" ${EIGEN_INCLUDE_DIRS})
if(NOT EIGEN_INCLUDE_DIRS)
MESSAGE(FATAL_ERROR "eigen not found!")
ENDIF()
INCLUDE_DIRECTORIES(${EIGEN_INCLUDE_DIRS})

FIND_PACKAGE(OpenMP)
IF(OPENMP_FOUND)
MESSAGE(STATUS "OpenMP found")
FIND_PACKAGE(OpenMP REQUIRED)
IF(OPENMP_CXX_FOUND)
MESSAGE(STATUS "OpenMP found: " ${OpenMP_CXX_LIBRARIES})
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
SET (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
ELSE()
MESSAGE(STATUS "OpenMP not found")
MESSAGE(FATAL_ERROR "OpenMP not found !")
ENDIF()

IF(CMAKE_CXX_COMPILER_ID MATCHES GNU)
ADD_COMPILE_OPTIONS(-Wall -Wextra -pedantic-errors -Wold-style-cast -Wduplicated-cond -Wduplicated-branches -Wlogical-op -Wnull-dereference -Wuseless-cast -Wshadow)
ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES CLANG)
ADD_COMPILE_OPTIONS(-Wall -Wextra -pedantic-errors -Wold-style-cast -Wnull-dereference -Wshadow)
ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
ADD_COMPILE_OPTIONS(/W4 /WX /wd4251)
ENDIF()

ADD_SUBDIRECTORY( srcs )
INCLUDE(GenerateExportHeader)
ADD_SUBDIRECTORY(srcs)
ENABLE_TESTING()

20 changes: 0 additions & 20 deletions build_travis.sh

This file was deleted.

2 changes: 1 addition & 1 deletion geometry/dispersion/dispersion.geo
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Line(4) = {1, 2};
Curve Loop(1) = {1, 4, 3, 2};
Plane Surface(1) = {1};

Physical Surface(1) = {1};
Physical Surface("Domain") = {1};
// Boundary conditions
Physical Curve("BC_Left") = {1};
Physical Curve("BC_Up") = {2};
Expand Down
Loading