ENH: autoLayerDriver: better layering information message
[OpenFOAM-2.0.x.git] / src / lagrangian / molecularDynamics / potential / energyScalingFunction / basic / energyScalingFunction.H
blob4bdea8fb9480a742f41114fadb64549ae2193a1c
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by
13     the Free Software Foundation, either version 3 of the License, or
14     (at your option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::energyScalingFunction
27 Description
29 SourceFiles
30     energyScalingFunction.C
31     energyScalingFunctionNew.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef energyScalingFunction_H
36 #define energyScalingFunction_H
38 #include "IOdictionary.H"
39 #include "typeInfo.H"
40 #include "runTimeSelectionTables.H"
41 #include "autoPtr.H"
42 #include "pairPotential.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 namespace Foam
49 /*---------------------------------------------------------------------------*\
50                     Class energyScalingFunction Declaration
51 \*---------------------------------------------------------------------------*/
53 class energyScalingFunction
56 protected:
58     // Protected data
60         word name_;
62         dictionary energyScalingFunctionProperties_;
64         const pairPotential& pairPot_;
67     // Private Member Functions
69         //- Disallow copy construct
70         energyScalingFunction(const energyScalingFunction&);
72         //- Disallow default bitwise assignment
73         void operator=(const energyScalingFunction&);
76 public:
78     //- Runtime type information
79     TypeName("energyScalingFunction");
82     // Declare run-time constructor selection table
84         declareRunTimeSelectionTable
85         (
86             autoPtr,
87             energyScalingFunction,
88             dictionary,
89             (
90                 const word& name,
91                 const dictionary& energyScalingFunctionProperties,
92                 const pairPotential& pairPot
93             ),
94             (name, energyScalingFunctionProperties, pairPot)
95         );
98     // Selectors
100         //- Return a reference to the selected viscosity model
101         static autoPtr<energyScalingFunction> New
102         (
103             const word& name,
104             const dictionary& energyScalingFunctionProperties,
105             const pairPotential& pairPot
106         );
109     // Constructors
111         //- Construct from components
112         energyScalingFunction
113         (
114             const word& name,
115             const dictionary& energyScalingFunctionProperties,
116             const pairPotential& pairPot
117         );
120     //- Destructor
121     virtual ~energyScalingFunction()
122     {}
125     // Member Functions
127         virtual void scaleEnergy(scalar& e, const scalar r) const = 0;
129         const dictionary& energyScalingFunctionProperties() const
130         {
131             return energyScalingFunctionProperties_;
132         }
134         //- Read energyScalingFunction dictionary
135         virtual bool read
136         (
137             const dictionary& energyScalingFunctionProperties
138         ) = 0;
142 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
144 } // End namespace Foam
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
148 #endif
150 // ************************************************************************* //