Skip to content

Commit

Permalink
small update
Browse files Browse the repository at this point in the history
-added CG method
-Zeeman energy fix
-ui improvements
  • Loading branch information
DTolm committed Aug 24, 2020
1 parent 9bf0ec4 commit 7b8bab9
Show file tree
Hide file tree
Showing 57 changed files with 2,316 additions and 1,328 deletions.
86 changes: 8 additions & 78 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,6 @@ env:

matrix:
include:
# OSX, xcode 10
- os: osx
osx_image: xcode10
env: CMAKE_OPTIONS="-DUSER_PATH_QT=~/usr/local/Cellar/qt/5.11.0" PYPI=true
# Linux, GCC 6
- os: linux
env: COMPILER_C=gcc-6 COMPILER_CXX=g++-6 CMAKE_OPTIONS="-DUSER_PATH_QT=~/opt/qt511" PYPI=true
compiler: g++
addons:
apt:
packages:
- g++-6
- qt511base
- qt511charts-no-lgpl
- ca-certificates
- python2.7
- mesa-common-dev
sources:
- sourceline: 'ppa:ubuntu-toolchain-r/test'
- sourceline: 'ppa:beineri/opt-qt-5.11.1-bionic'
# - sourceline: 'ppa:jonathonf/python-2.7'
# Linux, GCC 5
- os: linux
env: COMPILER_C=gcc-5 COMPILER_CXX=g++-5 CMAKE_OPTIONS="-DUSER_PATH_QT=~/opt/qt511" PYPI=false
Expand Down Expand Up @@ -125,33 +104,13 @@ matrix:
- sourceline: 'ppa:beineri/opt-qt-5.11.1-bionic'
# - sourceline: 'ppa:jonathonf/python-2.7'

# - compiler: clang
# addons:
# apt:
# sources:
# - ubuntu-toolchain-r-test
# - llvm-toolchain-precise-3.6
# packages:
# - clang-3.6
# env: COMPILER=clang++-3.6
# - compiler: clang
# addons:
# apt:
# sources:
# - ubuntu-toolchain-r-test
# - llvm-toolchain-precise-3.7
# packages:
# - clang-3.7
# env: COMPILER=clang++-3.7


before_install:
- sudo apt-get install
- python --version
- if [ "$TRAVIS_OS_NAME" != "osx" ]; then sudo pip uninstall -y six chardet pyOpenSSL; fi
- sudo pip install --upgrade pip six pyOpenSSL
- sudo pip install wheel numpy urllib3==1.23 twine coveralls chardet
# Run homebrew on osx
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update; fi
# Setup default versions and override compiler if needed
- if [[ "${LLVM_VERSION}" == "default" ]]; then LLVM_VERSION=3.9.0; fi
# Install a recent CMake (unless already installed on OS X)
Expand All @@ -164,38 +123,17 @@ before_install:
export PATH=${DEPS_DIR}/cmake/bin:${PATH}
export CC=${COMPILER_C} CXX=${COMPILER_CXX}
source /opt/qt511/bin/qt511-env.sh
else
if ! brew ls --version cmake &>/dev/null; then brew install cmake; fi
brew install cppcheck qt
brew link --force qt
export PATH=/usr/local/opt/qt/bin:${PATH}
fi
# Install CUDA
- |
if [[ "$USE_CUDA" == "true" ]]; then
export CUDA=10.1.105-1
# get cuda-repo-ubuntu1804
travis_retry wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_${CUDA}_amd64.deb
travis_retry sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
travis_retry sudo dpkg -i cuda-repo-ubuntu1804_${CUDA}_amd64.deb
# install
travis_retry sudo apt-get update -qq
export CUDA_APT=${CUDA:0:4}
export CUDA_APT=${CUDA_APT/./-}
travis_retry sudo apt-get install -y cuda-drivers cuda-core-${CUDA_APT} cuda-cudart-dev-${CUDA_APT} cuda-curand-dev-${CUDA_APT} cuda-cufft-dev-${CUDA_APT} --allow-unauthenticated
travis_retry sudo apt-get clean
# export
export CUDA_HOME=/usr/local/cuda-${CUDA:0:4}
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
export PATH=${CUDA_HOME}/bin:${PATH}
export CMAKE_OPTIONS="${CMAKE_OPTIONS} -DCMAKE_C_COMPILER=${COMPILER_C} -DCMAKE_CXX_COMPILER=${COMPILER_CXX} -DCUDA_TOOLKIT_ROOT_DIR=${CUDA_HOME}"
ls -a ${CUDA_HOME} ${CUDA_HOME}/bin ${CUDA_HOME}/include
fi
install:
# Build everything
- cd ${TRAVIS_BUILD_DIR}
- sudo apt-get -qq update
- sudo apt-get install -y libassimp-dev libglm-dev graphviz libxcb-dri3-0 libxcb-present0 libpciaccess0 cmake libpng-dev libxcb-dri3-dev libx11-dev libx11-xcb-dev libmirclient-dev libwayland-dev libxrandr-dev
- export VK_VERSION=1.2.131.1
- wget -O vulkansdk-linux-x86_64-$VK_VERSION.tar.gz https://sdk.lunarg.com/sdk/download/$VK_VERSION/linux/vulkansdk-linux-x86_64-$VK_VERSION.tar.gz
- tar zxf vulkansdk-linux-x86_64-$VK_VERSION.tar.gz
- export VULKAN_SDK=$TRAVIS_BUILD_DIR/$VK_VERSION/x86_64
- |
mkdir -p build
cd build
Expand Down Expand Up @@ -256,11 +194,3 @@ script:
- if [ "$COVERAGE" == "true" ]; then lcov -a baseline.info -a after_test.info -o total_test.info; fi
- if [ "$COVERAGE" == "true" ]; then lcov -r total_test.info \*thirdparty\* \*/test/\* \*Collection\* \*DLL_\* -o coverage.info; fi
- if [ "$COVERAGE" == "true" ]; then bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports"; fi

# Run Python coverage report generation and upload to coveralls
- cd ../core/python
- if [ "$COVERAGE" == "true" ]; then coverage run --source spirit --omit=spirit/spiritlib.py,spirit/collection.py setup.py test > cov.txt; fi
- if [ "$COVERAGE" == "true" ]; then head cov.txt; fi
- if [ "$COVERAGE" == "true" ]; then coverage report -m; fi
- if [ "$COVERAGE" == "true" ]; then coverage xml; fi
- if [ "$COVERAGE" == "true" ]; then coveralls; fi
5 changes: 5 additions & 0 deletions core/include/Spirit/Hamiltonian.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,9 @@ PREFIX void Hamiltonian_Set_Exchange_Tensor(State *state, float exchange_tensor,

// Set the Dzyaloshinskii-Moriya interaction tensor for micromagnetics [meV]
PREFIX void Hamiltonian_Set_DMI_Tensor(State *state, float dmi_tensor[2], int region_id, int idx_image=-1, int idx_chain=-1) SUFFIX;

//Set regions damping
PREFIX void Hamiltonian_Set_damping(State* state, float alpha, int region_id, int idx_image = -1, int idx_chain = -1) SUFFIX;
// Set the frozen spins
PREFIX void Hamiltonian_Set_frozen_spins(State* state, float frozen_spins, int region_id, int idx_image = -1, int idx_chain = -1) SUFFIX;

Expand Down Expand Up @@ -180,6 +183,8 @@ PREFIX int Hamiltonian_Get_DMI_N_Pairs(State *state, int idx_image=-1, int idx_

//Micromagnetics DMI tensor
PREFIX void Hamiltonian_Get_DMI_Tensor(State *state, float * dmi_tensor, int region_id, int idx_image=-1, int idx_chain=-1) SUFFIX;
//Get LLG damping
PREFIX void Hamiltonian_Get_damping(State* state, float* alpha, int region_id, int idx_image = -1, int idx_chain = -1) SUFFIX;
//Micromagnetics DDI coefficient
PREFIX void Hamiltonian_Get_DDI_coefficient(State* state, float* ddi, int region_id, int idx_image = -1, int idx_chain = -1) SUFFIX;
//Micromagnetics frozen spins
Expand Down
16 changes: 16 additions & 0 deletions core/include/Spirit/Parameters_LLG.h
Original file line number Diff line number Diff line change
Expand Up @@ -167,5 +167,21 @@ Returns the spin current configuration.
*/
PREFIX void Parameters_LLG_Get_STT(State *state, bool * use_gradient, float * magnitude, float normal[3], int idx_image=-1, int idx_chain=-1) SUFFIX;



//micromagnetics
PREFIX void Parameters_LLG_Set_dt(State* state, float dt, int idx_image = -1, int idx_chain = -1) SUFFIX;
PREFIX void Parameters_LLG_Set_max_torque(State* state, float maxTorque, int idx_image = -1, int idx_chain = -1) SUFFIX;
PREFIX void Parameters_LLG_Set_max_move(State* state, float max_move, int idx_image = -1, int idx_chain = -1) SUFFIX;
PREFIX void Parameters_LLG_Set_n_LBFGS(State* state, int n_LBFGS, int idx_image = -1, int idx_chain = -1) SUFFIX;
PREFIX void Parameters_LLG_Set_grouped_iterations(State* state, int grouped_iterations, int idx_image = -1, int idx_chain = -1) SUFFIX;
PREFIX void Parameters_LLG_Set_save_period(State* state, int save_period, int idx_image = -1, int idx_chain = -1) SUFFIX;

PREFIX void Parameters_LLG_Get_dt(State* state, float *dt, int idx_image = -1, int idx_chain = -1) SUFFIX;
PREFIX void Parameters_LLG_Get_max_torque(State* state, float * maxTorque, int idx_image = -1, int idx_chain = -1) SUFFIX;
PREFIX void Parameters_LLG_Get_max_move(State* state, float *max_move, int idx_image = -1, int idx_chain = -1) SUFFIX;
PREFIX void Parameters_LLG_Get_n_LBFGS(State* state, int*n_LBFGS, int idx_image = -1, int idx_chain = -1) SUFFIX;
PREFIX void Parameters_LLG_Get_grouped_iterations(State* state, int *grouped_iterations, int idx_image = -1, int idx_chain = -1) SUFFIX;
PREFIX void Parameters_LLG_Get_save_period(State* state, int*save_period, int idx_image = -1, int idx_chain = -1) SUFFIX;
#include "DLL_Undefine_Export.h"
#endif
3 changes: 3 additions & 0 deletions core/include/Spirit/Simulation.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ Note that the VP and LBFGS Solvers are only meant for direct minimization and no
// `Solver_VP_OSO`: Verlet-like velocity projection, exponential transform
#define Solver_VP_OSO 7

// `Solver_CG_OSO`: CG, exponential transform
#define Solver_CG_OSO 8

/*
Start or stop a simulation
--------------------------------------------------------------------
Expand Down
Loading

0 comments on commit 7b8bab9

Please sign in to comment.