Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New code structure #100

Open
wants to merge 25 commits into
base: master
Choose a base branch
from

Commits on Jul 13, 2023

  1. Configuration menu
    Copy the full SHA
    336e9c0 View commit details
    Browse the repository at this point in the history
  2. Added coolprop as a submodule and now build it as a static library

    This means that we can just rely on coolprop to pass on its dependencies,
    instead of tracking possible changes in them.
    The submodule is right now checked out to the latest stable version of
    coolprop, namely 6.4.3.
    efokken-abb committed Jul 13, 2023
    Configuration menu
    Copy the full SHA
    b708e3c View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2023

  1. Configuration menu
    Copy the full SHA
    ed3bf3c View commit details
    Browse the repository at this point in the history
  2. moved "must be implemented" methods to pure virtual functions.

    This way, the failure to implement needed methods on base solver
    is caught at compile time, instead of runtime.
    Also moved the docs in the header file.
    efokken-abb committed Jul 14, 2023
    Configuration menu
    Copy the full SHA
    1e0f259 View commit details
    Browse the repository at this point in the history
  3. made setBubbleState and setDewState un-pure.

    These do have default implementations.
    efokken-abb committed Jul 14, 2023
    Configuration menu
    Copy the full SHA
    26779cd View commit details
    Browse the repository at this point in the history
  4. Now the test solver correctly implements all pure methods of basesolver.

    In all methods that are not actually implemented, an error is reported.
    efokken-abb committed Jul 14, 2023
    Configuration menu
    Copy the full SHA
    a09363b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    3f2a7a2 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    c8ebfaa View commit details
    Browse the repository at this point in the history

Commits on Jan 4, 2024

  1. Configuration menu
    Copy the full SHA
    eba3dcb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8fba2db View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b569843 View commit details
    Browse the repository at this point in the history
  4. Now we don't include coolprop symbols in the shared lib for linkers l…

    …ld and ld.
    
    The MSVC linker should include only explicitly exported symbols, so
    it doesn't need this (not tested!). All other linkers are not really supported here,
    unless they behave like the MSVC linker.
    efokken-abb committed Jan 4, 2024
    Configuration menu
    Copy the full SHA
    8632688 View commit details
    Browse the repository at this point in the history
  5. Exclude all statically linked libraries

    Also: Make the ModelicaUtilisties library that is included, so the test
    can be built a shared library.
    efokken-abb committed Jan 4, 2024
    Configuration menu
    Copy the full SHA
    8997fa9 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1165351 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a5c83b4 View commit details
    Browse the repository at this point in the history
  8. Complete restructure of the Cmake structure of ExternalMediaLib

    1. The Sources directory was replaced by a directory ExternalMediaLib.
    
    2. The sources of ExternalMediaLib are now grouped into differenct static
    libraries with clear interdependencies, such that adding a new external solver
    should be straight-forward: To do this, you need to
    
        a)add a new directory Solver<Name_of_your_external_library> inside
        Projects/ExternalMediaLib
    
        b) copy the CMakeLists.txt from SolverCoolProp and
        change it to your needs
    
        c) Define a new cmake variable (like COOLPROP) and add building logic to
        Projects/CMakeLists.txt
    
        d) Conditionally on this variable include and link
        Solver<Name_of_your_external_library> inside
        Projects/ExternalMediaLib/CMakeLists.txt
    
        e) Conditionally on this variable include your header file (best located in
        Solver<Name_of_your_external_library>/include in solvermap.cpp and add
        corresponding code to instantiate your solver in solvermap.cpp
    
    3. In addition CoolProp is now a static library, so that dependencies to it can
    be managed with CMake, instead of manually in the ExternalMediaLib
    CMakeLists.txt.
    
    4. Note that the FluidProp interface is untested, because I have no license for it.
    
    5. The symbols exported from externalmedialib.so when compiling and linking with
    clang or gcc are now only those also exported by msvc, so that it is safe to
    link to another instance of the coolprop library and in general have symbols
    defined that are named as those in externalmedialib.
    
    6. The next commit will introduce a check for inter process optimization (a.k.a.
    link time optimization) to remove the possible runtime penalties introduced by
    the sub-division into static libraries.
    efokken-abb committed Jan 4, 2024
    Configuration menu
    Copy the full SHA
    f2f9913 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    93af562 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    0ad1bd8 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    d214a39 View commit details
    Browse the repository at this point in the history
  12. Added an option to switch off link time optimization for faster compi…

    …lation
    
    This of course reduces performance and should not be used for building
    binaries for production usage.
    efokken-abb committed Jan 4, 2024
    Configuration menu
    Copy the full SHA
    0dba64e View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    d8f19a7 View commit details
    Browse the repository at this point in the history
  14. cleaned up some cmake.

    also: explained the existence of the targets modelica_static_helper and
    modelica_utilities_DONT_USE
    
    in their CMakeLists.txt files.
    efokken-abb committed Jan 4, 2024
    Configuration menu
    Copy the full SHA
    e967d0e View commit details
    Browse the repository at this point in the history
  15. Fixed a bug preventing correct linking.

    (different function signatures between declaration and implementation.
    efokken-abb committed Jan 4, 2024
    Configuration menu
    Copy the full SHA
    1441764 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    41d5469 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    c980769 View commit details
    Browse the repository at this point in the history