Skip to content

Commit 319ff99

Browse files
v2.7.1
2 parents 92c1ac4 + 197e857 commit 319ff99

4 files changed

Lines changed: 27 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## [2.7.1] - 2026-06-10
2+
3+
### 🐛 Bug Fixes
4+
5+
- *(core)* Demote anchors below seabed from error to warning
6+
- *(core)* Catch the exceptions when initializing the time integrator, instead of crashing
17
## [2.7.0] - 2026-06-09
28

39
### 🚀 Features

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cmake_minimum_required(VERSION 3.10)
22
set(MOORDYN_MAJOR_VERSION 2)
33
set(MOORDYN_MINOR_VERSION 7)
4-
set(MOORDYN_PATCH_VERSION 0)
4+
set(MOORDYN_PATCH_VERSION 1)
55
set(MOORDYN_VERSION ${MOORDYN_MAJOR_VERSION}.${MOORDYN_MINOR_VERSION})
66
project(Moordyn VERSION ${MOORDYN_VERSION})
77

source/Line.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -546,9 +546,8 @@ Line::initialize()
546546
// so now we can proceed with figuring out the positions of the nodes along
547547
// the line.
548548
if (getWaterDepth(r[0][0], r[0][1]) > r[0][2]) {
549-
LOGERR << "Water depth is shallower than Line " << number << " anchor"
549+
LOGWRN << "Water depth is shallower than Line " << number << " anchor"
550550
<< endl;
551-
throw moordyn::invalid_value_error("Invalid water depth");
552551
}
553552

554553
// TODO - determine if F should be for each segment or for each node,

source/MoorDyn2.cpp

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,12 @@ moordyn::MoorDyn::icLegacy()
203203
const unsigned int convergence_iters = 9; // 10 iterations, indexed 0-9
204204
ICdt = ICdt / (convergence_iters + 1);
205205

206-
_t_integrator->Init();
206+
try {
207+
_t_integrator->Init();
208+
}
209+
MOORDYN_CATCHER(err, err_msg);
210+
if (err != MOORDYN_SUCCESS)
211+
return err;
207212
if (ICfile != "") {
208213
try {
209214
_t_integrator->LoadState(_basepath + ICfile);
@@ -371,7 +376,12 @@ moordyn::MoorDyn::icStationary()
371376
for (auto obj : LineList)
372377
t_integrator.AddLine(obj);
373378
t_integrator.SetCFL((std::min)(cfl, 1.0));
374-
t_integrator.Init();
379+
try {
380+
t_integrator.Init();
381+
}
382+
MOORDYN_CATCHER(err, err_msg);
383+
if (err != MOORDYN_SUCCESS)
384+
return err;
375385
if (ICfile != "") {
376386
try {
377387
t_integrator.LoadState(_basepath + ICfile);
@@ -574,7 +584,13 @@ moordyn::MoorDyn::Init(const double* x, const double* xd, bool skip_ic)
574584
}
575585

576586
} else {
577-
_t_integrator->Init();
587+
try {
588+
_t_integrator->Init();
589+
}
590+
MOORDYN_CATCHER(err, err_msg);
591+
if (err != MOORDYN_SUCCESS)
592+
return err;
593+
578594
if (ICfile != "") {
579595
try {
580596
_t_integrator->LoadState(_basepath + ICfile);

0 commit comments

Comments
 (0)