MercuryDPM  Trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TimeAveragedLebedevCG.h
Go to the documentation of this file.
1 //Copyright (c) 2013-2020, The MercuryDPM Developers Team. All rights reserved.
2 //For the list of developers, see <http://www.MercuryDPM.org/Team>.
3 //
4 //Redistribution and use in source and binary forms, with or without
5 //modification, are permitted provided that the following conditions are met:
6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above copyright
9 // notice, this list of conditions and the following disclaimer in the
10 // documentation and/or other materials provided with the distribution.
11 // * Neither the name MercuryDPM nor the
12 // names of its contributors may be used to endorse or promote products
13 // derived from this software without specific prior written permission.
14 //
15 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16 //ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 //WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 //DISCLAIMED. IN NO EVENT SHALL THE MERCURYDPM DEVELOPERS TEAM BE LIABLE FOR ANY
19 //DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 //(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 //LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 //ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 //(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 
26 #ifndef TimeAveragedLebedevCG_H
27 #define TimeAveragedLebedevCG_H
28 
29 #include <CG/TimeAveragedCG.h>
30 
31 template<template<class> class BaseFunction, class Fields = CGFields::StandardFields>
32 class TimeAveragedLebedevCG : public TimeAveragedCGXYZ<BaseFunction, Fields>
33 {
34 public:
35 
37 
42  TimeAveragedLebedevCG() = default;
43 
47  TimeAveragedLebedevCG(const TimeAveragedLebedevCG& p) = default;
48 
52  virtual ~TimeAveragedLebedevCG();
53 
57  void createMesh() override;
58 
59 
64 
68  double getRadiusInner();
69 
73  double getRadiusOuter();
74 
78  int getNR();
79 
83  void setR(double radiusInner, double radiusOuter);
84 
88  void setNR(int nR);
89 
93  void evaluate();
94 
99 
104 
105 private:
109  double radiusInner_;
110  double radiusOuter_;
111  int nR_;
112 };
113 
114 #include "TimeAveragedLebedevCG.hcc"
115 
116 #endif
double getRadiusInner()
Returns the inner radius of the grid.
Specialisation of TimeAveragedCG with coordinates XYZ used for LebedevCG.
Combines the position of the CGPoint (e.g. x, y, z), the parameters of the coarse-graining function (...
Definition: CGPoint.h:43
void setR(double radiusInner, double radiusOuter)
Sets the inner and outer radius of the mesh.
CGPoint< CGCoordinates::XYZ, Fields > Point
const std::complex< Mdouble > i
Definition: ExtendedMath.h:50
void createMesh() override
Creates a mesh based on Lebedev quadrature points.
Stores information about interactions between two interactable objects; often particles but could be ...
void evaluateContact(BaseInteraction &i)
Evaluates the contribution of an interaction.
TimeAveragedLebedevCG< BaseFunction, Fields > * copy() const
Creates a copy of the current instance.
void evaluateParticle(BaseParticle &p)
Evaluates the contributions of a particle.
virtual ~TimeAveragedLebedevCG()
Default destructor; does nothing.
int getNR()
Returns the number of grid points in r-direction.
TimeAveragedLebedevCG()=default
Default constructor. Only sets the evaluation functions, no points are created initially.
double getRadiusOuter()
Returns the outer radius of the grid.
void setNR(int nR)
Sets the number of mesh points in the r-direction.
void evaluate()
Evaluates CG fields.
Contains the computed field values, like density, momentum and stress.