Skip to content

Commit 4b68811

Browse files
committed
Merge tag 'v0.2.1' into develop
Add SSP Linear Multistep Methods Add Strong Stability Preserving Linear Multistep Methods (fixed stepsize). Stable release, fully barckward compatible.
2 parents 47699b7 + 8f5f819 commit 4b68811

7 files changed

Lines changed: 59 additions & 35 deletions

.travis.yml

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
language: python
2-
3-
python:
4-
- 2.7
1+
language: generic
52

63
sudo: false
74

@@ -17,38 +14,58 @@ addons:
1714
sources:
1815
- ubuntu-toolchain-r-test
1916
packages:
20-
- gfortran-4.9
17+
- gfortran-6
2118
- binutils
2219
- python-pip
23-
- graphviz
20+
- graphviz
2421

2522
env:
2623
global:
27-
- SCRIPT="FoBiS.py rule -ex makecoverage"
24+
- MAKECOVERAGE="FoBiS.py rule -ex makecoverage"
25+
- MAKEDOC="./scripts/makedoc.sh Fortran-FOSS-Programmers/FOODIE"
26+
- CLEAN="FoBiS.py rule -ex clean"
27+
- MAKETAR="FoBiS.py rule -ex maketar"
2828

2929
before_install:
30-
- git submodule update --init --recursive
30+
- git submodule update --init
3131

3232
install:
3333
- |
3434
if [[ ! -d "$HOME/.local/bin" ]]; then
3535
mkdir "$HOME/.local/bin"
3636
fi
3737
- export PATH="$HOME/.local/bin:$PATH"
38-
- export FC=/usr/bin/gfortran-4.9
39-
- ln -fs /usr/bin/gfortran-4.9 "$HOME/.local/bin/gfortran" && gfortran --version
40-
- ls -l /usr/bin/gfortran-4.9
41-
- ln -fs /usr/bin/gcov-4.9 "$HOME/.local/bin/gcov" && gcov --version
42-
- pip install --upgrade pygooglechart
43-
- pip install --upgrade graphviz
44-
- pip install --upgrade FoBiS.py
45-
- pip install --upgrade markdown-checklist
46-
- pip install --upgrade ford
38+
- export FC=/usr/bin/gfortran-6
39+
- ln -fs /usr/bin/gfortran-6 "$HOME/.local/bin/gfortran" && gfortran --version
40+
- ls -l /usr/bin/gfortran-6
41+
- ln -fs /usr/bin/gcov-6 "$HOME/.local/bin/gcov" && gcov --version
42+
- pip install --user --upgrade pygooglechart
43+
- pip install --user --upgrade graphviz
44+
- pip install --user --upgrade FoBiS.py
45+
- pip install --user --upgrade markdown-checklist
46+
- pip install --user --upgrade ford
4747

4848
script:
49-
- $SCRIPT
49+
- $MAKECOVERAGE
5050

5151
after_success:
52-
- cd $TRAVIS_BUILD_DIR
53-
- cd build/lib/obj/ ; bash <(curl -s https://codecov.io/bash) ; cd -
54-
- ./makedoc.sh Fortran-FOSS-Programmers/FOODiE
52+
- find . -name '*.gcno' -print
53+
- bash <(curl -s https://codecov.io/bash)
54+
- $MAKEDOC
55+
56+
before_deploy:
57+
- $CLEAN
58+
- $MAKETAR
59+
- mv FOODIE.tar.gz FOODIE-$TRAVIS_TAG.tar.gz
60+
61+
deploy:
62+
provider: releases
63+
api_key:
64+
secure: QTsZ8jIN5/f15EW/L93u7Yn0fUlX1UaF6qCLfiWfo0jDiK0FGkIo4B+MeBYbZs+HphMxbhDv7v+A1dpcA8w9RlkMX47NsGT4Nu7bu5AzABsjnFPUKbUux4ktoYkPAxXujcvT1fTYrv2bgH0ualtPnvU9CDT3PRfUpZND+bM0UIMyo40ojOec2v3opYfGYvbksosAVKTg15cxzxGgGVrZb+DWfnILgrETieULL1Tvp8eZG9wY9Kja65JCzbUVBrcGIThz5iZqO8rAi6Opl7cgpP7W2qRotNRXQjQc1KsV+HH0w5eTCUwqUZOJKuucZrUjYiu762LYMYfLGxs4F2Wy2aXPqcTImVIG5W9tFN4xKsL46Ed7PZdCHWZJFCFx89znEosZnCFmSp445L88Q1/dbluk/oP+TxYi6z61QEstSB2T5r0Pv/rC2PGqoBlYyCGIZZdBzzXNSW2gaUEkhNgOU1Q/K6yFpjy+GUxvcGugroWsHBXvoSMswzC+IhYUvjSXkiFM5AkXbJrb8/mIc25QehUrvO5Fe/A67o2HuM6aHZDBbGyP8876k63o1H82JkW0fSfCrcWu302eqCu5YwrZJ3I20bepZEbj5Wh50Bz6n8c0ZsFQL1GUxAA+3KBtWp7wDHK9WYsKrdc2FFGtfZgQ7X5iiY01/i6ZCqiUO4vASWg=
65+
file:
66+
- FOODIE-$TRAVIS_TAG.tar.gz
67+
- ./scripts/install.sh
68+
skip_cleanup: true
69+
overwrite: true
70+
on:
71+
tags: true

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ FOODIE is aimed to be a KISS-pure-Fortran library for integrating Ordinary Diffe
9898
+ [x] 3 stages, 3rd order accurate;
9999
+ [ ] 4 stages;
100100
+ [x] 5 stages, 4th order accurate;
101-
+ [ ] [embedded (adaptive)](http://fortran-foss-programmers.github.io/FOODIE/module/foodie_integrator_runge_kutta_emd.html) schemes:
101+
+ [ ] [embedded (adaptive)](http://fortran-foss-programmers.github.io/FOODIE/module/foodie_integrator_runge_kutta_embeddedd.html) schemes:
102102
+ [x] Heun-Euler, 2 stages, 2nd order accurate;
103103
+ [ ] Runge-Kutta-Fehlberg, 5 stages, 4th order accurate;
104104
+ [x] Runge-Kutta-Cash-Karp, 6 stages, 5th order accurate, see [13];

codecov.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
coverage:
2+
ignore:
3+
- src/third_party/
4+
- doc
File renamed without changes.

src/lib/foodie_integrator_runge_kutta_embedded.f90

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -352,11 +352,12 @@ elemental subroutine destroy(self)
352352
if (allocated(self%gamm)) deallocate(self%gamm)
353353
endsubroutine destroy
354354

355-
subroutine init(self, stages, tolerance)
355+
subroutine init(self, stages, tolerance, stop_on_fail)
356356
!< Create the actual RK integrator: initialize the Butcher' table coefficients.
357-
class(integrator_runge_kutta_emd), intent(inout) :: self !< Integrator.
358-
integer(I_P), intent(in) :: stages !< Number of stages used.
359-
real(R_P), optional, intent(in) :: tolerance !< Tolerance on the local truncation error (default 0.01).
357+
class(integrator_runge_kutta_emd), intent(inout) :: self !< Integrator.
358+
integer(I_P), intent(in) :: stages !< Number of stages used.
359+
real(R_P), intent(in), optional :: tolerance !< Tolerance on the local truncation error (default 0.01).
360+
logical, intent(in), optional :: stop_on_fail !< Stop execution if initialization fail.
360361

361362
if (self%is_supported(stages)) then
362363
call self%destroy
@@ -602,7 +603,7 @@ subroutine init(self, stages, tolerance)
602603
else
603604
call self%trigger_error(error=ERROR_BAD_STAGES_NUMBER, &
604605
error_message='bad (unsupported) number of Runge-Kutta stages', &
605-
is_severe=.true.)
606+
is_severe=stop_on_fail)
606607
endif
607608
endsubroutine init
608609

src/lib/foodie_integrator_runge_kutta_low_storage.f90

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,10 +228,11 @@ elemental subroutine destroy(self)
228228
if (allocated(self%C)) deallocate(self%C)
229229
endsubroutine destroy
230230

231-
subroutine init(self, stages)
231+
subroutine init(self, stages, stop_on_fail)
232232
!< Create the actual RK integrator: initialize the Butcher' low storage table coefficients.
233-
class(integrator_runge_kutta_ls), intent(inout) :: self !< Integrator.
234-
integer(I_P), intent(in) :: stages !< Number of stages used.
233+
class(integrator_runge_kutta_ls), intent(inout) :: self !< Integrator.
234+
integer(I_P), intent(in) :: stages !< Number of stages used.
235+
logical, intent(in), optional :: stop_on_fail !< Stop execution if initialization fail.
235236

236237
if (self%is_supported(stages)) then
237238
call self%destroy
@@ -321,7 +322,7 @@ subroutine init(self, stages)
321322
else
322323
call self%trigger_error(error=ERROR_BAD_STAGES_NUMBER, &
323324
error_message='bad (unsupported) number of Runge-Kutta stages', &
324-
is_severe=.true.)
325+
is_severe=stop_on_fail)
325326
endif
326327
endsubroutine init
327328

src/lib/foodie_integrator_runge_kutta_tvd.f90

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,11 @@ elemental subroutine destroy(self)
179179
if (allocated(self%gamm)) deallocate(self%gamm)
180180
endsubroutine destroy
181181

182-
subroutine init(self, stages)
182+
subroutine init(self, stages, stop_on_fail)
183183
!< Create the actual RK integrator: initialize the Butcher' table coefficients.
184-
class(integrator_runge_kutta_tvd), intent(inout) :: self !< Integrator.
185-
integer(I_P), intent(in) :: stages !< Number of stages used.
184+
class(integrator_runge_kutta_tvd), intent(inout) :: self !< Integrator.
185+
integer(I_P), intent(in) :: stages !< Number of stages used.
186+
logical, intent(in), optional :: stop_on_fail !< Stop execution if initialization fail.
186187

187188
if (self%is_supported(stages)) then
188189
call self%destroy
@@ -235,7 +236,7 @@ subroutine init(self, stages)
235236
else
236237
call self%trigger_error(error=ERROR_BAD_STAGES_NUMBER, &
237238
error_message='bad (unsupported) number of Runge-Kutta stages', &
238-
is_severe=.true.)
239+
is_severe=stop_on_fail)
239240
endif
240241
endsubroutine init
241242

0 commit comments

Comments
 (0)