You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Problem
Compiling with the latest BOUT-next results in the below error:
/ssd_scratch/SD1D/sd1d.cxx: In member function ‘int SD1D::precon(BoutReal, BoutReal, BoutReal)’:
/ssd_scratch/SD1D/sd1d.cxx:1696:24: error: ‘Create’ is not a member of ‘InvertPar’
1696 | inv = InvertPar::Create();
| ^~~~~~
This is coming from this section starting on line 1640 in sd1d.cxx:
static InvertPar *inv = NULL;
if (!inv) {
// Initialise parallel inversion class
inv = InvertPar::Create();
inv->setCoefA(1.0);
}
Potential fix
I have had Hasan help me with this in the past and I have this code block in my own version of SD1D which makes it work:
static std::unique_ptr<InvertPar> inv = nullptr;
if (!inv) {
// Initialise parallel inversion class
inv = InvertPar::create();
inv->setCoefA(1.0);
}
The text was updated successfully, but these errors were encountered:
Yep, this is the correct fix. The return type of the various factory T::create functions has changed to std::unique_ptr<T>.
Running bin/bout-v5-factory-upgrader.py from BOUT++ on SD1D should apply this fix automatically. There's some other bout-v5-*-upgrader.py scripts that fix other v5 backwards-incompatible changes too.
Problem
Compiling with the latest BOUT-next results in the below error:
This is coming from this section starting on line 1640 in sd1d.cxx:
Potential fix
I have had Hasan help me with this in the past and I have this code block in my own version of SD1D which makes it work:
The text was updated successfully, but these errors were encountered: