Skip to content
Snippets Groups Projects
fwd.hpp 938 B
Newer Older
  • Learn to ignore specific revisions
  • Ian Bell's avatar
    Ian Bell committed
    #pragma once
    
    /**
    * The name of this file is currently a bit of a misnomer while
    * we think about whether it is possible to forward-declare the models
    * 
    * It seems like perhaps that is not possible.  For now this header 
    * just provides the main variant with the model definitions.
    */
    
    #include <valarray>
    #include <variant>
    
    #include "teqp/models/vdW.hpp"
    #include "teqp/models/cubics.hpp"
    #include "teqp/models/CPA.hpp"
    #include "teqp/models/pcsaft.hpp"
    #include "teqp/models/multifluid.hpp"
    
    namespace teqp {
    
    	using vad = std::valarray<double>;
    
    
        using PCSAFTType = decltype(PCSAFT::PCSAFTfactory(nlohmann::json{}));
    
    
    Ian Bell's avatar
    Ian Bell committed
    	// Define the EOS types by interrogating the types returned by the respective factory function
    	using AllowedModels = std::variant<
    		vdWEOS1,
    		decltype(canonical_PR(vad{}, vad{}, vad{})),
    		decltype(CPA::CPAfactory(nlohmann::json{})),
    
    Ian Bell's avatar
    Ian Bell committed
    		decltype(multifluidfactory(nlohmann::json{}))
    	>;