/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2016 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . Class Foam::Ion Description SourceFiles IonI.H Ion.C IonIO.C \*---------------------------------------------------------------------------*/ #ifndef Ion_H #define Ion_H #include "Particle.H" #include "hashedWordList.H" #include "scalarList.H" #include "Coulomb.H" #include "GasState.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { // Forward declaration of classes class Istream; class Ostream; // Forward declaration of friend functions and operators class Ion; class Coulomb; Istream& operator>>(Istream&, Ion&); Ostream& operator<<(Ostream&, const Ion&); /*---------------------------------------------------------------------------*\ Class Ion Declaration \*---------------------------------------------------------------------------*/ class Ion : public Particle { // Private data //- Dipole polarizability [Angstrom^3] scalar alpha_; //- Dispersion coefficient [] scalar C6_; //- Stockmayer parameter n of (n,6,4) scalar n_; //- Resonant charge transfer targets hashedWordList rctTarget_; //- Resonant charge transfer parameter A scalarList Arct_; //- Resonant charge transfer parameter B scalarList Brct_; //- Resonant charge transfer parameter B Coulomb selfInteraction; // Private Member Functions //- Disallow default bitwise copy construct Ion(const Ion&); //- Disallow default bitwise assignment void operator=(const Ion&); public: // Static data members //- Static data staticData // static const dataType staticData; // Constructors //- Construct from components Ion(const dictionary& thermoDict, const dictionary& tranDict); //- Construct from Istream Ion(Istream&); //- Construct as copy // Ion(const Ion&); //- Destructor ~Ion(); // Member Functions // Access inline scalar alpha() const; inline scalar C6() const; inline scalar Zrot(scalar T) const; inline scalar Zrot(const GasState &state) const; inline scalar lambda(const scalar mu, const scalar D, const GasState &state) const; inline bool hasRct(const word &target) const; inline scalar Arct(const word &target) const; inline scalar Brct(const word &target) const; // Check // Edit // Write // Member Operators // void operator=(const Ion&); // Friend Functions // Friend Operators // IOstream Operators friend Istream& operator>>(Istream&, Ion&); friend Ostream& operator<<(Ostream&, const Ion&); }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #include "IonI.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* //