diff --git a/annotated.html b/annotated.html index 751311eb7..acc9cc7cc 100644 --- a/annotated.html +++ b/annotated.html @@ -135,139 +135,137 @@  Ccartesian_product_impl< std::tuple<>, OutTupleOfTuples >  CCartesianSolutionDefine a Cartesian solution of the Poisson equation  CCartesianToBarycentricCoordinates - CChargeDensityCalculator - CChargeDensityCalculatorSplinelessA class which computes charges density - CCircularToCartesianA class for describing the circular 2D mapping - CCollisionsInterClass describing the inter-species collision operator - CCollisionsIntra - CGhostedVx - CGhostedVxStaggered - CConstantExtrapolationBoundaryValueA class for describing a spline boundary value by a constant extrapolation for 1D evaluator - CConstantExtrapolationBoundaryValue2DA class for describing a spline boundary value by a constant extrapolation for 2D evaluator - CCosineEvaluator - CEvaluator - CCrankNicolsonA class which provides an implementation of a Crank-Nicolson method - CCurvilinear2DToCartesianA class for describing curvilinear 2D mappings from the logical domain to the physical domain - CCurvilinearSolutionDefine a curvilinear solution of the Poisson equation - CCzarnyToCartesianA class for describing the Czarny 2D mapping - CDecentredRotationSimulationSimulation of a decentred rotated elipse-type function - CDimX_pCTag the first non periodic dimension in the pseudo_Cartesian domain - CDimY_pCTag the second non periodic dimension in the pseudo_Cartesian domain - CDiscreteToCartesianA class for describing discrete 2D mappings from the logical domain to the physical domain - CElectricField - CEulerA class which provides an implementation of an explicit Euler method - CEvaluator2D - CEvaluator - CFemNonPeriodicPoissonSolver - CQDimX - CFemPeriodicPoissonSolver - CQDimX - CFftPoissonSolver - CFftPoissonSolverSplineX - CFluidMomentsComputes fluid moments of the distribution function Density, mean velocity and temperature - CMomentDensityA tag type to indicate that the density should be calculated - CMomentTemperatureA tag type to indicate that the temperature should be calculated - CMomentVelocityA tag type to indicate that the velocity should be calculated - Cfor_each_tuple_cat - Cfor_each_tuple_cat< std::tuple< Tuples... >, Tuple > - CFunctionToBeAdvectedBase class for the test functions for the 2D polar advection operator - CFunctionToBeAdvected_cos_4_elipseTest function for the 2D polar advection operator - CFunctionToBeAdvected_gaussianTest function for the 2D polar advection operator - CGaussLegendre - CGaussLegendreCoefficients - CGeometryXVx - CGeometryXYVxVy - CGrevilleInterpolationPointsA class which provides helper functions to initialise the Greville points from a B-Spline definition - CIAdvectionRPDefine the base class of 2D advection operators in polar domain - CIAdvectionSpatial - CIAdvectionVelocity - CIBoltzmannSolver - CIEquilibrium - CIFootFinderDefine a base class for all the time integration methods used for the advection - CIInitialization - CIInterpolatorA class which provides an interpolating function - CIInterpolatorRPA class which provides an interpolating function - CIPoissonSolverBase class for Poisson solver - CIPreallocatableInterpolatorA class which provides access to an interpolating function which can be preallocated where useful - CIPreallocatableInterpolatorRPA class which provides access to an interpolating function which can be preallocated where useful - CIRightHandSide - CITimeSolverAn abstract class for solving a Boltzmann-Poisson system of equations - CITimeStepper - CIVlasovSolver - CKineticSource - CKnotsAsInterpolationPoints - CKrookSourceAdaptive - CKrookSourceConstant - CLagrangeA class which implements Lagrange polynomials - CLagrangeInterpolatorA class for interpolating a function using Lagrange polynomials - CManufacturedPoissonTestDefining the corresponding RHS of the Poisson equation for a given exact solution - CMatrix - CMatrix_Banded - CMatrix_Center_Block - CMatrix_Corner_Block - CMatrix_Dense - CMatrix_PDS_Tridiag - CMatrix_Periodic_Banded - CMaxwellianEquilibriumEquilibrium operator as Maxwellian. This initializes all species - CNonUniformBSplinesNonUniformPointSampling specialization of BSplines - CImpl - CInternalTagGenerator - CNullAdvectionVelocity - CNullBoundaryValue - CNullBoundaryValue2D - CNullPoissonSolver - CPoissonRHSFunctionType of right-hand side (rhs) function of the Poisson equation - CPoissonSolutionBase class for the exact solutions of the Poisson equation - CPolarBSplines - CImpl - CCorner1Tag - CCorner2Tag - CCorner3Tag - CPolarNullBoundaryValue2D - CPolarSpline - CPolarSplineBoundaryValue2D - CPolarSplineEvaluatorDefine an evaluator on polar B-splines - CPolarSplineFEMPoissonSolverDefine a polar Poisson solver - CInternalTagGeneratorThis struct is used to provide alternative tags - CPBasisSubset - CPCellDim - CRBasisSubset - CRCellDim - CPolarSplineSpan - CPolarSplineView - CPolynomialEvaluator - CEvaluator - CPreallocatableLagrangeInterpolatorA class which stores information necessary to create an instance of the LagrangeInterpolator class - CPreallocatableSplineInterpolatorA class which stores information necessary to create an instance of the SplineInterpolator class - CPreallocatableSplineInterpolatorRPA class which stores information necessary to create a pointer to an instance of the SplineInterpolatorRP class - CPredCorrA class that solves a Boltzmann-Poisson system of equations using a predictor-corrector scheme - CQuadratureA class providing an operator for integrating functions defined on a discrete domain - CRDimPDefine periodic real Theta dimension - CRDimRDefine non periodic real R dimension - CRDimTA class which describes the real space in the temporal direction - CRDimVpDefine periodic real Theta velocity dimension - CRDimVrDefine non periodic real R velocity dimension - CRDimVxDefine non periodic real X velocity dimension - CRDimVyDefine non periodic real Y velocity dimension - CRDimXDefine non periodic real X dimension - CRDimYDefine non periodic real Y dimension - CRefinedDiscreteToCartesianA class for describing refined discrete 2D mappings from the logical domain to the physical domain - CRDimPRefinedDefine periodic real refined P dimension - CRDimRRefinedDefine non periodic real refined R dimension - CRDimXRefinedDefine non periodic real refined X dimension - CRDimYRefinedDefine non periodic real refined X dimension - CRestartInitializationA class that initializes the distribution function from a previous simulation - CRK2A class which provides an implementation of a second-order Runge-Kutta method - CRK3A class which provides an implementation of a third-order Runge-Kutta method - CRK4A class which provides an implementation of a fourth-order Runge-Kutta method - CRotationSimulationSimulation of a rotated Gaussian - CSingleModePerturbInitializationInitialization operator with a sinusoidal perturbation of a Maxwellian. This initializes all species - CSpeciesInformation - CImpl - CSplineBoundaryValue - CSplineBoundaryValue2D - CSplineBuilderA class for creating a spline approximation of a function - CSplineBuilder2DA class for creating a 2D spline approximation of a function + CChargeDensityCalculatorA class which computes charges density + CCircularToCartesianA class for describing the circular 2D mapping + CCollisionsInterClass describing the inter-species collision operator + CCollisionsIntra + CGhostedVx + CGhostedVxStaggered + CConstantExtrapolationBoundaryValueA class for describing a spline boundary value by a constant extrapolation for 1D evaluator + CConstantExtrapolationBoundaryValue2DA class for describing a spline boundary value by a constant extrapolation for 2D evaluator + CCosineEvaluator + CEvaluator + CCrankNicolsonA class which provides an implementation of a Crank-Nicolson method + CCurvilinear2DToCartesianA class for describing curvilinear 2D mappings from the logical domain to the physical domain + CCurvilinearSolutionDefine a curvilinear solution of the Poisson equation + CCzarnyToCartesianA class for describing the Czarny 2D mapping + CDecentredRotationSimulationSimulation of a decentred rotated elipse-type function + CDimX_pCTag the first non periodic dimension in the pseudo_Cartesian domain + CDimY_pCTag the second non periodic dimension in the pseudo_Cartesian domain + CDiscreteToCartesianA class for describing discrete 2D mappings from the logical domain to the physical domain + CElectricField + CEulerA class which provides an implementation of an explicit Euler method + CEvaluator2D + CEvaluator + CFemNonPeriodicPoissonSolverAn operator which solves the Poisson equation using Finite Elements on a non-periodic domain + CFemPeriodicPoissonSolverAn operator which solves the Poisson equation using Finite Elements on a periodic domain + CFftPoissonSolverAn operator which solves the Poisson equation using a fast Fourier transform + CFluidMomentsComputes fluid moments of the distribution function Density, mean velocity and temperature + CMomentDensityA tag type to indicate that the density should be calculated + CMomentTemperatureA tag type to indicate that the temperature should be calculated + CMomentVelocityA tag type to indicate that the velocity should be calculated + Cfor_each_tuple_cat + Cfor_each_tuple_cat< std::tuple< Tuples... >, Tuple > + CFunctionToBeAdvectedBase class for the test functions for the 2D polar advection operator + CFunctionToBeAdvected_cos_4_elipseTest function for the 2D polar advection operator + CFunctionToBeAdvected_gaussianTest function for the 2D polar advection operator + CGaussLegendre + CGaussLegendreCoefficients + CGeometryXVx + CGeometryXYVxVy + CGrevilleInterpolationPointsA class which provides helper functions to initialise the Greville points from a B-Spline definition + CIAdvectionRPDefine the base class of 2D advection operators in polar domain + CIAdvectionSpatial + CIAdvectionVelocity + CIBoltzmannSolver + CIChargeDensityCalculatorA class which calculates the charge density + CIEquilibrium + CIFootFinderDefine a base class for all the time integration methods used for the advection + CIInitialization + CIInterpolatorA class which provides an interpolating function + CIInterpolatorRPA class which provides an interpolating function + CIPoissonSolverBase class for Poisson solver + CIPreallocatableInterpolatorA class which provides access to an interpolating function which can be preallocated where useful + CIPreallocatableInterpolatorRPA class which provides access to an interpolating function which can be preallocated where useful + CIRightHandSide + CITimeSolverAn abstract class for solving a Boltzmann-Poisson system of equations + CITimeStepper + CIVlasovSolver + CKineticSource + CKnotsAsInterpolationPoints + CKrookSourceAdaptive + CKrookSourceConstant + CLagrangeA class which implements Lagrange polynomials + CLagrangeInterpolatorA class for interpolating a function using Lagrange polynomials + CManufacturedPoissonTestDefining the corresponding RHS of the Poisson equation for a given exact solution + CMatrix + CMatrix_Banded + CMatrix_Center_Block + CMatrix_Corner_Block + CMatrix_Dense + CMatrix_PDS_Tridiag + CMatrix_Periodic_Banded + CMaxwellianEquilibriumEquilibrium operator as Maxwellian. This initializes all species + CNonUniformBSplinesNonUniformPointSampling specialization of BSplines + CImpl + CInternalTagGenerator + CNullAdvectionVelocity + CNullBoundaryValue + CNullBoundaryValue2D + CNullPoissonSolver + CPoissonRHSFunctionType of right-hand side (rhs) function of the Poisson equation + CPoissonSolutionBase class for the exact solutions of the Poisson equation + CPolarBSplines + CImpl + CCorner1Tag + CCorner2Tag + CCorner3Tag + CPolarNullBoundaryValue2D + CPolarSpline + CPolarSplineBoundaryValue2D + CPolarSplineEvaluatorDefine an evaluator on polar B-splines + CPolarSplineFEMPoissonSolverDefine a polar Poisson solver + CInternalTagGeneratorThis struct is used to provide alternative tags + CPBasisSubset + CPCellDim + CRBasisSubset + CRCellDim + CPolarSplineSpan + CPolarSplineView + CPolynomialEvaluator + CEvaluator + CPreallocatableLagrangeInterpolatorA class which stores information necessary to create an instance of the LagrangeInterpolator class + CPreallocatableSplineInterpolatorA class which stores information necessary to create an instance of the SplineInterpolator class + CPreallocatableSplineInterpolatorRPA class which stores information necessary to create a pointer to an instance of the SplineInterpolatorRP class + CPredCorrA class that solves a Boltzmann-Poisson system of equations using a predictor-corrector scheme + CQuadratureA class providing an operator for integrating functions defined on a discrete domain + CRDimPDefine periodic real Theta dimension + CRDimRDefine non periodic real R dimension + CRDimTA class which describes the real space in the temporal direction + CRDimVpDefine periodic real Theta velocity dimension + CRDimVrDefine non periodic real R velocity dimension + CRDimVxDefine non periodic real X velocity dimension + CRDimVyDefine non periodic real Y velocity dimension + CRDimXDefine non periodic real X dimension + CRDimYDefine non periodic real Y dimension + CRefinedDiscreteToCartesianA class for describing refined discrete 2D mappings from the logical domain to the physical domain + CRDimPRefinedDefine periodic real refined P dimension + CRDimRRefinedDefine non periodic real refined R dimension + CRDimXRefinedDefine non periodic real refined X dimension + CRDimYRefinedDefine non periodic real refined X dimension + CRestartInitializationA class that initializes the distribution function from a previous simulation + CRK2A class which provides an implementation of a second-order Runge-Kutta method + CRK3A class which provides an implementation of a third-order Runge-Kutta method + CRK4A class which provides an implementation of a fourth-order Runge-Kutta method + CRotationSimulationSimulation of a rotated Gaussian + CSingleModePerturbInitializationInitialization operator with a sinusoidal perturbation of a Maxwellian. This initializes all species + CSpeciesInformation + CImpl + CSplineBoundaryValue + CSplineBoundaryValue2D + CSplineBuilderA class for creating a spline approximation of a function + CSplineBuilder2DA class for creating a 2D spline approximation of a function + CSplineChargeDensityCalculatorA class which calculates the charge density  CSplineErrorBounds  CSplineEvaluator  CSplineEvaluator2DDefine an evaluator 2D on B-splines diff --git a/annotated.js b/annotated.js index e6e6c3513..0324be697 100644 --- a/annotated.js +++ b/annotated.js @@ -31,7 +31,6 @@ var annotated = [ "CartesianSolution", "classCartesianSolution.html", "classCartesianSolution" ], [ "CartesianToBarycentricCoordinates", "classCartesianToBarycentricCoordinates.html", "classCartesianToBarycentricCoordinates" ], [ "ChargeDensityCalculator", "classChargeDensityCalculator.html", "classChargeDensityCalculator" ], - [ "ChargeDensityCalculatorSplineless", "classChargeDensityCalculatorSplineless.html", "classChargeDensityCalculatorSplineless" ], [ "CircularToCartesian", "classCircularToCartesian.html", "classCircularToCartesian" ], [ "CollisionsInter", "classCollisionsInter.html", "classCollisionsInter" ], [ "CollisionsIntra", "classCollisionsIntra.html", "classCollisionsIntra" ], @@ -56,7 +55,6 @@ var annotated = [ "FemNonPeriodicPoissonSolver", "classFemNonPeriodicPoissonSolver.html", "classFemNonPeriodicPoissonSolver" ], [ "FemPeriodicPoissonSolver", "classFemPeriodicPoissonSolver.html", "classFemPeriodicPoissonSolver" ], [ "FftPoissonSolver", "classFftPoissonSolver.html", "classFftPoissonSolver" ], - [ "FftPoissonSolverSplineX", "classFftPoissonSolverSplineX.html", "classFftPoissonSolverSplineX" ], [ "FluidMoments", "classFluidMoments.html", "classFluidMoments" ], [ "for_each_tuple_cat", "structfor__each__tuple__cat.html", null ], [ "for_each_tuple_cat< std::tuple< Tuples... >, Tuple >", "structfor__each__tuple__cat_3_01std_1_1tuple_3_01Tuples_8_8_8_01_4_00_01Tuple_01_4.html", "structfor__each__tuple__cat_3_01std_1_1tuple_3_01Tuples_8_8_8_01_4_00_01Tuple_01_4" ], @@ -72,6 +70,7 @@ var annotated = [ "IAdvectionSpatial", "classIAdvectionSpatial.html", "classIAdvectionSpatial" ], [ "IAdvectionVelocity", "classIAdvectionVelocity.html", "classIAdvectionVelocity" ], [ "IBoltzmannSolver", "classIBoltzmannSolver.html", "classIBoltzmannSolver" ], + [ "IChargeDensityCalculator", "classIChargeDensityCalculator.html", "classIChargeDensityCalculator" ], [ "IEquilibrium", "classIEquilibrium.html", "classIEquilibrium" ], [ "IFootFinder", "classIFootFinder.html", "classIFootFinder" ], [ "IInitialization", "classIInitialization.html", "classIInitialization" ], @@ -143,6 +142,7 @@ var annotated = [ "SplineBoundaryValue2D", "classSplineBoundaryValue2D.html", "classSplineBoundaryValue2D" ], [ "SplineBuilder", "classSplineBuilder.html", "classSplineBuilder" ], [ "SplineBuilder2D", "classSplineBuilder2D.html", "classSplineBuilder2D" ], + [ "SplineChargeDensityCalculator", "classSplineChargeDensityCalculator.html", "classSplineChargeDensityCalculator" ], [ "SplineErrorBounds", "classSplineErrorBounds.html", "classSplineErrorBounds" ], [ "SplineEvaluator", "classSplineEvaluator.html", "classSplineEvaluator" ], [ "SplineEvaluator2D", "classSplineEvaluator2D.html", "classSplineEvaluator2D" ], diff --git a/classChargeDensityCalculator-members.html b/classChargeDensityCalculator-members.html index b9da5cbac..29d6b4095 100644 --- a/classChargeDensityCalculator-members.html +++ b/classChargeDensityCalculator-members.html @@ -106,10 +106,10 @@

This is the complete list of members for ChargeDensityCalculator, including all inherited members.

- - - - + + + +
ChargeDensityCalculator(SplineVxBuilder const &spline_vx_builder, SplineEvaluator< BSplinesVx > const &spline_vx_evaluator) (defined in ChargeDensityCalculator)ChargeDensityCalculator
ChargeDensityCalculator(SplineVxVyBuilder const &spline_vxvy_builder, SplineVxVyEvaluator const &spline_vxvy_evaluator) (defined in ChargeDensityCalculator)ChargeDensityCalculator
operator()(DSpanX rho, DViewSpXVx allfdistribu) const (defined in ChargeDensityCalculator)ChargeDensityCalculator
operator()(DSpanXY rho, DViewSpXYVxVy allfdistribu) const (defined in ChargeDensityCalculator)ChargeDensityCalculator
ChargeDensityCalculator(const Quadrature< IDimVx > &quad)ChargeDensityCalculator
ChargeDensityCalculator(SplineVxVyBuilder const &spline_vxvy_builder, SplineVxVyEvaluator const &spline_vxvy_evaluator)ChargeDensityCalculator
operator()(DSpanX rho, DViewSpXVx allfdistribu) const finalChargeDensityCalculatorvirtual
operator()(DSpanXY rho, DViewSpXYVxVy allfdistribu) const finalChargeDensityCalculatorvirtual
diff --git a/classChargeDensityCalculator.html b/classChargeDensityCalculator.html index 20293d7dc..72b8d56fe 100644 --- a/classChargeDensityCalculator.html +++ b/classChargeDensityCalculator.html @@ -106,22 +106,201 @@
ChargeDensityCalculator Class Reference
+ +

A class which computes charges density. + More...

+
+Inheritance diagram for ChargeDensityCalculator:
+
+
+ + +IChargeDensityCalculator +IChargeDensityCalculator + +
- - - - - + + + + + + + + - - + + + +

Public Member Functions

ChargeDensityCalculator (SplineVxBuilder const &spline_vx_builder, SplineEvaluator< BSplinesVx > const &spline_vx_evaluator)
 
-void operator() (DSpanX rho, DViewSpXVx allfdistribu) const
 
ChargeDensityCalculator (SplineVxVyBuilder const &spline_vxvy_builder, SplineVxVyEvaluator const &spline_vxvy_evaluator)
 ChargeDensityCalculator (const Quadrature< IDimVx > &quad)
 Create a ChargeDensityCalculator object. More...
 
DSpanX operator() (DSpanX rho, DViewSpXVx allfdistribu) const final
 Computes the charge density rho from the distribution function. More...
 
 ChargeDensityCalculator (SplineVxVyBuilder const &spline_vxvy_builder, SplineVxVyEvaluator const &spline_vxvy_evaluator)
 Constructor of SplineChargeDensityCalculator. More...
 
-void operator() (DSpanXY rho, DViewSpXYVxVy allfdistribu) const
 
void operator() (DSpanXY rho, DViewSpXYVxVy allfdistribu) const final
 Calculate the charge density rho from the distribution function. More...
 
+

Detailed Description

+

A class which computes charges density.

+

A class which computes charges density by solving the equation: \( \int_{v} q_s f_s(x,v) dv \) where \( q_s \) is the charge of the species \( s \) and \( f_s(x,v) \) is the distribution function.

+

A class which computes charges density by solving the equation: \( \int_{v} q_s f_s(x,v) dv \) where \( q_s \) is the charge of the species \( s \) and \( f_s(x,v) \) is the distribution function.

+

This equation is solved using an intermediate spline representation.

+

Constructor & Destructor Documentation

+ +

◆ ChargeDensityCalculator() [1/2]

+ +
+
+ + + + + + + + +
ChargeDensityCalculator::ChargeDensityCalculator (const Quadrature< IDimVx > & quad)
+
+ +

Create a ChargeDensityCalculator object.

+
Parameters
+ + +
quadThe quadrature method which should be used.
+
+
+ +
+
+ +

◆ ChargeDensityCalculator() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
ChargeDensityCalculator::ChargeDensityCalculator (SplineVxVyBuilder const & spline_vxvy_builder,
SplineVxVyEvaluator const & spline_vxvy_evaluator 
)
+
+ +

Constructor of SplineChargeDensityCalculator.

+
Parameters
+ + + +
spline_vxvy_builderA spline builder which calculates the coefficients of a spline representation.
spline_vxvy_evaluatorA spline evaluator which provides the value of a spline representation from its coefficients.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ operator()() [1/2]

+ +
+
+ + + + +
+ + + + + + + + + + + + + + + + + + +
DSpanX ChargeDensityCalculator::operator() (DSpanX rho,
DViewSpXVx allfdistribu 
) const
+
+finalvirtual
+
+ +

Computes the charge density rho from the distribution function.

+
Parameters
+ + + +
[in,out]rho
[in]allfdistribu
+
+
+
Returns
rho The charge density.
+ +

Implements IChargeDensityCalculator.

+ +
+
+ +

◆ operator()() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ChargeDensityCalculator::operator() (DSpanXY rho,
DViewSpXYVxVy allfdistribu 
) const
+
+finalvirtual
+
+ +

Calculate the charge density rho from the distribution function.

+

Calculate the charge density by calculating the spline representation of slices of the distribution function at each spatial point along the velocity direction. This representation is then integrated and multiplied by the charge to find the charge density.

+
Parameters
+ + + +
[out]rhoThe charge density.
[in]allfdistribuThe distribution function.
+
+
+ +

Implements IChargeDensityCalculator.

+ +
+

The documentation for this class was generated from the following file: diff --git a/classChargeDensityCalculator.js b/classChargeDensityCalculator.js index 4cbfab26c..48651f579 100644 --- a/classChargeDensityCalculator.js +++ b/classChargeDensityCalculator.js @@ -1,7 +1,7 @@ var classChargeDensityCalculator = [ - [ "ChargeDensityCalculator", "classChargeDensityCalculator.html#a33e8c38151bcf381a37fab85f8b4af8a", null ], + [ "ChargeDensityCalculator", "classChargeDensityCalculator.html#aed12a305287ed4637657cc3e8b71c0ab", null ], [ "ChargeDensityCalculator", "classChargeDensityCalculator.html#a2d97d4f1d146845b2ec7f54f83344089", null ], - [ "operator()", "classChargeDensityCalculator.html#a6fb1024fafc2032fee7b27b66841094a", null ], - [ "operator()", "classChargeDensityCalculator.html#a8aa580a2d9e043e3f8eb907d7730cb19", null ] + [ "operator()", "classChargeDensityCalculator.html#ad7440f208cab363eef9c4374da155fea", null ], + [ "operator()", "classChargeDensityCalculator.html#aa171397828c246922b136642e0295e26", null ] ]; \ No newline at end of file diff --git a/classChargeDensityCalculator.png b/classChargeDensityCalculator.png new file mode 100644 index 000000000..daac17b82 Binary files /dev/null and b/classChargeDensityCalculator.png differ diff --git a/classChargeDensityCalculatorSplineless.js b/classChargeDensityCalculatorSplineless.js deleted file mode 100644 index 0793694eb..000000000 --- a/classChargeDensityCalculatorSplineless.js +++ /dev/null @@ -1,5 +0,0 @@ -var classChargeDensityCalculatorSplineless = -[ - [ "ChargeDensityCalculatorSplineless", "classChargeDensityCalculatorSplineless.html#ae9721950ce9777e46edc552c4bbd57ed", null ], - [ "operator()", "classChargeDensityCalculatorSplineless.html#a413b8b8af55569508a168765b6279bcc", null ] -]; \ No newline at end of file diff --git a/classFemNonPeriodicPoissonSolver-members.html b/classFemNonPeriodicPoissonSolver-members.html index c10d444c9..5811637a0 100644 --- a/classFemNonPeriodicPoissonSolver-members.html +++ b/classFemNonPeriodicPoissonSolver-members.html @@ -106,10 +106,10 @@

This is the complete list of members for FemNonPeriodicPoissonSolver, including all inherited members.

- - + + - + diff --git a/classFemNonPeriodicPoissonSolver.html b/classFemNonPeriodicPoissonSolver.html index f81e9c2f0..98242cc40 100644 --- a/classFemNonPeriodicPoissonSolver.html +++ b/classFemNonPeriodicPoissonSolver.html @@ -107,6 +107,9 @@
FemNonPeriodicPoissonSolver Class Reference
+ +

An operator which solves the Poisson equation using Finite Elements on a non-periodic domain. + More...

Inheritance diagram for FemNonPeriodicPoissonSolver:
@@ -117,40 +120,123 @@
FemNonPeriodicPoissonSolver(SplineXBuilder const &spline_x_builder, SplineEvaluator< BSplinesX > const &spline_x_evaluator, SplineVxBuilder const &spline_vx_builder, SplineEvaluator< BSplinesVx > const &spline_vx_evaluator) (defined in FemNonPeriodicPoissonSolver)FemNonPeriodicPoissonSolver
operator()(DSpanX electrostatic_potential, DSpanX electric_field, DViewSpXVx allfdistribu) const override (defined in FemNonPeriodicPoissonSolver)FemNonPeriodicPoissonSolvervirtual
FemNonPeriodicPoissonSolver(SplineXBuilder const &spline_x_builder, SplineEvaluator< BSplinesX > const &spline_x_evaluator, IChargeDensityCalculator const &compute_rho)FemNonPeriodicPoissonSolver
operator()(DSpanX electrostatic_potential, DSpanX electric_field, DViewSpXVx allfdistribu) const overrideFemNonPeriodicPoissonSolvervirtual
IPoissonSolver::operator()(DSpanRP electrostatic_potential, VectorFieldSpan< double, IDomainRP, NDTag< RDimX, RDimY >> electric_field, DViewRP allfdistribu) const =0IPoissonSolverpure virtual
operator()(DSpanXY electrostatic_potential, DSpanXY electric_field_x, DSpanXY electric_field_y, DViewSpXYVxVy allfdistribu) const =0 (defined in IPoissonSolver)IPoissonSolverpure virtual
IPoissonSolver::operator()(DSpanXY electrostatic_potential, DSpanXY electric_field_x, DSpanXY electric_field_y, DViewSpXYVxVy allfdistribu) const =0IPoissonSolverpure virtual
~IPoissonSolver()=default (defined in IPoissonSolver)IPoissonSolvervirtual
~IPoissonSolver()=default (defined in IPoissonSolver)IPoissonSolvervirtual
~IPoissonSolver()=default (defined in IPoissonSolver)IPoissonSolvervirtual
- - - -

-Classes

struct  QDimX
 
- - - + + + + + - + +

Public Member Functions

FemNonPeriodicPoissonSolver (SplineXBuilder const &spline_x_builder, SplineEvaluator< BSplinesX > const &spline_x_evaluator, SplineVxBuilder const &spline_vx_builder, SplineEvaluator< BSplinesVx > const &spline_vx_evaluator)
 
-void operator() (DSpanX electrostatic_potential, DSpanX electric_field, DViewSpXVx allfdistribu) const override
 FemNonPeriodicPoissonSolver (SplineXBuilder const &spline_x_builder, SplineEvaluator< BSplinesX > const &spline_x_evaluator, IChargeDensityCalculator const &compute_rho)
 Construct the FemNonPeriodicPoissonSolver operator. More...
 
void operator() (DSpanX electrostatic_potential, DSpanX electric_field, DViewSpXVx allfdistribu) const override
 The operator which solves the equation using the method described by the class. More...
 
- Public Member Functions inherited from IPoissonSolver
virtual void operator() (DSpanRP electrostatic_potential, VectorFieldSpan< double, IDomainRP, NDTag< RDimX, RDimY >> electric_field, DViewRP allfdistribu) const =0
 Compute the electrical potential and the electric field from the Poisson equation. More...
 
-virtual void operator() (DSpanXY electrostatic_potential, DSpanXY electric_field_x, DSpanXY electric_field_y, DViewSpXYVxVy allfdistribu) const =0
virtual void operator() (DSpanXY electrostatic_potential, DSpanXY electric_field_x, DSpanXY electric_field_y, DViewSpXYVxVy allfdistribu) const =0
 The operator which solves the equation using the method described by the class. More...
 
-

Class Documentation

- -

◆ FemNonPeriodicPoissonSolver::QDimX

+

Detailed Description

+

An operator which solves the Poisson equation using Finite Elements on a non-periodic domain.

+

An operator which solves the Poisson equation: \( - \frac{d^2 \phi}{dx^2} = \rho \) using Finite Elements on a non-periodic domain. This solver uses spline basis elements and imposes Dirichlet boundary conditions.

+

Constructor & Destructor Documentation

+ +

◆ FemNonPeriodicPoissonSolver()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
FemNonPeriodicPoissonSolver::FemNonPeriodicPoissonSolver (SplineXBuilder const & spline_x_builder,
SplineEvaluator< BSplinesX > const & spline_x_evaluator,
IChargeDensityCalculator const & compute_rho 
)
+
+ +

Construct the FemNonPeriodicPoissonSolver operator.

+
Parameters
+ + + + +
spline_x_builderA spline builder which calculates the coefficients of a spline representation.
spline_x_evaluatorA spline evaluator which provides the value of a spline representation from its coefficients.
compute_rhoThe operator which calculates the charge density, the right hand side of the equation.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ operator()()

+ + + + + +
- + + + + + + + + + + + + + + + + + + + + +
struct FemNonPeriodicPoissonSolver::QDimXvoid FemNonPeriodicPoissonSolver::operator() (DSpanX electrostatic_potential,
DSpanX electric_field,
DViewSpXVx allfdistribu 
) const
+
+overridevirtual
-
+ +

The operator which solves the equation using the method described by the class.

+
Parameters
+ + + + +
[out]electrostatic_potentialThe electrostatic potential, the result of the poisson solver.
[out]electric_fieldThe electric field, the derivative of the electrostatic potential.
[in]allfdistribuThe distribution function.
+
+
+ +

Implements IPoissonSolver.

+

The documentation for this class was generated from the following file:
@@ -100,14 +100,14 @@
-
ChargeDensityCalculatorSplineless Member List
+
IChargeDensityCalculator Member List
-

This is the complete list of members for ChargeDensityCalculatorSplineless, including all inherited members.

+

This is the complete list of members for IChargeDensityCalculator, including all inherited members.

- - + +
ChargeDensityCalculatorSplineless(const Quadrature< IDimVx > &quad)ChargeDensityCalculatorSplineless
operator()(DSpanX rho, DViewSpXVx allfdistribu) constChargeDensityCalculatorSplineless
operator()(DSpanX rho, DViewSpXVx allfdistribu) const =0IChargeDensityCalculatorpure virtual
operator()(DSpanXY rho, DViewSpXYVxVy allfdistribu) const =0IChargeDensityCalculatorpure virtual
diff --git a/classIChargeDensityCalculator.html b/classIChargeDensityCalculator.html new file mode 100644 index 000000000..1510f95e8 --- /dev/null +++ b/classIChargeDensityCalculator.html @@ -0,0 +1,248 @@ + + + + + + + +Gyselalib++: IChargeDensityCalculator Class Reference + + + + + + + + + + + + + + + + +
+
+ + + + + + + + +
+
Gyselalib++ +
+
+ + + + + + +
+
+
+ + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
IChargeDensityCalculator Class Referenceabstract
+
+
+ +

A class which calculates the charge density. + More...

+
+Inheritance diagram for IChargeDensityCalculator:
+
+
+ + +ChargeDensityCalculator +ChargeDensityCalculator +SplineChargeDensityCalculator + +
+ + + + + + + + +

+Public Member Functions

virtual DSpanX operator() (DSpanX rho, DViewSpXVx allfdistribu) const =0
 Calculate the charge density rho from the distribution function. More...
 
virtual void operator() (DSpanXY rho, DViewSpXYVxVy allfdistribu) const =0
 Calculate the charge density rho from the distribution function. More...
 
+

Detailed Description

+

A class which calculates the charge density.

+

A class which computes charges density.

+

A class which calculates the charge density. This is then used as the right hand side of the Poisson equation.

+

A class which computes charges density by solving the equation: \( \int_{v} q_s f_s(x,v) dv \) where \( q_s \) is the charge of the species \( s \) and \( f_s(x,v) \) is the distribution function.

+

Member Function Documentation

+ +

◆ operator()() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual DSpanX IChargeDensityCalculator::operator() (DSpanX rho,
DViewSpXVx allfdistribu 
) const
+
+pure virtual
+
+ +

Calculate the charge density rho from the distribution function.

+
Parameters
+ + + +
[out]rhoThe charge density.
[in]allfdistribuThe distribution function.
+
+
+
Returns
rho The charge density.
+ +

Implemented in SplineChargeDensityCalculator, and ChargeDensityCalculator.

+ +
+
+ +

◆ operator()() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
virtual void IChargeDensityCalculator::operator() (DSpanXY rho,
DViewSpXYVxVy allfdistribu 
) const
+
+pure virtual
+
+ +

Calculate the charge density rho from the distribution function.

+

Calculate the charge density by calculating the spline representation of slices of the distribution function at each spatial point along the velocity direction. This representation is then integrated and multiplied by the charge to find the charge density.

+
Parameters
+ + + +
[out]rhoThe charge density.
[in]allfdistribuThe distribution function.
+
+
+ +

Implemented in ChargeDensityCalculator.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classIChargeDensityCalculator.js b/classIChargeDensityCalculator.js new file mode 100644 index 000000000..936f708bf --- /dev/null +++ b/classIChargeDensityCalculator.js @@ -0,0 +1,5 @@ +var classIChargeDensityCalculator = +[ + [ "operator()", "classIChargeDensityCalculator.html#a94853ddecb41d04c60155fdc18f9fcf3", null ], + [ "operator()", "classIChargeDensityCalculator.html#a720c2444f9f9f61cf70755b592f53c7b", null ] +]; \ No newline at end of file diff --git a/classIChargeDensityCalculator.png b/classIChargeDensityCalculator.png new file mode 100644 index 000000000..6d6ab7608 Binary files /dev/null and b/classIChargeDensityCalculator.png differ diff --git a/classIPoissonSolver-members.html b/classIPoissonSolver-members.html index 6993a0cbd..67c439838 100644 --- a/classIPoissonSolver-members.html +++ b/classIPoissonSolver-members.html @@ -107,8 +107,8 @@

This is the complete list of members for IPoissonSolver, including all inherited members.

- - + + diff --git a/classIPoissonSolver.html b/classIPoissonSolver.html index a515696ee..17e5707b0 100644 --- a/classIPoissonSolver.html +++ b/classIPoissonSolver.html @@ -115,14 +115,13 @@
-FemNonPeriodicPoissonSolver -FemPeriodicPoissonSolver -FftPoissonSolver -FftPoissonSolver -FftPoissonSolverSplineX -NullPoissonSolver -NullPoissonSolver -VlasovPoissonSolver< Mapping > +FemNonPeriodicPoissonSolver +FemPeriodicPoissonSolver +FftPoissonSolver +FftPoissonSolver +NullPoissonSolver +NullPoissonSolver +VlasovPoissonSolver< Mapping >
operator()(DSpanRP electrostatic_potential, VectorFieldSpan< double, IDomainRP, NDTag< RDimX, RDimY >> electric_field, DViewRP allfdistribu) const =0IPoissonSolverpure virtual
operator()(DSpanX electrostatic_potential, DSpanX electric_field, DViewSpXVx allfdistribu) const =0 (defined in IPoissonSolver)IPoissonSolverpure virtual
operator()(DSpanXY electrostatic_potential, DSpanXY electric_field_x, DSpanXY electric_field_y, DViewSpXYVxVy allfdistribu) const =0 (defined in IPoissonSolver)IPoissonSolverpure virtual
operator()(DSpanX electrostatic_potential, DSpanX electric_field, DViewSpXVx allfdistribu) const =0IPoissonSolverpure virtual
operator()(DSpanXY electrostatic_potential, DSpanXY electric_field_x, DSpanXY electric_field_y, DViewSpXYVxVy allfdistribu) const =0IPoissonSolverpure virtual
~IPoissonSolver()=default (defined in IPoissonSolver)IPoissonSolvervirtual
~IPoissonSolver()=default (defined in IPoissonSolver)IPoissonSolvervirtual
~IPoissonSolver()=default (defined in IPoissonSolver)IPoissonSolvervirtual
@@ -131,18 +130,22 @@ - + + - + +
virtual void operator() (DSpanRP electrostatic_potential, VectorFieldSpan< double, IDomainRP, NDTag< RDimX, RDimY >> electric_field, DViewRP allfdistribu) const =0
 Compute the electrical potential and the electric field from the Poisson equation. More...
 
-virtual void operator() (DSpanX electrostatic_potential, DSpanX electric_field, DViewSpXVx allfdistribu) const =0
virtual void operator() (DSpanX electrostatic_potential, DSpanX electric_field, DViewSpXVx allfdistribu) const =0
 The operator which solves the equation using the method described by the class. More...
 
-virtual void operator() (DSpanXY electrostatic_potential, DSpanXY electric_field_x, DSpanXY electric_field_y, DViewSpXYVxVy allfdistribu) const =0
virtual void operator() (DSpanXY electrostatic_potential, DSpanXY electric_field_x, DSpanXY electric_field_y, DViewSpXYVxVy allfdistribu) const =0
 The operator which solves the equation using the method described by the class. More...
 

Detailed Description

Base class for Poisson solver.

+

An operator which solves the Poisson equation using a fast Fourier transform.

+

An operator which solves the Poisson equation.

+

An operator which solves the Poisson equation: \( - \frac{d^2 \phi}{dx^2} = \rho \)

+

An operator which solves the Poisson equation: \( - \frac{d^2 \phi}{dx^2} = \rho \) using a fast Fourier transform on a periodic domain. This operator only works for equidistant points.

Member Function Documentation

-

◆ operator()()

+

◆ operator()() [1/3]

@@ -193,6 +196,121 @@

VlasovPoissonSolver< Mapping >.

+

+
+ +

◆ operator()() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void IPoissonSolver::operator() (DSpanX electrostatic_potential,
DSpanX electric_field,
DViewSpXVx allfdistribu 
) const
+
+pure virtual
+
+ +

The operator which solves the equation using the method described by the class.

+
Parameters
+ + + + +
[out]electrostatic_potentialThe electrostatic potential, the result of the poisson solver.
[out]electric_fieldThe electric field, the derivative of the electrostatic potential.
[in]allfdistribuThe distribution function.
+
+
+ +

Implemented in NullPoissonSolver, FftPoissonSolver, FemPeriodicPoissonSolver, and FemNonPeriodicPoissonSolver.

+ +
+
+ +

◆ operator()() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void IPoissonSolver::operator() (DSpanXY electrostatic_potential,
DSpanXY electric_field_x,
DSpanXY electric_field_y,
DViewSpXYVxVy allfdistribu 
) const
+
+pure virtual
+
+ +

The operator which solves the equation using the method described by the class.

+
Parameters
+ + + + + +
[out]electrostatic_potentialThe electrostatic potential, the result of the poisson solver.
[out]electric_field_xThe x-component of the electric field, the gradient of the electrostatic potential.
[out]electric_field_yThe y-component of the electric field, the gradient of the electrostatic potential.
[in]allfdistribuThe distribution function.
+
+
+ +

Implemented in NullPoissonSolver, and FftPoissonSolver.

+

The documentation for this class was generated from the following file: