Cantera
Install
User Guide
Examples
Reference
Develop
Community
4.0.0a2
Toggle main menu visibility
Loading...
Searching...
No Matches
TransportFactory.h
Go to the documentation of this file.
1
/**
2
* @file TransportFactory.h
3
* Header file defining class TransportFactory
4
* (see @link Cantera::TransportFactory TransportFactory@endlink)
5
*/
6
7
// This file is part of Cantera. See License.txt in the top-level directory or
8
// at https://cantera.org/license.txt for license and copyright information.
9
10
#ifndef CT_TRANSPORTFACTORY_H
11
#define CT_TRANSPORTFACTORY_H
12
13
// Cantera includes
14
#include "
Transport.h
"
15
#include "
cantera/base/FactoryBase.h
"
16
17
namespace
Cantera
18
{
19
20
//! Factory class for creating new instances of classes derived from Transport.
21
/*!
22
* Creates 'transport managers', which are classes derived from class
23
* Transport that provide transport properties. TransportFactory handles all
24
* initialization required, including evaluation of collision integrals and
25
* generating polynomial fits. Transport managers can also be created in
26
* other ways.
27
*
28
* @ingroup tranprops
29
*/
30
class
TransportFactory
:
public
Factory
<Transport>
31
{
32
public
:
33
//! Return a pointer to a TransportFactory instance.
34
/*!
35
* TransportFactory is implemented as a 'singleton', which means that at
36
* most one instance may be created. The constructor is private. When a
37
* TransportFactory instance is required, call static method factory() to
38
* return a pointer to the TransportFactory instance.
39
*
40
* @code
41
* TransportFactory* f;
42
* f = TransportFactory::factory();
43
* @endcode
44
*/
45
static
TransportFactory
*
factory
();
46
47
//! Deletes the statically allocated factory instance.
48
void
deleteFactory
()
override
;
49
50
//! Build a new transport manager using a transport manager that may not be the same
51
//! as in the phase description and return a base class pointer to it
52
/*!
53
* @param model String name for the transport manager
54
* @param thermo ThermoPhase object
55
* @since Changed in %Cantera 4.0 to use `shared_ptr<ThermoPhase>` instead of raw
56
* pointer.
57
*/
58
Transport
*
newTransport
(
const
string
& model, shared_ptr<ThermoPhase> thermo);
59
60
//! Build a new transport manager using the default transport manager
61
//! in the phase description and return a base class pointer to it
62
//! @since Changed in %Cantera 4.0 to use `shared_ptr<ThermoPhase>` instead of raw
63
//! pointer.
64
Transport
*
newTransport
(shared_ptr<ThermoPhase> thermo);
65
private
:
66
//! Static instance of the factor -> This is the only instance of this
67
//! object allowed
68
static
TransportFactory
*
s_factory
;
69
70
//! Static instance of the mutex used to ensure the proper reading of the
71
//! transport database
72
static
std::mutex
transport_mutex
;
73
74
//! The constructor is private; use static method factory() to
75
//! get a pointer to a factory instance
76
/*!
77
* The default constructor for this class sets up m_models[], a mapping
78
* between the string name for a transport model and the integer name.
79
*/
80
TransportFactory
();
81
82
//! Models included in this map are initialized in CK compatibility mode
83
map<string, bool>
m_CK_mode
;
84
};
85
86
//! Create a new Transport instance.
87
/*!
88
* @param thermo the ThermoPhase object associated with the phase
89
* @param model name of transport model; if "default", the default
90
* transport model for the ThermoPhase object is created
91
* @returns a Transport object for the phase
92
* @ingroup tranprops
93
*/
94
shared_ptr<Transport>
newTransport
(shared_ptr<ThermoPhase> thermo,
95
const
string
& model=
"default"
);
96
97
}
// End of namespace Cantera
98
99
#endif
FactoryBase.h
File contains the FactoryBase class declarations.
Transport.h
Headers for the Transport object, which is the virtual base class for all transport property evaluato...
Cantera::Factory
Factory class that supports registering functions to create objects.
Definition
FactoryBase.h:69
Cantera::TransportFactory::s_factory
static TransportFactory * s_factory
Static instance of the factor -> This is the only instance of this object allowed.
Definition
TransportFactory.h:68
Cantera::TransportFactory::deleteFactory
void deleteFactory() override
Deletes the statically allocated factory instance.
Definition
TransportFactory.cpp:62
Cantera::TransportFactory::newTransport
Transport * newTransport(const string &model, shared_ptr< ThermoPhase > thermo)
Build a new transport manager using a transport manager that may not be the same as in the phase desc...
Definition
TransportFactory.cpp:69
Cantera::TransportFactory::factory
static TransportFactory * factory()
Return a pointer to a TransportFactory instance.
Definition
TransportFactory.cpp:54
Cantera::TransportFactory::transport_mutex
static std::mutex transport_mutex
Static instance of the mutex used to ensure the proper reading of the transport database.
Definition
TransportFactory.h:72
Cantera::TransportFactory::m_CK_mode
map< string, bool > m_CK_mode
Models included in this map are initialized in CK compatibility mode.
Definition
TransportFactory.h:83
Cantera::TransportFactory::TransportFactory
TransportFactory()
The constructor is private; use static method factory() to get a pointer to a factory instance.
Definition
TransportFactory.cpp:27
Cantera::Transport
Base class for transport property managers.
Definition
Transport.h:72
Cantera::newTransport
shared_ptr< Transport > newTransport(shared_ptr< ThermoPhase > thermo, const string &model)
Create a new Transport instance.
Definition
TransportFactory.cpp:110
Cantera
Namespace for the Cantera kernel.
Definition
AnyMap.cpp:595
include
cantera
transport
TransportFactory.h
Generated by
1.17.0