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
The 0D solver svZeroDPlus/src/interface code is used to interface to the 0D solver from an external application by calling functions loaded from the libsvzero_interface shared library.
The LPNSolverInterface class located in svZeroDPlus/tests/test_interface/LPNSolverInterface is used to load the libsvzero_interface shared library and call functions loaded from it.
We need to make sure that the svZeroDPlus/src/interface and svZeroDPlus/tests/test_interface/LPNSolverInterface codes provide a consistent and correct access interface functions.
The text was updated successfully, but these errors were encountered:
I've been looking at the svZeroDPlus/src/interface and svZeroDPlus/tests/test_interface/LPNSolverInterface code and think it would be good to merge LPNSolverInterface and interface functionality.
The idea would be to define a ZeroDSolverInterface class containing methods interfacing to the solver contained in the interface shared library.
The 3D solver using the interface would include the ZeroDSolverInterface.h header. It would then load the new_interface function used to create a ZeroDSolverInterface object like so
ZeroDSolverInterface* new_interface;
*(void**)(new_interface) = dlsym(handle, "new_interface");
auto interface = new_interface();
Calls to the solver are then made using interface methods
The user does not need to load interface functions, consistency of the names and signatures of the interface functions are maintained by the ZeroDSolverInterface.h header.
@menon-karthik The idea about just loading an interface class is very complicated to implement so forget that.
I think what we can do is just move the svZeroDSolver/tests/test_interface/LPNSolverInterface class to svZeroDSolver/src/interface and have that code used by svZeroDSolver/tests/test_interface/test_0*. The svZeroDSolver/tests/test_interface/LPNSolverInterface code will then be installed with the svZeroDSolver executable and shared library.
The 0D solver
svZeroDPlus/src/interface
code is used to interface to the 0D solver from an external application by calling functions loaded from thelibsvzero_interface
shared library.The
LPNSolverInterface
class located insvZeroDPlus/tests/test_interface/LPNSolverInterface
is used to load thelibsvzero_interface
shared library and call functions loaded from it.We need to make sure that the
svZeroDPlus/src/interface
andsvZeroDPlus/tests/test_interface/LPNSolverInterface
codes provide a consistent and correct access interface functions.The text was updated successfully, but these errors were encountered: