Namespace TempLat
Namespaces
| Type | Name |
|---|---|
| namespace | Constants A class which implements the i*sigma matrices. |
| namespace | InitialConditionsType |
| namespace | KECCAK |
| namespace | Kernels |
| namespace | KernelsTypes |
| namespace | MPITags |
| namespace | Operators Extra namespace, as names such as Add and Subtract are too generic. |
| namespace | Symbols A namespace which contains symbols such as the epsilon tensor. |
| namespace | detail |
| namespace | device |
| namespace | device_kokkos |
| namespace | std_device |
Classes
| Type | Name |
|---|---|
| class | AbstractField <typename T, _NDim> A base class for a one-component field, providing common functionality and holding relevant pointers to memory tools. |
| class | AbstractMeasurer |
| class | AbstractModel <class R, NPOTTERMS, NS, NC, NU1FLDS, NSU2DOUBLET, NSU2FLDS, typename CSU1COUPLINGS, typename SU2DOUBLETU1COUPLINGS, typename SU2DOUBLETSU2COUPLINGS, typename SCALARU1AXIONCOUPLINGS, typename NONMINCOUPLINGS, typename T, NDIM, DEFECTSMODEL> A class which contains everything a model should have; models derive from here. Mother of all the models. The arguments are passed as template parameters. |
| class | AsComplexField <typename R> Adapts a getter whose eval() returns a complex<C> value into a complex-field expression (i.e. one exposing ComplexFieldGet(Tag<0>)/ComplexFieldGet(Tag<1>)). This is the inverse ofasFourier() . |
| class | AssignableCollectionBase <class Q, Args> A class which implements collections of object which are assignable. |
| class | AssignableCollectionBase< Q > <class Q> |
| class | AssignableTuple <Shift, Args> A class which makes tuple out of things that have an operator equal. Dispatch the equal. |
| class | Averager <typename T> A class which computes the average value of a getter. |
| class | AveragerHelper <typename vType, isComplexValued> A class which Average Routimes common to single field and list averager. |
| class | Averages A class used to compute common averages. |
| class | AxionCouplings A class which computes the matter currents and charge densities of the gauge fields. |
| class | BDPhaseHelper <typename T, NDim, gauge> |
| class | BackDiff <dir, typename R> A class which implements backward finite differences. |
| class | Benchmark A class to benchmark your code. |
| class | BinaryOperator <typename R, typename T> A parent class which implements the common methods that all binary operators (*, +, -,... ) share. |
| class | CStyleTime A class which returns date and time, pre C++17. |
| class | CenteredFields A class which computes centered versions of electric and magnetic fields. |
| struct | CheckAxionU1 <typename M, typename> |
| struct | CheckAxionU1< M, decltype((void) M::IsAxionU1Coupled, void())> <typename M> |
| struct | CheckerboardForEachWrapper <NDim, typename Functor> Wraps a foreach functor to apply checkerboard reconstruction. |
| struct | CheckerboardLayout <NDim> Wraps a LayoutStruct to iterate over only even or odd parity lattice sites. |
| struct | CheckerboardReduceWrapper <NDim, typename Functor> Wraps a reduce functor to apply checkerboard reconstruction. |
| class | ChiralProjector <typename R, typename T, typename Model> |
| class | CollectionBase <class Q, typename T, NDim, ISMOMENTUM, I> |
| class | CollectionBase< Q, T, NDim, ISMOMENTUM > <class Q, typename T, NDim, ISMOMENTUM> |
| struct | CollectionHelper <class Q, typename T, NDim, ISMOMENTUM, Start, End> |
| struct | CollectionHelper< Q, T, NDim, ISMOMENTUM, I, I > <class Q, typename T, NDim, ISMOMENTUM, I> |
| struct | CollectionSelector <class Q, typename T, NDim, ISMOMENTUM, N, SHIFT, ENABLE> |
| struct | CollectionSelector< Q, T, NDim, ISMOMENTUM, N, SHIFT, false > <class Q, typename T, NDim, ISMOMENTUM, N, SHIFT> |
| class | ComplexEvalComponent <typename R, N> The real (N==0) or imaginary (N==1) component of a getter whose eval() returns a complex value. |
| class | ComplexField <typename T, _NDim> A class which implements complex-valued fields. |
| class | ComplexFieldAddition <class R, class T> A class which implements complex field addition. |
| class | ComplexFieldAsFourier <typename R> A class which treats a complex field as an object in fourier space. |
| class | ComplexFieldAverager <typename T> A class which averages complex fields. |
| class | ComplexFieldBinaryOperator <typename R, typename T> A class which gtoups common features of binary field operators. |
| class | ComplexFieldConjugate <typename R> A class which computes the complex conjugate of a complex field. |
| class | ComplexFieldFourierView <typename T, NDim> A class which holds complex field in fourier space. |
| class | ComplexFieldGetter A class which get real and imaginary part. |
| class | ComplexFieldMultiplication <class R, class T> A class which multiplies two complex fields. |
| class | ComplexFieldOperator A class which implements common features of complex fields operators. |
| class | ComplexFieldSU2DoubletMultiplication <typename R, typename T> A class which implements the fundamental action of SU2. |
| class | ComplexFieldShifter <typename R, N> A class which implements spatial shifts for complex algebra. |
| class | ComplexFieldShifterByOne <typename R, _N> |
| class | ComplexFieldSubtraction <class R, class T> A class which implements complex subtraction. |
| class | ComplexFieldUnaryOperator <typename R> A class which groups common features of unary complex field operators. |
| class | ComplexFieldWrapper <class R, class T> A class which wraps two objects as a complex field. |
| struct | ComplexGetGetReturnType <typename T> A class which unpack the return type of a complex type. |
| class | ComplexScalarBase <NDIM, typename T, NC, typename CSU1COUPLINGS> |
| class | ComplexScalarKernels A class that computes the kernels for the complex scalars. |
| class | ComplexScalarMeasurer <typename T> A class which contains standard measurements for the complex scalars. |
| struct | Concat <class S1, class S2> A class which concatenates lists. |
| struct | Concat< CollectionBase< Q, T, NDim, ISMOMENTUM, I1s... >, CollectionBase< Q, T, NDim, ISMOMENTUM, I2s... > > <class Q, typename T, NDim, ISMOMENTUM, I1s, I2s> |
| struct | Concat< TagListBase< I1s... >, TagListBase< I2s... > > <I1s, I2s> |
| class | ConditionalFileStream A class which adds an owned file stream to the ConditionalStream . |
| class | ConditionalSayShort A class which only spits out to TTY if enabled == true. |
| class | ConditionalStream Because of MPI, we often only want to stream if we are root, etc. To simplify the notation, and simply always be able to write output << ..., we create a wrapper that accepts input with operator<<, and does the 'if'-ing inside that operator. |
| class | ConfigView <typename T, _NDim> A view on the field which, when interacted with, assures every time again that things are in configuration space, and possibly the ghost cells are updated when needed. The final Field class defaults to config space, which means it inherits from this class. |
| class | ConfirmGhosts A class which wraps the calls to confirm(Configuration/Fourier)Space, for classes that have it and objects that don't. |
| class | ConfirmSpace A class which wraps the calls to confirm(Configuration/Fourier)Space, for classes that have it and objects that don't. |
| class | ContainsSpace A class which checks if a string contains a space. |
| class | CouplingsManager <NMatter, NGauge, Bools> |
| class | CouplingsManager< NMatter, NGauge > <NMatter, NGauge> This class is a specialization of the CouplingsManager for the case where there are no gauge field couplings. |
| class | CouplingsManagerContainer <typename FloatType, NMatter, NGauge, Bools> A class which stores statically an array of booleans; useful to manage what couples to what. |
| struct | DefaultModelPars |
| class | DefectsMeasurer <typename T> A class which contains measurements of energies and scale factor. |
| class | DefectsObservables |
| class | Demangle A class which demangles from internal c++ to source code naming, taken from http://stackoverflow.com/a/4541470/2295722 . |
| class | Derivatives A class which aaplies vectorially the automatic derivative. Not used anywhere. |
| class | Diffusion |
| class | DimensionCountRecorder <NDim> A super class which records the number of dimensions on any call to confirmSpace. |
| class | DoEval A class which helps implementing the intermediate evaluation mechanism, extremely useful for matrix algebra. |
| class | Endianness A class which detects, at runtime, the endianness of the system. |
| class | Energies A class which computes the energy when working with our verlet-type algorithms. Assumes that the averages have already been computed. |
| class | EnergiesMeasurer <typename T> A class which contains measurements of energies and scale factor. |
| class | EnergySnapshotsMeasurer <typename Model> A class that prints snapshots of energy densities in configuration space. |
| class | Evolver <class Model> |
| class | Exception An exception which takes variadic arguments, all recorded into an error message. |
| class | ExpressionShifter <typename R, SHIFTS> A class which implements shifts in coordinates. |
| class | ExpressionShifterByOne <typename R, _N> |
| class | ExternalPowerSpectrumInitializer <typename T> A class that contains functions related with initial random fluctuations for scalar fields given by an external power spectrum. |
| class | ExtraFields <typename Model> |
| struct | FFTDecomposition <NDim> The MPI Cartesian decomposition an FFT backend will use for a given runtime setup. |
| class | FFTLayoutStruct <NDim> A struct which holds two memory layouts, which are inseparable: |
| class | FFTLibraryInterface <NDim> A pure abstract class (interface!) which defines the methods that you must implement for your new fft library to play well with us. |
| class | FFTLibrarySelector <NDim> |
| class | FFTMPIDomainSplit <NDim> A class which combines the MPIDomainSplit with theFFTLibrarySelector limits on domain splitting. |
| class | FFTNormalization <NDim> A class which applies the normalization to a block of memory after C2R and R2C fft's. You can choose between: fourier: C2R: 1/N, R2C: 1, mixed: C2R: 1/sqrt(N), R2C: 1/sqrt(N), config: C2R: 1, R2C: 1/N,. |
| class | FFTPlanInterface <typename T, NDim> Yes, for once a nested class. The interface for your to-be-implemented FFT plan, but forward and backward. Complex-to-real and real-to-complex. |
| class | FFTSessionGuard Yes, another nested class interface: for the session guard. Your constructor should take care of your_library_init(), your destructor should take care of your_library_cleanup(). These are the session-wide initialization / finalization calls. |
| struct | FFTTopology <NDim> The complete MPI topology an FFT backend will use: not just the grid shape, but the communicator whose rank order defines it and this rank's position within it. |
| class | FFTWGuard A class which guards intialization and finalization of FFTW. Only used by MPIGuard , which manually calls its destructor. |
| class | FFTWHermitianPartners <NDim> A class which holds all information about the redundancy in the complex values from a r2c fft. The redundancy comes from hermitian symmetry, so certain elements must be each other's complex conjugate. This class tells you which elements are each other's. |
| class | FFTWInterface <NDim> A class which implements all of FFTLibraryInterface . The larger methods are implemented in classes from which we inherit, in a linear chain:FFTWMemoryLayout andFFTWPlanner . |
| class | FFTWMemoryLayout <NDim> Implements part of FFTLibraryInterface , computes the local memory associated to the global problem, for FFTW. |
| class | FFTWPlanHolder <typename T, NDim> A class which holds FFT plans, and implements FFTLibraryInterface::PlanInterface<T>. The plans are implemented in std::shared_ptr's, so they are only desctructed when the last instance is destructed. |
| class | FFTWPlanner <NDim> A class which partially implements FFTLibraryInterface , namely the getPlans parts. That is, here the calls to the FFTW planner are made. |
| class | FFTWTranspositionFlags <NDim> A class which creates the transposition flags for FFTW, based on a layout. |
| class | Factorize A class which factorizes an integer into its primes. |
| class | Field <typename T, _NDim> A class which is a classical field on your n-dimensional equisized grid. You use it as a scalar field, a vector component, whatever. Template parameter is your type of floating point precision: float or double. Default: double. |
| class | FieldCollection <class Arg, N, flatAssign, SHIFTIND> A class which Field collections. Allows to have collection of composite vector fields as well. |
| class | FieldFunctionals A class which stores expressions of field functionals. By "field functional" we refer to any function of the field variables such as quadratic forms, e.g. <phi^2>, and others. |
| struct | FieldNDimCheck <NDimCheck> |
| class | FieldsAsInModel <typename Model> A class which holds extra fields, so that they can be used across the program. |
| class | FieldsNumbering A class which defines an ordering for the fields, to be used across the interface. |
| class | FileIO <NDim> A class which wraps HDF5 file saving and loading. |
| class | FileReader A class which reads input files. |
| class | FileToJSON A class which reads a file which contains valid JSON, and parses it into a json::JSON object. |
| class | FileToString A class which reads a file into a std::string. Constructor does not work, reading is actually done when the class is cast to a string. |
| class | FilesManager <NDim> Interface to switch between hdf5 and std output for measurements. This class hides the polymorphism under the hood. |
| class | FixedBackgroundExpansion <typename T> A class which implements fixed background expansion. |
| class | Flattener A class which flattents a composite collection. |
| class | FloatToString A class which holds one static method (format) which returns a nicer string representation of a floating point value, for display purposes (not too many significant digits). |
| class | FluctuationsGenerator <typename T> A class that contains functions related with initial random fluctuations for scalar fields. |
| struct | ForRangeHelper <i, j> |
| struct | ForRangeHelper< i, 0 > <i> |
| class | ForwDiff <dir, typename R> A class which implements forward finite differences. |
| class | ForwDij <dir, typename R> A class which implements forward finite sums. |
| class | FourierView <typename T, _NDim> A view on the field which, when interacted with, assures every time again that things are in fourier space, and possibly the ghost cells are updated when needed. |
| class | GWBase <NDIM, typename T> |
| class | GWProjector <typename R, typename T, typename Model> A class which computed the energy of the GWs, using the type 1 (neutral) TT projector. |
| class | GWProjectorType1 <typename R, typename T, typename Model> |
| class | GWProjectorType2 <typename R, typename T, typename Model> |
| class | GWProjectorType3 <typename R, typename T, typename Model> |
| class | GWsInitializer A class which is used to initialize the gravitational waves fields. |
| class | GWsKernels A class which stores the kernel for the GWs fields. |
| class | GWsMeasurer <typename T> A class which contains standard measurements for the GWs sector. |
| class | GaugeDerivatives A class which computes spatial scalar and (covariant) gauge derivatives. |
| class | GaussLaws A class that checks the preservation of the Gauss constraints, for both U1 and SU2 gauge sectors. |
| class | GetCPPTypeName A class which calls typeid and demangles it if possible. |
| class | GetComponent A class which calls getComp. |
| class | GetDeriv A class which gets derivates from all classes, also those that do not have derivative. |
| class | GetDx A getter for dx. |
| struct | GetFloatType <typename T> A template which extracts the float type from complexes. |
| struct | GetFloatType< F > <typename F> |
| struct | GetFloatType< complex< F > > <typename F> |
| struct | GetFloatType< device::array< T, N > > <typename T, N> |
| struct | GetGetReturnType <typename T> get(IterationCoordinates&) might be a function which returns a real value or a complex value. Sometimes we need to explicitly access what type it is. |
| class | GetKIR A getter for kIR. |
| class | GetNDim A class which returns the number of dimensions. |
| class | GetNGrid A class which returns the number of grid points in a specific dimensions. |
| struct | GetNScalars <typename CM> |
| struct | GetNScalars< CouplingsManager< NScalars, NU1, Coupled > > <NScalars, NU1, Coupled> |
| class | GetString A template-programming class which helps to get the 'toString'-value from any type, whether it has the toString-method or it is a scalar value. |
| class | GetToolBox A Helper class which returns the toolbox of an object, if it has one, and throws an exception if it doesn't. This is useful for measurement objects, which may or may not have a toolbox, but we want to be able to call getToolBox() on them without having to check if they have one first. |
| class | GetVectorComponentHelper <N, typename R> A class which returns one component of a vector as an object, keeping all fourier and co mechanics consistent. Mostly useful for wave numbers. |
| class | GetVectorSize A class which gets the size of a vector like composite object. |
| class | GhostBuster <NDim> A class which adds and removes (busts!) ghost cells to your layout. Pass the original layout and the target layout to the constructor. Then pass any pointer which satisfies for origin layout to the function call operator. And the rest will be history. |
| class | GhostStateKeeper A class which only holds the state of ghost cells: stale or up to date. |
| class | GhostSubarray <NDim> A class which holds an MPI_Datatype which is a subarray of the lattice, created by MPI_Type_create_subarray. The subarray is the ghost padding of the lattice, in one single dimension. |
| class | GhostSubarrayMap <NDim> A class which keeps track of all subarray types for a given layout, which in turn is described by the LayoutStruct . The map is for datatypes and dimensions. getSubArray<T>(dimension) is the only necessary public method. |
| class | GhostUpdater <NDim> A class which updates the ghost cells in our total memory block. By having the LayoutStruct , this class knows what is the ghostDepth. |
| class | GhostsHunter A class which helps implementing the automatic management of updating the ghost cells. |
| struct | HalfType A class which implement 1/2 as a type. Useful for squareroots. |
| struct | HasAsTupleCat <class, class> A class which detects whether or not an object has the hasTuplCat method. |
| struct | HasAsTupleCat< T, std::void_t< decltype(std::declval< T >().asTupleCat())> > <class T> |
| struct | HasExplicitCoordinateDependence <class T, class S> Enables adapting the coordinates inside a possible shifted view on this object. This is very expensive, time-wasting, which is why we want to be able to detect such an explicit coordinate dependence, and skip the coordinate-shift computation when it is not used, saving loads of cpu time. |
| struct | HasExplicitCoordinateDependence< T, std::void_t< decltype(T::EXPLICITCOORDINATEDEPENDENCE)> > <class T> Specialization: single object that mentions its explicit coordinate dependence. |
| struct | HasExplicitCoordinateDependence< T< S >, std::void_t<> > <T, typename S> Specialization: template object (Getter) whose enclosed class might mention its explicit coordinate dependence. |
| struct | HasExplicitCoordinateDependence< T< S1, S2 >, std::void_t<> > <T, typename S1, typename S2> Specialization: template object (Getter) whose enclosed class might mention its explicit coordinate dependence. |
| class | HeavisideStepFunction <typename R> Heaviside step function We use the convention that H(0) = 1 for simplicity. |
| struct | HermGetGetReturnType <typename T> |
| class | HermGetter A class which get real and imaginary part. |
| class | HermOperator |
| class | HermSymTracelessMultiplication <class R, class T> A class which multiplies two symmetric-traceless fields. |
| class | HermSymTracelessMultiplicationTrace <class R, class T> A class which multiplies two symmetric-traceless fields. |
| class | HermWrapper <typename R11, typename R12, typename R13, typename R22, typename R23, typename R33> A class which wraps six expressions, the upper triangle, as a hermitian 3x3 matrix. |
| class | HermitianPartners <NDim> An almost abstract class which your FFT library must implement, which maps the redundant entries in the complex representation of the FFT of your real values data, to their hermitian-conjugate partners. |
| class | HermitianValueAccounting A number of unique / independent real and imaginary floating point values in a memory layout. |
| class | HubbleConstraint A class that computes the hubble law in order to monitor "energy conservation". |
| struct | IntrinsicScales The result holder for getIntrinsicRescaleToGetUnnormalizedFFT: two labeled double values. |
| struct | IsCompositeHelper <class, N> A class which allows to check whether a class is composite or not. Allows to write general function that works on composite classes. |
| struct | IsCompositeHelper< T, 1 > <class T> |
| class | IsInContainer A class which checks wheter container contains some objects. Need to be std compatible. https://stackoverflow.com/a/19299611 . |
| struct | IsSU2DaggerT <class T> |
| struct | IsSU2DaggerT< SU2Dagger< R > > <class R> |
| struct | IsTupleLike <class, class> A class which tests whether or not a class behaves like a tuple. |
| struct | IsTupleLike< T, std::void_t< typename std::tuple_size< T >::type > > <class T> |
| class | IsVariadicIndexTester |
| class | KBins <typename T> |
| class | KeccakHash A class which computes (statically) the keccak hash of one string. |
| class | KeccakHashBareClass A class which computes the keccak hash of one string, which is passed to the method compute. Can compute only once, then keeps the state. Throws an exception if compute is called twice. |
| class | KokkosFFTMemoryLayout <NDim> Implements part of FFTLibraryInterface , computes the local memory associated to the global problem, for KokkosFFT. Build on this to replace KokkosFFT. |
| class | KokkosFFTPlanHolder <typename T, NDim> A class which implements part of FFTLibraryInterface::PlanInterface, holding the KokkosFFT plans in shared_ptr's. |
| class | KokkosFFTPlanner <NDim> A class which implements part of FFTLibraryInterface , the planner part. Here all calls to KokkosFFT_plan ... are made. |
| class | KokkosFFTTranspositionFlags <NDim> A class which determines the transpose-flags for the KokkosFFT planners, corresponding to a given layout. |
| class | LatinIndicesList <Args> A class which an enumerated list which starts from 1 rather than 0. |
| class | LatticeForwardGradient <typename R> A class which implements the forward gradient. |
| class | LatticeLaplacian <typename R> A class which implements the laplacian. |
| struct | LatticeParameters <typename T> |
| struct | LayoutStruct <NDim> Holds the result of FFTLibraryInterface::computeLocalSizes . In itself, has practically no logic, only forwards all the getters and setters to their respective owners. SeeLayoutStructGlobal ,LayoutStructLocal andLayoutStructLocalTransposed . |
| class | LayoutStructGlobal <_NDim> A class which holds some memory informations. |
| class | LayoutStructLocal <_NDim> A class which localSizes: the local size in each dimension. localStart: the coordinate of the first entry in local memory, in the global coordinate space. |
| class | LayoutStructLocalTransposed <_NDim> transitionMap: a map of the dimensions, for transposition in memory. E.g. {0, 1, 2, 3} is untransposed 4d, {1, 0, 2, 3} is FFTW transposed. In other words, the entries in transitionMap are in line with the entries in localStarts/-Sizes, and their value indicates the physical-space dimension of that entry. |
| class | LeapFrog <class T> A class which implements a leapfrog scheme to evolve scalar singlets, complex scalars, SU2 doublets, and U(1) and SU(2) gauge fields. |
| class | ListAbsoluteValue <typename R> A class which adds two getters. Holds the expression, only evaluates for a single element when you call Multiply::get(pIterCoords). |
| class | ListAddition <typename R, typename T> A class which adds two getters. Holds the expression, only evaluates for a single element when you call Multiply::get(pIterCoords). |
| class | ListBinaryOperator <typename R, typename T> Wrapper for algebra with FieldCollection . Here we define the base methods for checking and everything. Can use this algebra to implement matrix and vector algebra! IDEA: statically type MATRIXTYPE type and template methods of the type AddMatrixTypes<R,T>::type. |
| class | ListComplexConjugate <typename R> A class which implements the complex conjugation for the list algebra. |
| class | ListDivision <typename R, typename T> |
| class | ListExponential <typename R> A class which implements the exponentiation for the list algebra. |
| class | ListLaplacian <typename R> A class which applies a minus sign. Holds the expression, only evaluates for a single element when you call Multiply::get(pIterCoords). |
| class | ListLog <typename R> A class which implements the logarithm for the list algebra. |
| class | ListMultiplication <typename R, typename T> |
| class | ListPower <typename R, typename T> |
| class | ListPowerN <N, typename R> |
| class | ListShifter <class R, N> A class which implements shifts for the list algebra. |
| class | ListShifterByOne <typename R, N> |
| class | ListSubtraction <typename R, typename T> A class which adds two getters. Holds the expression, only evaluates for a single element when you call Multiply::get(pIterCoords). |
| class | ListUnaryMinus <typename R> A class which adds two getters. Holds the expression, only evaluates for a single element when you call Multiply::get(pIterCoords). |
| class | ListUnaryOperator <typename R> A class which. |
| class | LoadBalance A class which given and a number of threads nth, return nth integer which reprensents the most even splitting of the number. |
| class | LogMutex A class which holds a mutex, specific for output (log). |
| class | MPIAllReduce A class which calls MPI_Allreduce, meaning that all processes submit their value and receive the combined value of all processes, given an operation to combine the values. |
| class | MPICartesianExchange A class which handles the exchange between neighbours in the cartesian group. Has two methods: exchangeUp and exchangeDown, which take as input a datatype, a dimension (because you need to specify what is up and down), a pointer for the sending memory and a pointer for the receiving memory. |
| class | MPICartesianGroup A class keeps the books regarding the process layout relative to the physics lattice. |
| class | MPICartesianNeighbours A class which fetches and stores the neighbours in all dimensions. Internally just contructs a std::vector<MPICartesianNeighboursSingleDimension> with each entry corresponding to its associated dimension. |
| class | MPICartesianNeighboursSingleDimension A class which fetches and stores the two neighbours in a single dimension. |
| class | MPICommReference A class which holds an MPIComm. The Comm WILL DESTRUCT when the last owner of a reference to this class destructs its instance. Unless it is MPI_COMM_WORLD, of course. |
| class | MPIDebuggerHanger A class which can be used to hang a serial debugger like gdb to individual threads. |
| class | MPIDomainSplit A class which factorizes an integer into N roughly equal-size integers. That is, our best guess for the domain decomposition. |
| class | MPIGuard A class which guards intialization and finalization of pure MPI. Only used by SessionGuard , which manually calls its destructor, but which also holds the FFTW and other guards. |
| class | MPISendReceive A class which holds all methods that do plain Send and Receive in MPI. Just call the send and receive methods with any scalar or vector-like input, associated rank numbers and tags. Unused for now. |
| class | MPITagsJustCompile A class which just compiles. Unit test: ctest -R test-mpitags. |
| class | MPITypeConstants |
| class | MatrixBinaryOperator <typename R, typename T> A class which gtoups common features of binary field operators. |
| struct | MatrixGetGetReturnType <typename T> |
| class | MatrixGetter A class which get real and imaginary part. |
| class | MatrixMatrixMultiplication <class R, class T> A class which multiplies two general (full, 9-component) 3x3 matrix fields. Distinct from the symmetric-traceless products (sym/herm/scalar SymTracelessMultiplication), which store fewer independent components and use the traceless relation. |
| class | MatrixMatrixMultiplicationTrace <class R, class T> A class which computes the trace of the product of two matrix fields. Used for the projector of GWs. |
| class | MatrixOperator A class which implements common features of matrix fields operators. |
| class | MatrixWrapper <typename R11, typename R12, typename R13, typename R21, typename R22, typename R23, typename R31, typename R32, typename R33> A class which wraps nine expressions as a general 3x3 matrix, given row by row. |
| class | MatterCurrents A class which computes the matter currents and charge densities of the gauge fields. |
| class | Maximum <typename T> |
| class | MeansMeasurer A class which implements common measurement to all fields, like mean and variance, in a standardized format. |
| class | MeasurementsSaver <typename T> A class which implements an interface to the measurement IO. Allow to switch between different format. |
| class | MeasurementsSaverStd <typename T> A class which is used to save measurements using the standard library. |
| class | Measurer <typename Model, typename T> A class which contains the measurements. |
| class | MemoryBlock <typename T, NDim> A class which holds a block of memory. Feel free to pass it around and copy: the pointer is itself kept inside a shared pointer. Only when the last owner is destructed, the memory is freed. |
| class | MemoryLayoutState A class which tracks the three layout states the memory can have. If state is undefined, all the is___Space() variants return true. So you don't wast time FFT'ing trash etc. |
| class | MemoryManager <typename T, NDim> A class which holds a single lattice in memory, and tracks and moves between various ghost states. Templated for the memory type, typically float or double. All the confirm___Space() functions return a device::Idx, which counts the amount of work done. Ignore that, but it is important for testing purposes. NOTE that the memory access operators (T* and operator[]) do NOT verify if memory was allocated. |
| class | MemoryToolBox <_NDim> A class which collects all the tool classes which deal with memory(-state) manipulation. Make one toolbox using the makeShared method, and instantiate as many memory managers as you want, with identical layouts! |
| class | ModelInitializer <typename T> A class initializes a model's fields and the scale factor. |
| class | ModelParametersBase <typename T> |
| class | MomentumInterpolator <typename T, NDim> |
| class | MomentumMultiplicity <typename T, NDim> Computes, for each Fourier-space site, the multiplicity of modes sharing the same rounded momentum magnitude bin. Returns 1/multiplicity on eval. Generalized to arbitrary NDim. |
| class | MultipleParameterGetter <typename T> A class which returns multiple parameters. |
| class | NamedTmpFile A class which creates a named temporary file, accepts input, and can close and delete. |
| class | NeutDiff <dir, typename R> A class which implements neutral finite differences. |
| class | NeutDij <dir, typename R> A class which implements neutral finite sums. |
| class | NonMinimalCoupling |
| class | NonMinimalCouplingBase <typename T, NS, typename NONMINCOUPLINGS> |
| class | NormGradientSquare <typename R> A class which computes the gradient square norm. |
| struct | Number <typename T> A runtime-mutable scalar value that participates in the expression template algebra. |
| struct | NumberCollection <typename T, N> A lightweight fixed-size collection of Number<T> values. |
| class | NumericalIntegrator A class which encapsulate some newto-cotes integration formula. Assume that the point are equispaced. |
| class | OccupationNumberMeasurer A class which computes the occupation number. |
| struct | OneType A class which represents one. Attempt to simplify derivative expressions. |
| class | OutputStream <typename R> A class which handles output, with convenient savetxt function. |
| class | PITensor A class which computes the componentes of the Anisotropic Tensor source of Gravitational Waves. |
| class | PairMaker Small class which splits strings into two and make a pair out of it. |
| class | ParafaftMemoryLayout <NDim> Memory layout computation for parafaft. |
| class | ParafaftPlanHolder <typename T, NDim> Plan holder for parafaft FFT transforms. |
| class | ParafaftPlanner <NDim> Plan creation for parafaft FFT transforms. |
| class | ParameterGetter <typename T> Class for parameter .handler. Special getter which can directly cast to T. |
| class | ParameterParser |
| class | ParenthesisStripper A class which strips a string of its parenthesis if they are first and last characters. |
| class | PauliVectorsAlgebra A class which implements the SU2 algebra at the single element level. |
| class | PoorMansProfile A class for the poor man's profiling: prints out the map upon destruction. |
| class | PositionVerlet <typename T> A class which implements a position Verlet algorithm that evolves scalar singlets, complex scalars, SU2 doublets, and U(1) and SU(2) gauge fields. |
| struct | PositionVerletParameters <typename T> A class which stores the composition parameters for position Verlet schemes. |
| class | PostGet A class which wraps the calls to confirm(Configuration/Fourier)Space, for classes that have it and objects that don't. |
| class | Potential A class which manipulates the potential and the its derivatives. |
| class | PowerSpectrumMeasurer <typename T, NDim> A class which computes the power spectrum, with the appropriate rescaling to make it volume independent. |
| class | PreGet A class which wraps the calls to confirm(Configuration/Fourier)Space, for classes that have it and objects that don't. |
| class | PrettyToString A class which attempts to write a float removing the unnnecessary 0 at the end. Not completely robust as this is a complicated problem but good enough for our purposes. |
| class | RK2NStorage <typename Model> A class which implements low storage ("2N-storage") explicit RK methods. |
| class | RK2NStorageFields <typename Model> A class which implements low storage ("2N-storage") explicit RK methods. |
| class | RK2NStorageParameters <typename T> A class which stores coefficients for 2N-storage RK. |
| class | RadialBinComputer A class which returns an integer bin for a given fp value. |
| class | RadialProjectionRebinner <typename T> A class which takes a std::vector<RadialProjectionSingleBinAndValue<T>> and rebins it into a smaller number of bins. |
| class | RadialProjectionResult <typename T> A class which holds the result of a radial projection, with per bin the average position of each entry (the horizontal axis in your plot..), the variance in the position, the average value, the sample variance (= <f^2> - <f>^2 ) of the values, and the number of entries in a bin (multiplicity). |
| struct | RadialProjectionSingleBinAndValue <typename T> A class which combines a pair of RadialProjectionSingleDatums, one for the bin position, one for the function value for that bin. |
| struct | RadialProjectionSingleDatum <typename T> A class which holds a single bin which results from the radial projection of something. Used for describing both the bin position and values, namely combined in RadialProjectionSingleBinAndValue . |
| class | RadialProjectionSingleQuantity <typename T> A class which holds properties of a quantity (average, variance, min, max), each in a separate vector. Useful during the integration, will be transposed after the integration is done. |
| class | RadialProjector <typename T> A class which projects any N-D lattice on its positive-definite radial coordinate. In other words, integrating out all the angular dimensions. When in Fourier-space, this routine takes into account what the redundancies are. Only the unique values are counted. Real-valued entries get weight 0.5 (they only contribute one float value out of the two for each complex value), and of the hermitian pairs, only the positivePartner is taken into account. |
| class | RandomGaussian <typename T> A gaussian random variable. Is aware of its own state and counts the number of values that have been returned. |
| class | RandomGaussianFieldHelper <typename T, NDim, Space, Real, Unitary> A class which initializes a complex random gaussian field. ONLY WORKS FOR FFTW R2C complex layouts. It has a state, which counts the number of times it has been used. As in the backend a deterministic, stateless RNG is used, we need to keep track of this in order to generate a new set of random numbers each time. |
| class | RandomUniform <typename T, typename RNG> A class which gives pseudo random counter-based rng, based on a string random seed, stable across platforms. |
| class | ResolutionPreserving A class that implements the resoluton-preserving techniques (including fattening and extra-fattening). |
| class | RunParameters <typename T> A class which contains the parameters useful to run a simulation but not model specific (dt for example). |
| class | SU2Addition <typename R, typename T> A class which implements the sum of su2 matrices. |
| class | SU2Averager <typename T> An averager for su2. Allows to take into account cached operations consistently. |
| class | SU2Base <NDIM, typename T, NSU2FLDS> |
| class | SU2BinaryOperator <typename R, typename T> A class which implements basic features of su2 binary operators. |
| class | SU2Commutator <typename R, typename T> A class which computes the commutator of two SU(2) matrices. |
| class | SU2Dagger <typename R> A class which implements the hermitian conjugation. |
| class | SU2Dotter <typename R, typename T> Lie-algebra inner product <A,B> = sum_{a=1,2,3} A_a B_a of two SU(2)-valued expressions, returned as a scalar. |
| class | SU2Doublet <typename T, _NDim> A class which implements su2doublets. |
| class | SU2DoubletAddition <typename R, typename T> A class which implements the sum of 2 su2 doublets. |
| class | SU2DoubletAverager <typename T> An averager specialised for SU2Doublet . Allows to take into account cached operations consistently. |
| class | SU2DoubletBinaryOperator <typename R, typename T> A class which implements common features to SU2Doublet binary operators. |
| class | SU2DoubletDagger <typename R> A class which compute the hermitean conjugate of Doublets. |
| class | SU2DoubletDotter <typename R, typename T> A class which computes the scalar product of two doublets. |
| struct | SU2DoubletGetGetReturnType <typename T> A class which gives the return type of the get function of one of the doublet element. |
| class | SU2DoubletGetter A class which return the SU2DouletGet method. |
| class | SU2DoubletKernels A class which holds the kernels for the SU2Doublet . |
| class | SU2DoubletMeasurer <typename T> A class which contains standard measurements for the SU2 doublets. |
| class | SU2DoubletOperator <NDim> A class which groups some features of the SU2Doublet ops. |
| class | SU2DoubletSectorBase <NDIM, typename T, NSU2DOUBLET, typename SU2DOUBLETU1COUPLINGS, typename SU2DOUBLETSU2COUPLINGS> |
| class | SU2DoubletShifter <typename R, N> A class which shifts a doublet in space. |
| class | SU2DoubletShifterByOne <typename R, _N> |
| class | SU2DoubletSubtract <typename R, typename T> A class which implement the Subtraction between two su2 doublets. |
| class | SU2DoubletUnaryOperator <typename R> A class which groups common features to su2doublets unary operators. |
| class | SU2DoubletWrapper <class A, class B, class C, class D> A class which creates a doublet out of some preexisting objects. |
| class | SU2ExpMap <typename R> A class which computes the exponential map for su(2). |
| class | SU2ExpMapInv <typename R> A class which computes the inverse exponential map for SU2 (log). |
| class | SU2Field <typename T, _NDim> A class which implements a SU2 field (group). We choose a representation with 4 real numbers per lattice site, c0, c1, c2, c3. These are subject to the unitarity constraint c0^2 + c1^2 + c2^2 + c3^2 = 1, which can be enforced by the unitarize() method. A single link variable is then represented as U = c0 * I + i * (c1 * sigma1 + c2 * sigma2 + c3 * sigma3), where sigma1, sigma2, sigma3 are the Pauli matrices. |
| struct | SU2GetGetReturnType <typename T> A class which determines what is the return type of the composite su2 objects. |
| class | SU2Getter A class which return the SU2Get method. |
| class | SU2GroupWrapper <class A, class B, class C> A class which computes an element of the group SU(2). By that, we mean that det=1 is imposed as a constrained on the 0th element, like in the SU2Fields. |
| class | SU2Initializer A class that initializes the SU(2) gauge sector (both non-Abelian gauge fields and SU2 doublets) |
| class | SU2Kernels A class that computes the kernel for the SU2 gauge fields. |
| class | SU2LieAlgebraField <typename T, _NDim> A class which implements a SU2 field (algebra). Same than the group, except set 0 component to 0 and has a function which returns its components wrt to sigma/2 instead of sigma, which is more conventional for the algebra (but internally, also expanded as a function of sigma). |
| class | SU2Measurer <typename T> A class which contains standard measurements for the SU2 gauge fields. |
| class | SU2Multiplication <typename R, typename T> A class which implement SU(2) matrix multiplication. |
| class | SU2Operator A class which contains basic info about su2 algebra. |
| class | SU2SU2DoubletMultiplication <class R, class T> A class which implemetns SU2 SU2Doublet multiplication. |
| class | SU2Shifter <typename R, N> A class which applies the shift method to su2 objects. |
| class | SU2ShifterByOne <typename R, _N> |
| class | SU2Subtraction <typename R, typename T> A class which implements the SU2 Subtraction. |
| class | SU2UnaryOperator <typename R> A class which implements basic features of su2 unary operators. |
| class | SU2Wrapper <class A, class B, class C, class D> A class which construct a SU2-like object. |
| class | ScalarBase <NDIM, typename T, NS> |
| class | ScalarComplexFieldMultiply <typename R, typename T> A class which implements scalar multiplication over complex numbers. |
| class | ScalarSU2Multiplication <typename R, typename T> A class which multiplies SU2 field by complex fields. |
| class | ScalarSingletInitializer A class which is used to initialize the scalar singlets. |
| class | ScalarSingletKernels A class that computes the kernel for the scalar singlets. |
| class | ScalarSingletMeasurer <typename T> A class which contains standard measurements for scalar singlets. |
| class | ScalarSymTracelessMultiply <typename R, typename T> A class which implements scalar multiplication over symmetric traceless numbers. |
| class | ScalarU1AxionBase <typename T, typename SCALARU1AXIONCOUPLINGS> |
| class | ScaleFactorBase <typename T> |
| class | ScaleFactorInitializer A class which is used to initialize the scale factor. |
| class | ScaleFactorKernels A class that computes the kernel for the scale factor equation. |
| class | ScaleFactorMeasurer <typename T> A class which measure the scale factor, its derivative and the Hubble rate. |
| class | SessionGuard A class which holds all the guards: fftw, other fft libraries and mpi. Only one instance per process is allowed. Throws an exception if that condition is violated. |
| class | SimulationManager <NDim> A class which handles start and stop of a simulation. Also used to create the info file. |
| class | SpaceStateInterface <NDim> An interface class which all getter-like objects inherit from, so we can access their confirm(Config/Fourier)Space methods by their virtualness. |
| class | SpatialCoordinate <NDim> A class which implements spatial coordinates. |
| class | SpectrumSaver <typename T> A class which saves spectra to files. |
| class | SpectrumSaverStd <typename T> A class which implements the std spectra output. |
| class | Spline <typename T> |
| struct | SplineData <typename T> |
| class | Stacktrace A class which holds the stacktrace to the point where it was instantiated. |
| class | StaticWarning |
| class | StreamCacher A container that sits at the receiving end of a stream, and spits out everything to the mutexed std::cerr only when it is destructed -> that the end of the line;. |
| class | StringConverter <class T> A class which wraps a single function, splitting it in lines and passing each line to ParameterGetter , returning the result in your provided MultipleParameterGetter<T>. |
| class | StringTrimmer A class which trims strings on all ends. In place: [lr]trim(std::string). Copy: std::string [lr]trimmed(std::string) |
| struct | SymGetGetReturnType <typename T> |
| class | SymGetter A class which get real and imaginary part. |
| class | SymOperator |
| class | SymSymTracelessMultiplication <class R, class T> A class which multiplies two symmetric-traceless fields. |
| class | SymSymTracelessMultiplicationTrace <class R, class T> A class which multiplies two symmetric-traceless fields. |
| class | SymTracelessAddition <typename R, typename T> A class which implements symmetric-traceless field addition. |
| class | SymTracelessBinaryOperator <typename R, typename T> A class which gtoups common features of binary field operators. |
| class | SymTracelessConjugate <typename R> A class which implements conjugation of all the elements of a symmetric-traceless matrix. |
| class | SymTracelessField <typename T, _NDim> A class which implements symmetric-traceless matrix field used for GWs. |
| class | SymTracelessFieldAsFourier <typename R> A class which treats a symmetric-traceless field as an object in fourier space. |
| class | SymTracelessFieldFourierView <typename T, NDim> A class which holds symmetric-traceless field in fourier space. |
| class | SymTracelessFieldShifter <typename R, N> A class which implements spatial shifts for symmetric traceless algebra. |
| class | SymTracelessFieldShifterByOne <typename R, _N> |
| struct | SymTracelessGetGetReturnType <typename T> A class which unpack the return type of a complex type. |
| class | SymTracelessGetter A class which get real and imaginary part. |
| class | SymTracelessOperator |
| class | SymTracelessSubtraction <class R, class T> A class which implements complex subtraction. |
| class | SymTracelessUnaryOperator <typename R> A class which groups common features of unary complex field operators. |
| class | SymTracelessWrapper <class R0, class R1, class R2, class R3, class R4, class R5> A class which wraps six expressions as a symmetric 3x3 matrix whose trace is subtracted on evaluation. |
| class | SymWrapper <typename R11, typename R12, typename R13, typename R22, typename R23, typename R33> A class which wraps six expressions, the upper triangle, as a symmetric 3x3 matrix. |
| class | TDDAssertion The function to call for the evaluation of each test. |
| class | TDDContainer <class TESTME> The container to instantiate if you want to register your class for testing. |
| class | TDDContainerBase A class which provides the interface for TDDContainers. |
| class | TDDContainerDummy |
| class | TDDRegister A class which registers all unit tests in the currently linked binaries, and runs all the unit tests when called accordingly. |
| class | Tag <N> A class which implements homemade compile time constants. |
| class | TagListBase <I> A class which implements an enumerated list. |
| struct | TagListHelper <Start, End> |
| struct | TagListHelper< I, I > <I> |
| class | TempLatArray <typename T, N, shift> A class which makes array compatible which getComp algebra. |
| class | TempLatVector <typename T, shift> A class which makes vector compatible with GetComponent algebra and defines a operator(int i). |
| class | ThreadSettings A class which does bookkeeping, number of threads allowed by hardware, number of threads allowed by user, etc. |
| class | TimeSpent A class which measures the wall time since its construction. |
| class | Timer A simple timer class to measure elapsed time. |
| class | ToolWithOwnMemory <typename T, NDim> A base class for powerspectrum and twopointcorrelator: holds an optionally persistent block of memory of the same shape as the Getter that you pass to it. |
| class | TopologicalChargesMeasurer <typename T> A class to measure gauge fields topological charges. |
| class | TranspositionMap <NDim> A class which maps between two orderings. |
| class | TripleStateLayouts <NDim> A class which keeps three layouts of the memory for one MPI task in a global exact hypercube. |
| struct | TupleMakerHelper <typename R, bool> |
| struct | TupleMakerHelper< R, true > <typename R> |
| class | U1Base <NDIM, typename T, NU1FLDS, NS, NC, typename SCALARU1AXIONCOUPLINGS> |
| class | U1Exponential <typename R> Exponential map for U(1). |
| class | U1Initializer A class that initializes the U(1) gauge sector (both Abelian gauge fields and complex scalars) |
| class | U1Kernels A class that computes the kernel of the U(1) gauge fields. |
| class | U1Measurer <typename T> A class which contains standard measurements for the U1 gauge fields. |
| class | UnaryOperator <typename R> A parent class which implements the common methods that all unary operators (-, sqrt ) share. |
| class | UnbinnedPowerSpectrumMeasurer <typename T, NDim> A class which computes the power spectrum, with the appropriate rescaling to make it volume independent. |
| class | UnbinnedRadialProjectionResult <typename T> A class which holds the result of a radial projection without binning. For each possible value of the Fourier coordinate it saves: the average value, the sample variance (= <f^2> - <f>^2 ) of the values, and the number of entries in a bin (multiplicity). |
| class | VectorDotter <typename R, typename T> A class which takes two VectorGetters, and implements a special get method which returns the dot-product / contraction of the two vectors. |
| class | VectorFieldCollection <class Arg, N, SHIFTIND, flatAssign> A class which allows to make collections of vector fields. |
| class | VelocityVerlet <typename T> A class which implements a velocity verlet algorithm that evolves scalar singlets, complex scalars, SU2 doublets, and U(1) and SU(2) gauge fields. |
| struct | VelocityVerletParameters <typename T> _A class which stores the composition parameters. See appendix in "The art of simulating the early |
| Universe", arXiv:2006.15122._ | |
| struct | VerbosityLevels A struct with a bunch of flags with enable various output messages. Use to your advantage. |
| class | WallAverager <typename T> A class which computes the average value of a getter over the first n-1 coordinates, returns a vector. |
| class | WaveNumber <NDim> A class which allows for accessing (unscaled, dimensionless, index-valued) various expressions involving the fourier coordinates. |
| class | Weights A class that defines the weights used to measure the energy contained in the strings. Vy defect, we use weights based on the potential, normalized such that they are equal to unity at the core of the defects. |
| struct | ZeroType A class which represents zero. Attempt to simplify derivative expressions. |
| struct | holdStaticGuard I wrapped this in a struct for a very specific case: If we have multiple translation units (cpp files) which include this header, and each calls getFFTSessionGuards, then we will have multiple static variables, one per translation unit, and the guards will not work as intended. By wrapping it in a struct, we ensure that there is only one instance of the static variable, no matter how many translation units include this header. |
| struct | is_std_vector <typename T> |
| struct | is_std_vector< std::vector< T, A > > <typename T, typename A> |
| struct | number_to_skip_as_tuple <typename R, class> A class which make a tuple from a composite object. |
| struct | number_to_skip_as_tuple< R, std::void_t< decltype(R::numberToSkipAsTuple)> > <typename R> |
| struct | static_max <N, M> A class which compute the maximum at compile time. |
| struct | std_atomic_type <typename T, typename> A SFINAE struct to get the base type of a composite container. |
| struct | std_atomic_type< T, std::void_t< typename T::value_type > > <typename T> |
| struct | tuple_size <typename Tuple, class> |
| struct | tuple_size< Tuple, std::void_t< decltype(Tuple::size)> > <typename Tuple> |
| struct | tuple_size_helper <typename Tuple, class> A class which overloads tuple_size for the fcn composite objects. |
| struct | tuple_size_helper< Tuple, std::void_t< decltype(std::tuple_size< Tuple >::value)> > <typename Tuple> |
| struct | warn_if <condition> A compile-time warning based on template programming values. Taken from https://www.reddit.com/r/cpp/comments/66o1ju/does_a_static_warn_exist/ . |
| struct | warn_if< false > <> |
Public Types
| Type | Name |
|---|---|
| typedef std::conditional_t< std::is_integral_v< T >||std::is_floating_point_v< T >, double, T > | AveragerReturnType |
| typedef BDPhaseHelper< T, NDim, true > | BDPhasePi2A |
| typedef BDPhaseHelper< T, NDim, false > | BDPhasePi2E |
| enum | CANONICALTYPE |
| typedef typename CollectionSelector< Q, T, NDim, ISMOMENTUM, N, SHIFT, N==0 >::type | Collection |
| typedef typename Concat< S1, S2 >::type | Concat_t |
| enum | EvolverType An enum, listing all available evolver types: |
| enum | FFTBackendTag A class which sets up the interface with the appropriate FFT library. Once you have implemented the FFTLibraryInterface for your library, add it to the logic here. |
| typedef WaveNumber< NDim > | FourierSite |
| enum | HermitianPartnersMode |
| enum | HermitianRedundancy Tracks which entries in the layout carry redundant information, and if so, what information. This, again, assumes FFTW layout. |
| typedef IsCompositeHelper< R, tuple_size< decltype(std::remove_reference< R >::type::Getter::get(std::declval< R & >(), std::declval< Tag< 0 > >()))>::value > | IsComposite |
| typedef typename TagListHelper< Start, End >::type | MakeSeqImplTagList_t |
| typedef typename CollectionHelper< Q, T, NDim, ISMOMENTUM, Start, End >::type | MakeSeqImpl_t |
| typedef typename TagListHelper< 0, N - 1 >::type | MakeSeqTagList_t |
| typedef typename CollectionHelper< Q, T, NDim, ISMOMENTUM, 0, N - 1 >::type | MakeSeq_t |
| typedef parafaft::FFTWBackend< T > | ParaFaFT_Backend |
| enum | ParameterImportance |
| enum device::Idx | Parity |
| typedef RandomGaussianFieldHelper< T, NDim, SpaceStateType::Fourier, false, false > | RandomGaussianField |
| typedef RandomGaussianFieldHelper< T, NDim, SpaceStateType::Configuration, false, false > | RandomGaussianFieldConfig A Gaussian random field directly in configuration space: independent real N(0,1) white noise per lattice site (flat spectrum). NOT equivalent to drawing in Fourier space and transforming unless. |
| typedef RandomGaussianFieldHelper< T, NDim, SpaceStateType::Fourier, true, false > | RandomRayleighField |
| typedef RandomGaussianFieldHelper< T, NDim, SpaceStateType::Fourier, false, true > | RandomUniformUnitaryField |
| enum | SpaceStateType An enum for passing the right space type, all while having the compiler type check it. |
| typedef typename TagListHelper< START, END >::type | TagList |
| typedef TupleMakerHelper< R, IsComposite< R >::value > | TupleMaker |
| typedef ComplexField< T, NDim > | U1Field A U(1) group-valued field. |
| typedef FieldCollection< Arg, GetNDim::get< Arg >(), flatAssign, 1 > | VectorField A class which Field collections. Allows to have vector fields, index starting from one. |
Public Functions
| Type | Name |
|---|---|
| DEVICE_FUNCTION bool | AlmostEqual (const T1 & a, const T2 & b, const T3 & epsilon=std::sqrt(std::numeric_limits< T3 >::epsilon())) we are comparing computed floats, so allow for some epsilon |
| DEVICE_FUNCTION bool | AlmostEqual (const complex< T > & a, const complex< T > & b, const T epsilon=std::sqrt(std::numeric_limits< T >::epsilon())) overload for complex values. __ |
| DEVICE_FUNCTION bool | AlmostEqual (const std::array< T, N > & a, const std::array< T, N > & b, const T epsilon=std::sqrt(std::numeric_limits< T >::epsilon())) overload for arrays |
| auto | B4NA (const R & Us, Tag< 1 >) |
| auto | B4NA (const R & Us, Tag< 2 >) |
| auto | B4NA (const R & Us, Tag< 3 >) |
| auto | BackwardCovariantDerivative (Args... args) A class which. |
| void | CDemangle (std::ostream & stream, char * start) |
| auto | CField (Field< T, NDim > f1, Field< T, NDim > f2) |
| auto | CenteredCovariantDerivative (Args... args) A class which computes centered covariant derivatives. |
| auto | CenteredCovariantDerivativeO4 (Args... args) A class which computes a O(dx^4) discrete covariant derivative. |
| auto | CenteredDerivative (T t) |
| auto | CenteredDerivativeO4 (T t) |
| ComplexFieldWrapper< R, T > | Complexify (const R & r, const T & t) |
| HermWrapper< R11, R12, R13, R22, R23, R33 > | ConstructHerm (const R11 & r11, const R12 & r12, const R13 & r13, const R22 & r22, const R23 & r23, const R33 & r33) |
| MatrixWrapper< R11, R12, R13, R21, R22, R23, R31, R32, R33 > | ConstructMatrix3x3 (const R11 & r11, const R12 & r12, const R13 & r13, const R21 & r21, const R22 & r22, const R23 & r23, const R31 & r31, const R32 & r32, const R33 & r33) |
| SymWrapper< R11, R12, R13, R22, R23, R33 > | ConstructSym (const R11 & r11, const R12 & r12, const R13 & r13, const R22 & r22, const R23 & r23, const R33 & r33) |
| SymTracelessWrapper< R0, R1, R2, R3, R4, R5 > | ConstructSymTraceless (const R0 & r0, const R1 & r1, const R2 & r2, const R3 & r3, const R4 & r4, const R5 & r5) |
| Operators::DiracDeltaFunction< T > | DiracDelta (const T & a) Exposing our newly define multiplication operation to the world. |
| auto | DoesNotThrow (Lambda ll) A helper for negating Throws. |
| void | ExceptionArgumentUnpacker (std::stringstream & stream) Recursion stopper for helper function for unpacking the variadic arguments of the Exception constructor. |
| void | ExceptionArgumentUnpacker (std::stringstream & stream, T t, Args... args) Helper function for unpacking the variadic arguments of the Exception constructor. |
| auto | Grad2 (R pR) |
| constexpr auto | Grad2 (R) |
| auto | Imag (T && t) A class which returns imaginary part of a fields or complex number. |
| auto | Imag (T && t) |
| auto | Imag (T && t) Imaginary part of a getter whose eval() returns a complex value. Bridges it into the complex-field protocol first, so Imag(f) == Imag(asComplexField(f)). |
| consteval bool | IsEqual (auto i, auto j) |
| consteval bool | IsLess (auto i, auto j) |
| consteval bool | IsLessOrEqual (auto i, auto j) |
| consteval bool | IsMore (auto i, auto j) |
| consteval bool | IsMoreOrEqual (auto i, auto j) |
| auto | LatForwardGrad (R pR) |
| auto | LatLapl (const R & r) |
| auto | LatLapl (R pR) |
| constexpr auto | LatLapl (R) |
| constexpr MPI_Datatype | MPITypeSelect () A bunch of compile-time templates for getting the right MPI constants for your type. |
| MakeException (FFTWHermitianPartnersWrongSizeException) |
|
| MakeException (FFTWMPISendrecvCountOverflowException) |
|
| MakeException (FFTWCompiledWithoutSinglePrecisionSupport) |
|
| MakeException (KokkosFFTMemoryLayoutException) |
|
| MakeException (KokkosFFTPlannerException) |
|
| MakeException (ParafaftMemoryLayoutException) |
|
| MakeException (ParafaftPlanHolderException) |
|
| MakeException (ParafaftCompiledWithoutSinglePrecisionSupport) |
|
| MakeException (ParafaftPlannerException) |
|
| MakeException (FFTLibraryDoubleInitializationException) |
|
| MakeException (FFTLibraryDecompositionMismatchException) |
|
| MakeException (FFTTopologyException) |
|
| MakeException (DimensionCountRecorderException) |
|
| MakeException (DimensionCountRecorder_CoordinateSpaceException) |
|
| MakeException (MomentumMultiplicityWrongSpaceConfirmation) |
|
| MakeException (SpatialCoordinateConfigWrongSpaceConfirmation) |
|
| MakeException (WaveNumberWrongSpaceConfirmation) |
|
| MakeException (GetToolBoxException) |
|
| MakeException (RandomGaussianFieldNegativeFrequencyException) |
|
| MakeException (FieldValueGetterException) |
|
| MakeException (FieldViewConfigWrongSpaceConfirmation) |
|
| MakeException (FieldViewConfigMissingToolBox) |
|
| MakeException (FieldViewFourierWrongSpaceConfirmation) |
|
| MakeException (GhostBusterOrderException) |
|
| MakeException (GhostBusterBoundsException) |
|
| MakeException (GhostUpdaterException) |
|
| MakeException (FileIOException) |
|
| MakeException (LatticeParametersInconsistent) A class which holds physical paramteters of the lattice. Note that dx and kIr are equivalent only for isotropic lattices. For anisotropic, only one of th e two should be specified. |
|
| MakeException (AveragerWrongSpace) |
|
| MakeException (MaximumWrongSpace) A class which computes the maximum value of a getter. |
|
| MakeException (RadialProjectionResultSizeException) |
|
| MakeException (RadialProjectionResultFinalizationException) |
|
| MakeException (RadialProjectionSingleQuantityException) |
|
| MakeException (UnbinnedRadialProjectionResultFinalizationException) |
|
| MakeException (MemoryBlockOutOfBoundsException) |
|
| MakeException (LayoutStructWrongSizeException) |
|
| MakeException (LayoutStructOutOfBoundsExcetion) |
|
| MakeException (LayoutStructLocalSizeException) |
|
| MakeException (LayoutStructLocalTransposedSizeException) |
|
| MakeException (TranspositionMapOutOfBounds) |
|
| MakeException (MemoryManagerAccessOutOfBounds) |
|
| MakeException (InconsistentDomainSplitting) |
|
| MakeException (InconsistentDimensions) |
|
| MakeException (MPICartesianGroupException) |
|
| MakeException (MPIAllReduceException) |
|
| MakeException (MPISendReceiveException) |
|
| MakeException (MPICommReferenceBookKeepingException) |
|
| MakeException (MPIDomainSplitException) |
|
| MakeException (MPIGuardInstantiationException) |
|
| MakeException (FileReaderProblemInputFile) |
|
| MakeException (ParameterParserMissingMandatory) The outside-world interface for parameter parsing. Pass your argc/argv, receive an object that parsed everything that you put on the command line interface, where 'everything' means that you pass arguments in the form: |
|
| MakeException (ParameterParserMismatchSizes) |
|
| MakeException (ParameterParserMismatchDefaultSizes) |
|
| MakeException (ParameterParserDoesNotExist) |
|
| MakeException (ParameterParserIsEmpty) |
|
| MakeException (SessionGuardInstantiationException) |
|
| MakeException (ConditionalFileStreamError) |
|
| MakeException (FactorizationFailed) |
|
| MakeException (KeccakHashBareClassReuseException) |
|
| MakeException (RandomGaussianWrongCallOrderException) |
|
| MakeException (EmptyModel) |
|
| MakeException (NotTested) |
|
| MakeException (PotentialDerivativeNotDefined) |
|
| MakeException (NotEnoughChargesForThisCouplingsManager) |
|
| MakeException (NotEnoughCouplingsForThisCouplingsManager) |
|
| MakeException (DiffusionEvolverInvalid) A class that applies diffusion to the fields. Currently used to generate initial conditions of defect networks. |
|
| MakeException (MoreThanOneDoublet) |
|
| MakeException (EvolverTypeNotInEvolver) A class which interfaces the evolver, so we don't need to use pointers in the main. |
|
| MakeException (InvalidEvolverTypeGW) |
|
| MakeException (InvalidEvolverTypeAxion) |
|
| MakeException (NotAnEvolverType) |
|
| MakeException (NotPVEvolver) |
|
| MakeException (NotVVEvolver) |
|
| MakeException (ExtraMemoryNotAllocated) |
|
| MakeException (PSTypeINotSupportedForNDIMDifferentFrom3) |
|
| MakeException (NotAnICType) A namespace that collects different types to specify different initial conditions,. |
|
| MakeException (SICNotImplemented) |
|
| MakeException (U1ICNotImplemented) |
|
| MakeException (UseHDF5ButNotCompiled) |
|
| MakeException (FileAlreadyExistsError) |
|
| MakeException (WrongPSType) |
|
| MakeException (WrongPRJType) |
|
| MakeException (RunParametersMissing) |
|
| MakeException (RunParametersInconsistent) |
|
| void | NDLoop (const View & view, const Functor & functor) A utility to perform N-dimensional loops over views. As this is not optimized for performance, it should only be used in tests. Naturally, NDLoop is a sequential loop - to use parallelism make use of device::iteration utilities. However, it is CPU-only and has therefore its special use cases. |
| std::ostream & | PutToStream (std::ostream & stream, const T & vec) Simple outputing of arrays and vectors: not exposing as operator<<, because below we want to limit it to vectors and arrays, without needing to know the exact number of template parameters for this systems implementation of array and vector. |
| auto | Real (T && t) A class which get real parts of fields. |
| auto | Real (T && t) |
| auto | Real (T && t) Real part of a getter whose eval() returns a complex value (e.g. RandomGaussianField in Fourier space). Bridges it into the complex-field protocol first, so Real(f) == Real(asComplexField(f)). |
| auto | SU2DoubletWrap (A && pA, B && pB, C && pC, D && pD) |
| auto | SU2DoubletWrap (F && f) |
| auto | SU2GroupWrap (A && pA, B && pB, C && pC) |
| auto | SU2Wrap (const A & pA, const B & pB, const C & pC, const D & pD) |
| auto | SU2Wrap (const F & f) |
| StreamCacher | SayComplete (const char * fname, int line) Instantiate a container that eats up all the stream that you put in it, only locking the mutex and throwing up into std::cerr upon destruction. Provide the filename and line number of the place of invocation. Use the macro 'say' defined below. |
| ptrdiff_t | SetStacktracePtrToFileAddress () Posix's backtrace gives current memory addresses, which are good for runtime business, but not useful for finding source code locations. Need to convert that to file addresses, using this offset. |
| void | StacktracePlainptrs (std::array< void *, N > * result, int * addrlen) Templated size: just throw in your array and we fill it to at most its size. Plain backtrace version. |
| void | StacktracePlainptrs (std::array< void *, N > * result, int * addrlen) Templated size: just throw in your array and we fill it to at most its size. Libunwind (better!) version. |
| ptrdiff_t | StacktracePtrToFileAddress () |
| constexpr const char * | StripPathFromFileName (const char * name) noexcept Performed by the compiler, if the const char* is a string at compile time. |
| std::pair< bool, std::string > | Throws (Lambda ll) A standalone function for testing of an exception is properly thrown. Returns a bool and a description. |
| constexpr const char * | TrailingZeroChar (const char * name) Performed by the compiler, if the const char* is a string at compile time. |
| auto | abs (const R & r) |
| auto | abs (const T & a) Exposing our newly defined absolute value operation to the world. |
| constexpr ZeroType | abs (ZeroType a) |
| constexpr OneType | abs (OneType a) |
| constexpr HalfType | abs (HalfType a) |
| auto | acos (T a) Exposing our newly defined acos operation to the world. |
| constexpr ZeroType | acos (OneType a) Specialize for possible unit input! acos(1) = 0. |
| auto | arg (T && t) |
| auto | arg (T && t) |
| auto | arg (R r, T t) |
| auto | arg2 (T && t) A class which returns the phase of a complex field, between -pi and pi. |
| auto | arg2 (T && t) |
| auto | arg2 (R r, T t) |
| auto | asComplexField (R && r) |
| ComplexFieldAsFourier< R > | asFourier (R && r) |
| auto | asinh (T a) Exposing our newly define exp operation to the world. |
| auto | average (T instance, SpaceStateType spaceType=GetGetReturnType< T >::isComplex ? SpaceStateType::Fourier :SpaceStateType::Configuration) |
| auto | average (T expr) |
| auto | average (T a) |
| auto | average (ZeroType a) |
| auto | backDiff (R pR, Tag< N > t) |
| constexpr auto | backDiff (R, Tag< N >) |
| constexpr auto | backDiff (R) |
| constexpr auto | binary_fold (BinaryOp && op, Tuple && tup, Function && func, Unity && unit) |
| constexpr auto | binary_fold_impl (BinaryOp && op, Tuple && tup, Function && func, Unity && unit, Tag<-1 > tg) |
| constexpr auto | binary_fold_impl (BinaryOp && op, Tuple && tup, Function && func, Unity && unit, Tag< Index > tg) |
| constexpr void | binary_for_each (Tuple1 && tuple1, Tuple2 && tuple2, F && f) |
| constexpr void | binary_for_each_impl (Tuple1 && tuple1, Tuple2 && tuple2, F && f, std::index_sequence< Indices... >) |
| auto | commutator (const R & r, const T & t) |
| auto | commutator (OneType r, const T & t) |
| auto | commutator (const R & r, OneType t) |
| auto | commutator (ZeroType r, const T & t) |
| auto | commutator (const R & r, ZeroType t) |
| auto | complexPhase (R && r) |
| auto | complexfieldaverage (T instance, SpaceStateType spaceType=IsComplexType< typename ComplexGetGetReturnType< T >::type > ? SpaceStateType::Fourier :SpaceStateType::Configuration) |
| auto | conj (const R & r) |
| auto | conj (const R & r) |
| auto | conj (const R & r) |
| auto | conj (const T & a) Exposing our newly define multiplication operation to the world. |
| constexpr ZeroType | conj (ZeroType a) |
| constexpr OneType | conj (OneType a) |
| constexpr HalfType | conj (HalfType a) |
| DEVICE_INLINE_FUNCTION constexpr void | constexpr_for (F && f) A compile-time for loop, which calls the lambda f of signature void(integer) for each index. |
| auto | cos (T a) Exposing our newly define exp operation to the world. |
| constexpr OneType | cos (ZeroType a) Specialize for possible zero input! |
| auto | cosh (T a) Exposing our newly define exp operation to the world. |
| constexpr OneType | cosh (ZeroType a) Specialize for possible zero input! |
| auto | createParams (int argc, char * argv) |
| auto | dag (const R & r) |
| auto | dagger (const R & r) |
| constexpr OneType | dagger (OneType) |
| constexpr ZeroType | dagger (ZeroType) |
| auto | dagger (const R & r) |
| auto | dagger (const SU2Dagger< R > & r) |
| auto | dagger (const SU2Multiplication< A, B > & m) |
| auto | dagger (const SU2Shifter< R, N... > & s) |
| auto | dagger (const SU2ShifterByOne< R, N > & s) |
| auto | dagger (const R & r) |
| auto | decay_tuple (T && t, std::index_sequence< Is... >) |
| auto | decay_tuple (T && t) |
| auto | derivatives (T && expr, R & others) |
| VectorDotter< R, T > | dot (R r, T t) |
| auto | electricField2 (R Es, Tag< 1 > t) |
| auto | electricField2 (R Es, Tag< 2 > t) |
| auto | electricField2 (R Es, Tag< 3 > t) |
| auto | electricField2 (R && Es) |
| auto | exp (const R & r) |
| auto | exp (T a) Exposing our newly define exp operation to the world. |
| constexpr OneType | exp (ZeroType a) Specialize for possible zero input! |
| auto | exp (const R & r) |
| auto | expinv (const R & r) |
| auto | explode (T && t, char) A class which flatten all directions of a composite object. |
| auto | explode (T && t, int) |
| auto | explode (T && t, std::index_sequence< Is... >) |
| auto | fieldStrength (R A, Tag< Mu > mu, Tag< Nu > nu) Returns the field strength tensor F_{mu,nu} = d_mu A_nu - d_nu A_mu, where A is a gauge field and d is a forward derivative, using a forward finite difference. |
| auto | fieldStrengthCtr (R A, Tag< Mu > mu, Tag< Nu > nu) Returns the field strength tensor F_{mu,nu} = d_mu A_nu - d_nu A_mu, where A is a gauge field and d is a forward derivative, using a central finite difference. |
| std::vector< typename std_atomic_type< NestedVec >::type > | flatten (const NestedVec & nested) A function which flattens a std::vector. |
| std::enable_if< |
flatten_helper (const T & elem, std::vector< T > & flat) |
| std::enable_if< is_std_vector< T >::value >::type | flatten_helper (const T & nested, std::vector< typename std_atomic_type< T >::type > & flat) |
| auto | flatten_tuple (T && t, std::index_sequence< Is... >) |
| auto | flatten_tuple (T && t) |
| constexpr auto | fold_multiply (Tuple && tup, Function && func) Multiplies all the components of a tuple after applying func to them. |
| constexpr auto | fold_multiply (Tuple && tup) Multiplies all the components of a tuple. |
| constexpr auto | fold_multiply_impl (Tuple && tup, Function && func, Unit && unit, std::integer_sequence< int, INT... > iseq) |
| constexpr auto | fold_multiply_unit (Tuple && tup, Unit && unit) Multiplies all the components of a tuple after applying func to them, starting from unit. |
| constexpr void | for_each (Tuple && tuple, F && f) |
| constexpr void | for_each_impl (Tuple && tuple, F && f, std::index_sequence< Indices... >) A class which. |
| void | for_in_range (F && f) A function which implements a static for loop. Note that this for-loop is INCLUSIVE of the start AND end. |
| auto | forwDiff (R pR, Tag< N > t) |
| constexpr auto | forwDiff (R, Tag< N >) |
| constexpr auto | forwDiff (R) |
| auto | forwDij (R pR, Tag< N > t) |
| constexpr auto | forwDij (R) |
| auto | getAverager (T instance, SpaceStateType spaceType=GetGetReturnType< T >::isComplex ? SpaceStateType::Fourier :SpaceStateType::Configuration) |
| std::shared_ptr< FFTSessionGuard > | getFFTWSessionGuard (bool pVerbose=true) |
| std::vector< int > | getTypeIBinCounts (const device::Idx N) |
| GetVectorComponentHelper< N, R > | getVectorComponent (const R & pR, Tag< N >) |
| auto | heaviside (const R & r) |
| constexpr OneType | heaviside (ZeroType a) Specialize for possible zero input! |
| constexpr OneType | heaviside (OneType a) Specialize for possible unit input! |
| T | integrate (const std::vector< T > & vec, T dt) |
| auto | log (const R & r) |
| auto | log (T a) Exposing our newly define log operation to the world. |
| constexpr ZeroType | log (OneType a) Specialize for possible zero output! |
| auto | magneticField (R && As, Tag< 1 > t) A function to return the magnetic field from the gauge potential. Specialised to 3D. TODO: ND? |
| auto | magneticField (R && As, Tag< 2 > t) |
| auto | magneticField (R && As, Tag< 3 > t) |
| auto | magneticField (R && As) |
| auto | magneticField4 (R Bs, Tag< 1 > t) A function to get the average between the 4 links of the magnetic field from the gauge potential. Specialised to 3D. |
| auto | magneticField4 (R && Bs, Tag< 2 > t) |
| auto | magneticField4 (R && Bs, Tag< 3 > t) |
| auto | magneticField4 (R && Bs) |
| auto | magneticFieldCtr (R && As, Tag< 1 > t) A function to return the magnetic field from the gauge potential using centered finite derivatives. Specialised to 3D. TODO: ND? |
| auto | magneticFieldCtr (R && As, Tag< 2 > t) |
| auto | magneticFieldCtr (R && As, Tag< 3 > t) |
| auto | magneticFieldCtr (R && As) |
| device::array< T, N > | makeUniformArray (const T & value) |
| auto | make_flat_list (Args... args) A class which creates a flat tuple from potentially a list of composite objects. |
| auto | make_latinindices_list (Args... args) |
| auto | make_list (Args... args) |
| auto | make_list_from_array (std::array< T, N > arr) |
| int | make_list_from_array (std::array< T, 0 > arr) |
| constexpr auto | make_list_tag (F && f) |
| constexpr auto | make_list_tag (F && f) |
| auto | make_list_tag_impl (F && f, std::integer_sequence< int, I... > iseq) A class which. |
| auto | make_templatvector (Args... args) |
| auto | make_tuple_from (R && r) |
| auto | make_tuple_from (R && r) |
| constexpr auto | make_tuple_sequence () |
| constexpr auto | make_tuple_sequence_helper (std::integer_sequence< T, I... >) |
| auto | make_tuple_tag (F && f) |
| auto | make_tuple_tag (F && f) |
| auto | make_tuple_tag_impl (F && f, std::integer_sequence< int, I... > iseq) Function that creates a tuple of (f(Tag<0>, ..., f(Tag<N>) ). |
| auto | make_vector (Args... args) |
| constexpr auto | make_vector_tag (F && f) |
| constexpr auto | make_vector_tag (F && f) |
| auto | make_vector_tag_impl (F && f, std::integer_sequence< int, I... > iseq) |
| auto | max (T instance, SpaceStateType spaceType=GetGetReturnType< T >::isComplex ? SpaceStateType::Fourier :SpaceStateType::Configuration) |
| auto | max (ZeroType a) |
| auto | multiplyTrace (const R & r, const T & t) |
| auto | multiplyTrace (const R & r, const T & t) |
| auto | multiplyTrace (const R & r, const T & t) |
| auto | neutDiff (R pR, Tag< N > t) |
| constexpr auto | neutDiff (R) |
| auto | neutDij (R pR, Tag< N > t) |
| constexpr auto | neutDij (R pR) |
| auto | nonabelianclover (const R & Us, Tag< Mu > mu, Tag< Nu > nu) A function that returns the clover discretization of non-abelian magnetic fields. |
| auto | norm (R r) |
| auto | norm2 (R && r) |
| auto | norm2 (const R & r) A class which computes the norm of a list. |
| auto | norm2 (R r) |
| auto | norm2 (const R & r) |
| constexpr bool | operator!= (Tag< M > t1, Tag< N > t2) |
| constexpr auto | operator""_c () |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) Exposing our newly define multiplication operation to the world. |
| auto | operator* (const R & r, Tag< N > n) |
| auto | operator* (Tag< N > n, const R & r) |
| constexpr auto | operator* (Tag< N > n, Tag< M > m) |
| constexpr ZeroType | operator* (ZeroType, ZeroType) Specialize for ZeroType *ZeroType . |
| ZeroType | operator* (const T &, ZeroType b) Specialize for possible zero input! |
| constexpr ZeroType | operator* (ZeroType a, const T &) Specialize for possible zero input! |
| constexpr auto | operator* (const T & a, const OneType b) Specialize for possible unit input! |
| constexpr auto | operator* (const OneType & a, const T & b) Specialize for possible unit input! |
| constexpr OneType | operator* (OneType a, OneType b) Specialize for possible unit input! |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const T & t, const R & r) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (R r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| auto | operator* (const R & r, const T & t) |
| RadialProjectionResult< T > | operator* (R && func, const RadialProjectionResult< T > & obj) |
| RadialProjectionResult< T > | operator* (double scale, const RadialProjectionResult< T > & obj) |
| RadialProjectionResult< T > | operator* (float scale, const RadialProjectionResult< T > & obj) |
| RadialProjectionResult< T > | operator* (int scale, const RadialProjectionResult< T > & obj) |
| UnbinnedRadialProjectionResult< T > | operator* (R && func, const UnbinnedRadialProjectionResult< T > & obj) |
| UnbinnedRadialProjectionResult< T > | operator* (double scale, const UnbinnedRadialProjectionResult< T > & obj) |
| UnbinnedRadialProjectionResult< T > | operator* (float scale, const UnbinnedRadialProjectionResult< T > & obj) |
| UnbinnedRadialProjectionResult< T > | operator* (int scale, const UnbinnedRadialProjectionResult< T > & obj) |
| Tag< M *N > | operator* (Tag< M > t1, Tag< N > t2) |
| auto | operator+ (const R & r, const T & t) |
| auto | operator+ (const R & r, const T & t) |
| auto | operator+ (const R & r, const T & t) |
| auto | operator+ (const R & r, const T & t) |
| auto | operator+ (const R & r, const T & t) |
| auto | operator+ (const R & r, const T & t) |
| constexpr auto | operator+ (const ZeroType a, const ZeroType b) Specialize for possible zero input! |
| constexpr OneType | operator+ (const HalfType a, const HalfType b) Specialize for possible half input! |
| T | operator+ (const ZeroType a, const T b) Specialize for possible zero input! Need to disable one of these for two ZeroTypes as input. |
| T | operator+ (const T b, const ZeroType a) Specialize for possible zero input! Need to disable one of these for two ZeroTypes as input. |
| auto | operator+ (const R & r, const T & t) |
| auto | operator+ (const R & r, const T & t) |
| RadialProjectionResult< T > | operator+ (const RadialProjectionResult< T > & a, const RadialProjectionResult< T > & b) |
| UnbinnedRadialProjectionResult< T > | operator+ (const UnbinnedRadialProjectionResult< T > & a, const UnbinnedRadialProjectionResult< T > & b) |
| Tag< M+N > | operator+ (Tag< M > t1, Tag< N > t2) |
| auto | operator- (const R & r, const T & t) |
| auto | operator- (const R & r, const T & t) |
| auto | operator- (const R & r, const T & t) |
| auto | operator- (const R & r, const T & t) |
| auto | operator- (const R & r) |
| auto | operator- (const R & r, const T & t) |
| Operators::Subtraction< R, T > | operator- (const R & r, const T & t) |
| T & | operator- (T && a, ZeroType b) Specialize for possible zero input! |
| auto | operator- (ZeroType a, const T & b) Specialize for possible zero input! Need to disable one of these for two ZeroTypes as input. |
| auto | operator- (T && a, Operators::UnaryMinus< S > && b) Specialize for unary minus. |
| constexpr HalfType | operator- (const OneType a, const HalfType b) Specialize for possible half input! |
| auto | operator- (HalfType a, OneType b) Specialize for possible half input! |
| constexpr auto | operator- (OneType a, OneType b) Specialize for possible OneType __OneType input. |
| auto | operator- (const T & a) Exposing our newly defined subtraction operation to the world. |
| constexpr ZeroType | operator- (ZeroType a) Specialize for possible zero input! |
| auto | operator- (Operators::UnaryMinus< Operators::UnaryMinus< T > > && a) Specialize for double minus signs: -(-(-x)) collapses to -x. The argument a == -(-x) == +x, so -a == -x, which is exactly the inner UnaryMinus<T> node a.mR. |
| auto | operator- (const R & r, const T & t) |
| auto | operator- (const R & r, const T & t) |
| Tag< M - N > | operator- (Tag< M > t1, Tag< N > t2) |
| Tag<-M > | operator- (Tag< M > t1) |
| auto | operator/ (const R & r, const T & t) |
| auto | operator/ (const R & r, const T & t) |
| auto | operator/ (const R & r, const T & t) |
| auto | operator/ (const R & r, const T & t) Exposing our newly define multiplication operation to the world. |
| constexpr T | operator/ (const T & a, OneType b) Specialize for possible unit input! Simplify derivatives for example. |
| constexpr auto | operator/ (const ZeroType & a, const T &) Specialize for possible zero input! Need to disable one of these for two ZeroTypes as input. |
| auto | operator/ (const T & t, const R & r) |
| constexpr bool | operator< (Tag< M > t1, Tag< N > t2) |
| constexpr bool | operator< (Tag< M > t1, Tag< N > t2) |
| std::ostream & | operator<< (std::ostream & ostream, const T & obj) Enable simple operator<< for all objects with a toString method. |
| std::ostream & | operator<< (std::ostream & ostream, SpaceStateType st) |
| std::ostream & | operator<< (std::ostream & ostream, const HermitianRedundancy & hr) |
| std::ostream & | operator<< (std::ostream & stream, const device::array< T, N > & vec) |
| std::ostream & | operator<< (std::ostream & stream, const std::pair< T, K > & p) |
| std::ostream & | operator<< (std::ostream & stream, const C & vec) |
| std::ostream & | operator<< (std::ostream & os, const Tag< N > & t) |
| constexpr bool | operator<= (Tag< M > t1, Tag< N > t2) |
| constexpr bool | operator<= (Tag< M > t1, Tag< N > t2) |
| constexpr bool | operator== (Tag< M > t1, Tag< N > t2) |
| constexpr bool | operator> (Tag< M > t1, Tag< N > t2) |
| constexpr bool | operator> (Tag< M > t1, Tag< N > t2) |
| constexpr bool | operator>= (Tag< M > t1, Tag< N > t2) |
| constexpr bool | operator>= (Tag< M > t1, Tag< N > t2) |
| std::istream & | operator>> (std::istream & in, EvolverType & eType) |
| constexpr long long | parse (const char(&) arr) |
| auto | plaq (R Us, Tag< Mu > mu, Tag< Nu > nu) A class which defines plaquette operator. |
| auto | plaqBack (const R & Us, Tag< Mu > mu, Tag< Nu > nu) A class which implemets a backward plaquette. Useful in equations of motions for example. |
| auto | pow (const R & r, const T & t) |
| auto | pow (const R & r) |
| auto | pow (const R & r, const T & t) |
| constexpr ZeroType | pow (ZeroType) |
| constexpr OneType | pow (const T & a, ZeroType b) |
| constexpr auto | pow (ZeroType a, const T &) Specialize for possible zero input! Need to disable one of these for two ZeroTypes as input. |
| auto | pow (const R & r) |
| auto | pow (const R & r) |
| constexpr auto | pow (const T & a) Specialize for possible zero input! |
| T | pow (const T & a) Specialize for possible one input! |
| constexpr DEVICE_INLINE_FUNCTION NumberType | powr (const NumberType x) A compile-time evaluatable power function for whole number exponents. This implementation generates some rather efficient instructions, see ( https://godbolt.org/z/vT56bb1nx ). |
| auto | projectChiralU1Type1 (const Model & model, Tag< U1 >, Tag< C >, bool sign, bool AorE) |
| auto | projectGWType1 (const Model & model) |
| auto | projectGWType2 (const Model & model) |
| auto | projectGWType3 (const Model & model) |
| RadialProjector< T > | projectRadially (T instance, SpaceStateType spaceType, device::memory::host_ptr< MemoryToolBox< NDim > > pToolBox, bool useBinCentralValues=false) |
| RadialProjector< T > | projectRadially (T instance, bool useBinCentralValues=false) |
| RadialProjector< T > | projectRadiallyFourier (T instance, bool useBinCentralValues=false) |
| DEVICE_INLINE_FUNCTION auto | reverse_array (const device::array< Arg, N > & array, std::index_sequence< Is... >) |
| DEVICE_INLINE_FUNCTION auto | reverse_array (const device::array< Arg, N > & array) |
| DEVICE_INLINE_FUNCTION auto | reverse_tuple (const device::tuple< Args... > & tuple, std::index_sequence< Is... >) |
| DEVICE_INLINE_FUNCTION auto | reverse_tuple (const device::tuple< Args... > & tuple) |
| auto | safeDivide (const R & r, const T & t) |
| auto | safeSqrt (const R & r) |
| auto | scalar_prod (const R & r, const T & t) |
| auto | scalar_prod (const R & r, ZeroType t) |
| auto | scalar_prod (ZeroType t, const R & r) |
| auto | sh1 (const R & pR) |
| auto | sh1 (const R & pR) |
| auto | shift (const R & pR) |
| auto | shift (const R & pR) |
| auto | shift (const R & pR, Tag< N > t) |
| auto | shift (const R & r) |
| auto | shift (const R & pR, const Tag< N > & t) |
| auto | shift (const R & pR) |
| auto | shift (const R & pR) |
| auto | shift (const R & pR, Tag< N > t) |
| auto | shift (const R & pR) |
| auto | shift (const R & pR) |
| auto | shift (const R & pR, Tag< N > t) |
| constexpr OneType | shift (OneType) |
| constexpr OneType | shift (OneType, Tag< N >) |
| constexpr ZeroType | shift (ZeroType) |
| constexpr ZeroType | shift (ZeroType, Tag< N >) |
| auto | shift (const R & pR) |
| auto | shift (const R & pR) |
| auto | shift (const R & pR, Tag< N > t) |
| auto | shift (const R & pR) |
| auto | shift (const R & pR) |
| auto | shift (const R & pR, Tag< N > t) |
| auto | shifted_index_sequence (std::index_sequence< I... >) Use as shifted_index_sequence<SHIFT>(std::make_index_sequence<N>{}) To get an index sequence<SHIFT,SHIFT+1,...,SHIFT+N-1> |
| auto | sin (T a) Exposing our newly define exp operation to the world. |
| constexpr ZeroType | sin (ZeroType a) Specialize for possible zero input! |
| auto | sinh (T a) Exposing our newly define exp operation to the world. |
| constexpr ZeroType | sinh (ZeroType a) Specialize for possible zero input! |
| ListPower< R, HalfType > | sqrt (const R & r) |
| auto | sqrt (T a) |
| constexpr ZeroType | sqrt (ZeroType a) Specialize for possible zero input! |
| constexpr OneType | sqrt (OneType a) Specialize for possible unit input! |
| auto | su2average (T instance, SpaceStateType spaceType=IsComplexType< typename SU2GetGetReturnType< T >::type > ? SpaceStateType::Fourier :SpaceStateType::Configuration) |
| auto | su2dotter (const R & r, const T & t) |
| auto | su2doubletaverage (T instance, SpaceStateType spaceType=IsComplexType< typename SU2DoubletGetGetReturnType< T >::type > ? SpaceStateType::Fourier :SpaceStateType::Configuration) |
| constexpr auto | sum_in_range (F && func) A function which applies + to the results of func(Tag<i>()) for i in [begin, end). |
| constexpr auto | sum_in_range_impl (F && func, std::integer_sequence< int, INT... > iseq) |
| SymTracelessFieldAsFourier< R > | symTracelessFieldAsFourier (R && r) |
| consteval int | tag_value (Tag< N >) |
| auto | tanh (T a) Exposing our newly define exp operation to the world. |
| constexpr ZeroType | tanh (ZeroType a) Specialize for possible zero input! |
| auto | toSU2 (R r) |
| constexpr int | to_int (char c) A class which implements a litteral to create tags, comes from Boost Hana. |
| std::string | to_string (EvolverType eType) |
| constexpr auto | total (Tuple && tup, Function && func) Sums all the components of a tuple after applying func to them. |
| constexpr auto | total (Tuple && tup) Sums all the components of a tuple. |
| constexpr auto | total_impl (Tuple && tup, F && func, std::integer_sequence< int, INT... > iseq) |
| auto | trace (R && r) A function which takes the trace of su2 matrices. |
| constexpr auto | trace (ZeroType r) |
| DEVICE_INLINE_FUNCTION constexpr auto | tuple_add_to_nth (const device::tuple< IDX... > & tt) |
| DEVICE_INLINE_FUNCTION constexpr auto | tuple_add_to_nth_mod (device::tuple< IDX... > & tt) Pass a tuple of indices and add the second argument to the n-th value of the tuple. |
| DEVICE_INLINE_FUNCTION constexpr auto | tuple_first (const device::tuple< Head, Tail... > & t) Returns the first i elements of the given tuple t. |
| DEVICE_INLINE_FUNCTION constexpr auto | tuple_last (const device::tuple< Head, Tail... > & t) Returns the last i elements of the given tuple t. |
| auto | wallAverager (T instance, SpaceStateType spaceType=SpaceStateType::Configuration) |
| auto | wallAverager (ZeroType a) |
Public Static Functions
| Type | Name |
|---|---|
| auto | getComponent (T && t, Tag< I > i) A class which returns imaginary part of a fields or symmetric-traceless number. |
| auto | getComponent (T && t, Tag< I > i) |
| auto | getComponent (T && t, Tag< I > i) |
| auto | getComponent (T && t, Tag< I > i) |
| auto | getComponent (T && t, Tag< I > i, Tag< J > j) |
| auto | getComponent (T && t, Tag< I > i, Tag< J > j) |
| auto | getComponent (T && t, Tag< I > i, Tag< J > j) |
| auto | getComponent (T && t, Tag< I > i, Tag< J > j) |
| std::vector< std::shared_ptr< FFTSessionGuard > > | getFFTSessionGuards (bool pVerbose=true) |
Detailed Description
to get epsilons for various types
Public Types Documentation
typedef AveragerReturnType
using TempLat::AveragerReturnType = typedef std::conditional_t<std::is_integral_v<T> || std::is_floating_point_v<T>, double, T>;
typedef BDPhasePi2A
typedef BDPhasePi2E
enum CANONICALTYPE
typedef Collection
using TempLat::Collection = typedef typename CollectionSelector<Q, T, NDim, ISMOMENTUM, N, SHIFT, N == 0>::type;
typedef Concat_t
enum EvolverType
An enum, listing all available evolver types:
enum TempLat::EvolverType {
LF,
VV2,
VV4,
VV6,
VV8,
VV10,
VV6_2,
RK2,
RK3_3,
RK3_4,
RK4_5,
PV2,
PV4,
PV6,
PV8,
PV10,
PV6_2
};
- LF: leapfrog
- VV2: velocity verlet, order 2
- VV4: velocity verlet, order 4
- VV6: velocity verlet, order 6
- VV8: velocity verlet, order 8
- VV10: velocity verlet, order 10
- VV6_2: alternative scheme for velocity verlet order 6 (see documentation)
- PV2: position verlet, order 2
- PV4: position verlet, order 4
- PV6: position verlet, order 6
- PV8: position verlet, order 8
- PV10: position verlet, order 10
- PV6_2: alternative scheme for position verlet order 6 (see documentation)
- RK2: Runge-Kutta order 2
- RK3_3: 3rd order 3 stages low storage Runge-Kutta
- RK3_4: 3rd order 4 stages low storage Runge-Kutta
- RK4_5: 4th order 5 stages low storage Runge-Kutta
enum FFTBackendTag
A class which sets up the interface with the appropriate FFT library. Once you have implemented the FFTLibraryInterface for your library, add it to the logic here.
Unit test: ctest -R test-fftlibraryselector
Which FFT backend a given runtime setup resolves to.
typedef FourierSite
enum HermitianPartnersMode
enum HermitianRedundancy
Tracks which entries in the layout carry redundant information, and if so, what information. This, again, assumes FFTW layout.
- none: the complex value at this wavenumber has no redundancy, and can take any value.
- negativePartner: the value at this wavenumber is the complex conjugate of another value in the globalSpace, and we chose that this partner is the negative one.
- positivePartner: well, you guess.
- realValued: the complex value at this wavenumber must have zero imaginary part.
Unit test: ctest -R test-hermitianredundancy
typedef IsComposite
using TempLat::IsComposite = typedef IsCompositeHelper<R, tuple_size<decltype(std::remove_reference<R>::type::Getter::get( std::declval<R &>(), std::declval<Tag<0> >()))>::value>;
typedef MakeSeqImplTagList_t
typedef MakeSeqImpl_t
using TempLat::MakeSeqImpl_t = typedef typename CollectionHelper<Q, T, NDim, ISMOMENTUM, Start, End>::type;
typedef MakeSeqTagList_t
typedef MakeSeq_t
using TempLat::MakeSeq_t = typedef typename CollectionHelper<Q, T, NDim, ISMOMENTUM, 0, N - 1>::type;
typedef ParaFaFT_Backend
enum ParameterImportance
enum Parity
typedef RandomGaussianField
using TempLat::RandomGaussianField = typedef RandomGaussianFieldHelper<T, NDim, SpaceStateType::Fourier, false, false>;
@vocab-summary Gaussian random field generated directly in Fourier space. @vocab-tags Field, Fourier
typedef RandomGaussianFieldConfig
A Gaussian random field directly in configuration space: independent real N(0,1) white noise per lattice site (flat spectrum). NOT equivalent to drawing in Fourier space and transforming unless.
using TempLat::RandomGaussianFieldConfig = typedef RandomGaussianFieldHelper<T, NDim, SpaceStateType::Configuration, false, false>;
@vocab-summary Gaussian random field in configuration space: an independent normal draw per site. The counter-based generator makes each site independent of every other, so results are identical whatever the decomposition. the target spectrum is flat for a specific P(k), assign in Fourier space instead.
typedef RandomRayleighField
using TempLat::RandomRayleighField = typedef RandomGaussianFieldHelper<T, NDim, SpaceStateType::Fourier, true, false>;
@vocab-summary Fourier-space field with Rayleigh-distributed amplitude and uniform random phase. @vocab-tags Field, Fourier
typedef RandomUniformUnitaryField
using TempLat::RandomUniformUnitaryField = typedef RandomGaussianFieldHelper<T, NDim, SpaceStateType::Fourier, false, true>;
@vocab-summary Fourier-space field of unit modulus with uniformly random phase. @vocab-tags Field, Fourier
enum SpaceStateType
An enum for passing the right space type, all while having the compiler type check it.
typedef TagList
typedef TupleMaker
typedef U1Field
A U(1) group-valued field.
A U(1) group element is a complex number of unit modulus, so a U(1) field is simply a ComplexField: the group product is complex multiplication, the inverse is conj() / dagger(), and the exponential map is complexPhase() (see u1exponential.h).
Unlike SU2Field there is no unitarize() method. Links stay on the group by construction when they are updated multiplicatively through the exponential map,
U = complexPhase(dt * E) * U; // U <- e^{i dt E} U, exactly unit modulus
rather than additively (U += ... would leave the group). See bench-u1_evolution for a complete time-evolution example.
Unit test: ctest -R test-u1field
@vocab-summary A single \(U(1)\) link \(U\_i = e^{\mathrm{i} A\_i}\) for fixed \(i\). An alias of ComplexField, because a \(U(1)\) group element is a unit-modulus complex number: the group product is complex multiplication and the inverse is conj(). @vocab-signature U1Field<T, NDim> u("u", toolBox); @vocab-tags ComplexField
typedef VectorField
A class which Field collections. Allows to have vector fields, index starting from one.
Unit test: ctest -R test-vectorfield3d
@vocab-summary A vector-valued field — one component per spatial dimension, indexed from 1. The natural type for a gauge link \(U\_\mu\). @vocab-signature VectorField<FieldType> Us("Us", toolBox); @vocab-tags Collection
Public Functions Documentation
function AlmostEqual
we are comparing computed floats, so allow for some epsilon
template<typename T1, typename T2, typename T3>
DEVICE_FUNCTION bool TempLat::AlmostEqual (
const T1 & a,
const T2 & b,
const T3 & epsilon=std::sqrt(std::numeric_limits< T3 >::epsilon())
)
function AlmostEqual
overload for complex values. __
template<typename T>
DEVICE_FUNCTION bool TempLat::AlmostEqual (
const complex< T > & a,
const complex< T > & b,
const T epsilon=std::sqrt(std::numeric_limits< T >::epsilon())
)
function AlmostEqual
overload for arrays
template<typename T, size_t N>
DEVICE_FUNCTION bool TempLat::AlmostEqual (
const std::array< T, N > & a,
const std::array< T, N > & b,
const T epsilon=std::sqrt(std::numeric_limits< T >::epsilon())
)
function B4NA
@vocab-summary Non-abelian magnetic field component \(B\_i\) from the clover field strength. @vocab-signature B4NA(Us, i)
function B4NA
function B4NA
function BackwardCovariantDerivative
A class which.
Unit test: ctest -R test-backwardcovariantderivative
@vocab-summary Backward gauge-covariant derivative of a scalar: the backward difference with the scalar parallel-transported by the daggered link. Takes any number of gauge vectors followed by the scalar, so a field charged under several groups is written in one call. @vocab-signature BackwardCovariantDerivative<dim>(Us..., scalar)
function CDemangle
function CField
template<typename T, size_t NDim>
auto TempLat::CField (
Field < T, NDim > f1,
Field < T, NDim > f2
)
@vocab-summary Bundles two existing real Fields into one complex field, sharing their memory rather than copying it. @vocab-signature CField(re, im)
function CenteredCovariantDerivative
A class which computes centered covariant derivatives.
Unit test: ctest -R test-centeredcovariantderivative
@vocab-summary Centred gauge-covariant derivative, accurate to \(O(dx^2)\). Takes the gauge vectors followed by the scalar. @vocab-signature CenteredCovariantDerivative<dim>(Us..., scalar)
function CenteredCovariantDerivativeO4
A class which computes a O(dx^4) discrete covariant derivative.
Unit test: ctest -R test-centeredcovariantderivativeo4
@vocab-summary Centred gauge-covariant derivative on a five-point stencil, accurate to \(O(dx^4)\). @vocab-signature CenteredCovariantDerivativeO4<dim>(Us..., scalar)
function CenteredDerivative
@vocab-summary The ungauged centred derivative — CenteredCovariantDerivative with no links.
function CenteredDerivativeO4
@vocab-summary The ungauged \(O(dx^4)\) centred derivative.
function Complexify
template<typename R, typename T>
ComplexFieldWrapper < R, T > TempLat::Complexify (
const R & r,
const T & t
)
@vocab-summary Builds a complex expression from a real and an imaginary expression. Lightweight: it stores nothing and owns no memory. @vocab-signature Complexify(re, im)
function ConstructHerm
template<typename R11, typename R12, typename R13, typename R22, typename R23, typename R33>
HermWrapper < R11, R12, R13, R22, R23, R33 > TempLat::ConstructHerm (
const R11 & r11,
const R12 & r12,
const R13 & r13,
const R22 & r22,
const R23 & r23,
const R33 & r33
)
@vocab-summary Builds a hermitian \(3\times3\) matrix expression from its upper triangle; the lower triangle is the conjugate. @vocab-signature ConstructHerm(h11, h12, h13, h22, h23, h33) @vocab-tags Herm3x3
function ConstructMatrix3x3
template<typename R11, typename R12, typename R13, typename R21, typename R22, typename R23, typename R31, typename R32, typename R33>
MatrixWrapper < R11, R12, R13, R21, R22, R23, R31, R32, R33 > TempLat::ConstructMatrix3x3 (
const R11 & r11,
const R12 & r12,
const R13 & r13,
const R21 & r21,
const R22 & r22,
const R23 & r23,
const R31 & r31,
const R32 & r32,
const R33 & r33
)
@vocab-summary Builds a general \(3\times3\) matrix expression, given row by row. Entries set to ZeroType are pruned from the tree at compile time. @vocab-signature ConstructMatrix3x3(m11, m12, m13, m21, m22, m23, m31, m32, m33)
function ConstructSym
template<typename R11, typename R12, typename R13, typename R22, typename R23, typename R33>
SymWrapper < R11, R12, R13, R22, R23, R33 > TempLat::ConstructSym (
const R11 & r11,
const R12 & r12,
const R13 & r13,
const R22 & r22,
const R23 & r23,
const R33 & r33
)
@vocab-summary Builds a symmetric \(3\times3\) matrix expression from its upper triangle. @vocab-signature ConstructSym(s11, s12, s13, s22, s23, s33) @vocab-tags Sym3x3
function ConstructSymTraceless
template<typename R0, typename R1, typename R2, typename R3, typename R4, typename R5>
SymTracelessWrapper < R0, R1, R2, R3, R4, R5 > TempLat::ConstructSymTraceless (
const R0 & r0,
const R1 & r1,
const R2 & r2,
const R3 & r3,
const R4 & r4,
const R5 & r5
)
@vocab-summary Builds a symmetric \(3\times3\) expression whose trace is subtracted on evaluation, so the result is traceless by construction. @vocab-signature ConstructSymTraceless(t11, t12, t13, t22, t23, t33) @vocab-tags SymTraceless
function DiracDelta
Exposing our newly define multiplication operation to the world.
@vocab-summary Discrete Dirac delta: the largest representable value where the operand is exactly zero, and zero elsewhere. Exists so that the derivative of heaviside has a name; it is not a distribution you can integrate.
function DoesNotThrow
A helper for negating Throws.
function ExceptionArgumentUnpacker
Recursion stopper for helper function for unpacking the variadic arguments of the Exception constructor.
function ExceptionArgumentUnpacker
Helper function for unpacking the variadic arguments of the Exception constructor.
template<typename T, typename... Args>
inline void TempLat::ExceptionArgumentUnpacker (
std::stringstream & stream,
T t,
Args... args
)
function Grad2
@vocab-summary Squared norm of the forward gradient, \((\nabla\phi)^2\) — the gradient energy term, as one fused expression.
function Grad2
function Imag
A class which returns imaginary part of a fields or complex number.
Unit test: ctest -R test-imag
@vocab-summary Imaginary part of a complex field or complex number.
function Imag
function Imag
Imaginary part of a getter whose eval() returns a complex value. Bridges it into the complex-field protocol first, so Imag(f) == Imag(asComplexField(f)).
function IsEqual
function IsLess
function IsLessOrEqual
function IsMore
function IsMoreOrEqual
function LatForwardGrad
@vocab-summary Forward gradient, as a vector expression with one forwDiff component per dimension.
function LatLapl
function LatLapl
@vocab-summary Lattice Laplacian: the standard \(2d+1\)-point stencil, using the operand's own \(dx\). Applied component-wise to a collection. @vocab-signature LatLapl(expr) @vocab-primary
function LatLapl
function MPITypeSelect
A bunch of compile-time templates for getting the right MPI constants for your type.
Unit test: ctest -R test-mpitypeconstants
or without having to define a dummy variable to pass on, how about some templates:
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
A class which holds physical paramteters of the lattice. Note that dx and kIr are equivalent only for isotropic lattices. For anisotropic, only one of th e two should be specified.
Unit test: ctest -R test-latticeparameters
function MakeException
function MakeException
A class which computes the maximum value of a getter.
Unit test: ctest -R test-maximum
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
The outside-world interface for parameter parsing. Pass your argc/argv, receive an object that parsed everything that you put on the command line interface, where 'everything' means that you pass arguments in the form:
a=1 b=2 c=3
The special keyword 'input' takes a filename as value, pointing to a file in which you put all the parameters at once.
Unit test: ctest -R test-parameters
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
A class that applies diffusion to the fields. Currently used to generate initial conditions of defect networks.
function MakeException
function MakeException
A class which interfaces the evolver, so we don't need to use pointers in the main.
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
A namespace that collects different types to specify different initial conditions,.
Unit test: make test-initialconditionstype
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function MakeException
function NDLoop
A utility to perform N-dimensional loops over views. As this is not optimized for performance, it should only be used in tests. Naturally, NDLoop is a sequential loop - to use parallelism make use of device::iteration utilities. However, it is CPU-only and has therefore its special use cases.
template<size_t NDim, typename View, typename Functor>
void TempLat::NDLoop (
const View & view,
const Functor & functor
)
Template parameters:
NDimDimensionality of the loop.ViewType of the view being iterated over.FunctorType of the functor to be applied.
Parameters:
vThe view to iterate over.iThe current index.
Returns:
requires
function PutToStream
Simple outputing of arrays and vectors: not exposing as operator<<, because below we want to limit it to vectors and arrays, without needing to know the exact number of template parameters for this systems implementation of array and vector.
function Real
A class which get real parts of fields.
Unit test: ctest -R test-real
@vocab-summary Real part of a complex field or complex number.
function Real
function Real
Real part of a getter whose eval() returns a complex value (e.g. RandomGaussianField in Fourier space). Bridges it into the complex-field protocol first, so Real(f) == Real(asComplexField(f)).
function SU2DoubletWrap
template<class A, class B, class C, class D>
auto TempLat::SU2DoubletWrap (
A && pA,
B && pB,
C && pC,
D && pD
)
@vocab-summary Builds a doublet expression from four component expressions, or from a lambda of the component tag. @vocab-signature SU2DoubletWrap(a, b, c, d) SU2DoubletWrap(f) @vocab-tags SU2Doublet
function SU2DoubletWrap
function SU2GroupWrap
@vocab-summary Builds a genuine group element from three components, recovering \(c\_0\) from the unitarity constraint \(c\_0^2+c\_1^2+c\_2^2+c\_3^2=1\) so that \(\det U = 1\) holds by construction. @vocab-signature SU2GroupWrap(c1, c2, c3)
function SU2Wrap
template<class A, class B, class C, class D>
auto TempLat::SU2Wrap (
const A & pA,
const B & pB,
const C & pC,
const D & pD
)
@vocab-summary Builds an SU(2)-valued expression from four component expressions, or from a lambda of the component tag. Nothing is stored: the result is a leaf in the expression tree. @vocab-signature SU2Wrap(c0, c1, c2, c3) SU2Wrap(f)
function SU2Wrap
function SayComplete
Instantiate a container that eats up all the stream that you put in it, only locking the mutex and throwing up into std::cerr upon destruction. Provide the filename and line number of the place of invocation. Use the macro 'say' defined below.
Unit test: ctest -R test-saycomplete
function SetStacktracePtrToFileAddress
Posix's backtrace gives current memory addresses, which are good for runtime business, but not useful for finding source code locations. Need to convert that to file addresses, using this offset.
function StacktracePlainptrs
Templated size: just throw in your array and we fill it to at most its size. Plain backtrace version.
template<size_t N>
inline void TempLat::StacktracePlainptrs (
std::array< void *, N > * result,
int * addrlen
)
function StacktracePlainptrs
Templated size: just throw in your array and we fill it to at most its size. Libunwind (better!) version.
template<size_t N>
inline void TempLat::StacktracePlainptrs (
std::array< void *, N > * result,
int * addrlen
)
function StacktracePtrToFileAddress
function StripPathFromFileName
Performed by the compiler, if the const char* is a string at compile time.
function Throws
A standalone function for testing of an exception is properly thrown. Returns a bool and a description.
template<typename Exception, typename Lambda>
std::pair< bool, std::string > TempLat::Throws (
Lambda ll
)
function TrailingZeroChar
Performed by the compiler, if the const char* is a string at compile time.
function abs
function abs
Exposing our newly defined absolute value operation to the world.
@vocab-summary Absolute value, element-wise.
function abs
function abs
function abs
function acos
Exposing our newly defined acos operation to the world.
@vocab-summary Arc cosine, element-wise.
function acos
Specialize for possible unit input! acos(1) = 0.
function arg
@vocab-summary Phase of a complex field, in \((-\pi, \pi]\).
function arg
function arg
function arg2
A class which returns the phase of a complex field, between -pi and pi.
Unit test: ctest -R test-arg
function arg2
function arg2
@vocab-summary Two-argument arc tangent \(\mathrm{atan2}(y, x)\), giving a phase in \((-\pi, \pi]\). @vocab-signature arg2(y, x)
function asComplexField
@vocab-summary Reinterprets an expression whose eval() already returns a complex value as a complex field, so the complex algebra applies to it.
function asFourier
@vocab-summary Views a complex field as living in Fourier space, so that assignments and reductions on it are taken over momentum modes. @vocab-tags ComplexField, Fourier
function asinh
Exposing our newly define exp operation to the world.
@vocab-summary Inverse hyperbolic sine, element-wise.
function average
template<typename T>
auto TempLat::average (
T instance,
SpaceStateType spaceType=GetGetReturnType < T >::isComplex ? SpaceStateType::Fourier :SpaceStateType::Configuration
)
function average
@vocab-summary Average of an expression over the whole lattice and across all MPI ranks. Defaults to configuration or Fourier space according to the operand. @vocab-signature average(expr) average(expr, space)
function average
function average
function backDiff
@vocab-summary Backward finite difference \(\big(f(x) - f(x-\hat e\_\mu)\big)/dx\) along direction mu. @vocab-signature backDiff(expr, mu)
function backDiff
function backDiff
function binary_fold
template<class BinaryOp, class Tuple, typename Function, typename Unity>
constexpr auto TempLat::binary_fold (
BinaryOp && op,
Tuple && tup,
Function && func,
Unity && unit
)
function binary_fold_impl
template<class BinaryOp, class Tuple, typename Function, typename Unity>
constexpr auto TempLat::binary_fold_impl (
BinaryOp && op,
Tuple && tup,
Function && func,
Unity && unit,
Tag <-1 > tg
)
function binary_fold_impl
template<class BinaryOp, class Tuple, typename Function, typename Unity, int Index>
constexpr auto TempLat::binary_fold_impl (
BinaryOp && op,
Tuple && tup,
Function && func,
Unity && unit,
Tag < Index > tg
)
function binary_for_each
template<typename Tuple1, typename Tuple2, typename F>
constexpr void TempLat::binary_for_each (
Tuple1 && tuple1,
Tuple2 && tuple2,
F && f
)
function binary_for_each_impl
template<typename Tuple1, typename Tuple2, typename F, std::size_t... Indices>
constexpr void TempLat::binary_for_each_impl (
Tuple1 && tuple1,
Tuple2 && tuple2,
F && f,
std::index_sequence< Indices... >
)
function commutator
@vocab-summary Commutator \([A,B] = AB - BA\) of two SU(2)-valued expressions.
function commutator
function commutator
function commutator
function commutator
function complexPhase
@vocab-summary Exponential map for \(U(1)\): turns a real phase \(\theta\) into the unit-modulus complex number \(e^{i\theta}\). @vocab-tags ComplexField
function complexfieldaverage
template<typename T>
auto TempLat::complexfieldaverage (
T instance,
SpaceStateType spaceType=IsComplexType< typename ComplexGetGetReturnType < T >::type > ? SpaceStateType::Fourier :SpaceStateType::Configuration
)
@vocab-summary Lattice average of a complex expression, returning a complex result.
function conj
function conj
function conj
function conj
Exposing our newly define multiplication operation to the world.
@vocab-summary Complex conjugate, element-wise. Excluded for complex field types (HasComplexFieldGet) which have their own conj overload.
function conj
function conj
function conj
function constexpr_for
A compile-time for loop, which calls the lambda f of signature void(integer) for each index.
template<auto Start, auto End, class F>
DEVICE_INLINE_FUNCTION constexpr void TempLat::constexpr_for (
F && f
)
function cos
Exposing our newly define exp operation to the world.
@vocab-summary Cosine, element-wise.
function cos
Specialize for possible zero input!
function cosh
Exposing our newly define exp operation to the world.
@vocab-summary Hyperbolic cosine, element-wise.
function cosh
Specialize for possible zero input!
function createParams
function dag
@vocab-summary Short spelling of dagger.
function dagger
function dagger
function dagger
function dagger
@vocab-summary Hermitian conjugate. For SU(2) it negates the three vector components; the operator factory also simplifies as it builds, collapsing \((A^\dagger)^\dagger\) to \(A\) and commuting past a shift.
function dagger
function dagger
function dagger
function dagger
function dagger
function decay_tuple
template<typename T, std::size_t... Is>
auto TempLat::decay_tuple (
T && t,
std::index_sequence< Is... >
)
function decay_tuple
function derivatives
@vocab-summary Symbolic derivative of an expression with respect to each field in a collection, returned as a tuple. Provided for completeness; nothing in TempLat uses it.
function dot
@vocab-summary Dot product of two vector expressions, \(\sum\_i a\_i b\_i\).
function electricField2
@vocab-summary Site-centred electric field: the average of the two links straddling a site in each direction. Returns a vector expression when called without an index. @vocab-signature electricField2(Es) electricField2(Es, i)
function electricField2
function electricField2
function electricField2
function exp
function exp
Exposing our newly define exp operation to the world.
@vocab-summary Exponential \(e^x\), element-wise. @vocab-primary
function exp
Specialize for possible zero input!
function exp
@vocab-summary Exponential map from the su(2) algebra to the SU(2) group.
function expinv
@vocab-summary Inverse of the SU(2) exponential map — the logarithm, taking a group element back to the algebra.
function explode
A class which flatten all directions of a composite object.
Unit test: ctest -R test-flattentuple
function explode
function explode
template<typename T, std::size_t... Is>
auto TempLat::explode (
T && t,
std::index_sequence< Is... >
)
function fieldStrength
Returns the field strength tensor F_{mu,nu} = d_mu A_nu - d_nu A_mu, where A is a gauge field and d is a forward derivative, using a forward finite difference.
template<typename R, int Mu, int Nu>
auto TempLat::fieldStrength (
R A,
Tag < Mu > mu,
Tag < Nu > nu
)
Parameters:
AThe gauge fieldmuThe first index of the field strength tensor.nuThe second index of the field strength tensor.
@vocab-summary Abelian field strength \(F\_{\mu\nu} = \partial\_\mu A\_\nu - \partial\_\nu A\_\mu\) from forward differences of the gauge potential. @vocab-signature fieldStrength(As, mu, nu)
function fieldStrengthCtr
Returns the field strength tensor F_{mu,nu} = d_mu A_nu - d_nu A_mu, where A is a gauge field and d is a forward derivative, using a central finite difference.
template<typename R, int Mu, int Nu>
auto TempLat::fieldStrengthCtr (
R A,
Tag < Mu > mu,
Tag < Nu > nu
)
Parameters:
AThe gauge fieldmuThe first index of the field strength tensor.nuThe second index of the field strength tensor.
@vocab-summary Field strength built from centred rather than forward differences. @vocab-signature fieldStrengthCtr(As, mu, nu)
function flatten
A function which flattens a std::vector.
template<typename NestedVec>
std::vector< typename std_atomic_type < NestedVec >::type > TempLat::flatten (
const NestedVec & nested
)
Unit test: ctest -R test-flattenstd
function flatten_helper
template<typename T>
std::enable_if<! is_std_vector < T >::value >::type TempLat::flatten_helper (
const T & elem,
std::vector< T > & flat
)
function flatten_helper
template<typename T>
std::enable_if< is_std_vector < T >::value >::type TempLat::flatten_helper (
const T & nested,
std::vector< typename std_atomic_type < T >::type > & flat
)
function flatten_tuple
template<typename T, std::size_t... Is>
auto TempLat::flatten_tuple (
T && t,
std::index_sequence< Is... >
)
function flatten_tuple
function fold_multiply
Multiplies all the components of a tuple after applying func to them.
template<class Tuple, typename Function>
constexpr auto TempLat::fold_multiply (
Tuple && tup,
Function && func
)
Unit test: ctest -R test-foldmultiply
Parameters:
tupthe tuple to multiply overfuncthe function to apply to each component before multiplying
function fold_multiply
Multiplies all the components of a tuple.
Unit test: ctest -R test-foldmultiply
Parameters:
tupthe tuple to multiply over
function fold_multiply_impl
template<class Tuple, typename Function, typename Unit, int... INT>
constexpr auto TempLat::fold_multiply_impl (
Tuple && tup,
Function && func,
Unit && unit,
std::integer_sequence< int, INT... > iseq
)
function fold_multiply_unit
Multiplies all the components of a tuple after applying func to them, starting from unit.
template<class Tuple, class Unit>
constexpr auto TempLat::fold_multiply_unit (
Tuple && tup,
Unit && unit
)
Unit test: ctest -R test-foldmultiply
Parameters:
tupthe tuple to multiply overfuncthe function to apply to each component before multiplyingunitthe unit to start multiplying from
function for_each
function for_each_impl
A class which.
template<typename Tuple, typename F, std::size_t... Indices>
constexpr void TempLat::for_each_impl (
Tuple && tuple,
F && f,
std::index_sequence< Indices... >
)
A tuple friendly for_each. From https://codereview.stackexchange.com/a/163802
function for_in_range
A function which implements a static for loop. Note that this for-loop is INCLUSIVE of the start AND end.
Unit test: ctest -R test-for_in_range
function forwDiff
@vocab-summary Forward finite difference \(\big(f(x+\hat e\_\mu) - f(x)\big)/dx\) along direction mu. @vocab-signature forwDiff(expr, mu)
function forwDiff
function forwDiff
function forwDij
@vocab-summary Forward two-point sum \(\big(f(x) + f(x+\hat e\_\mu)\big)/dx\) — the averaging counterpart of forwDiff, used where a gauge-covariant discretisation needs the sum rather than the difference. @vocab-signature forwDij<dir>(expr)
function forwDij
function getAverager
template<typename T>
auto TempLat::getAverager (
T instance,
SpaceStateType spaceType=GetGetReturnType < T >::isComplex ? SpaceStateType::Fourier :SpaceStateType::Configuration
)
function getFFTWSessionGuard
function getTypeIBinCounts
function getVectorComponent
template<int N, typename R>
GetVectorComponentHelper < N, R > TempLat::getVectorComponent (
const R & pR,
Tag < N >
)
function heaviside
@vocab-summary Heaviside step function, with the convention \(H(0)=1\). Its symbolic derivative is DiracDelta.
function heaviside
Specialize for possible zero input!
function heaviside
Specialize for possible unit input!
function integrate
function log
function log
Exposing our newly define log operation to the world.
@vocab-summary Natural logarithm, element-wise.
function log
Specialize for possible zero output!
function magneticField
A function to return the magnetic field from the gauge potential. Specialised to 3D. TODO: ND?
@vocab-summary Magnetic field from the gauge potential, \(B\_i = \tfrac12\epsilon\_{ijk}F\_{jk}\). Specialised to three dimensions.
function magneticField
function magneticField
function magneticField
function magneticField4
A function to get the average between the 4 links of the magnetic field from the gauge potential. Specialised to 3D.
Unit test: make test-magneticfield
@vocab-summary Site-centred magnetic field: the average over the four plaquettes around a site in each direction. Specialised to three dimensions. @vocab-signature magneticField4(Bs) magneticField4(Bs, i)
function magneticField4
function magneticField4
function magneticField4
function magneticFieldCtr
A function to return the magnetic field from the gauge potential using centered finite derivatives. Specialised to 3D. TODO: ND?
@vocab-summary Magnetic field from centred differences of the gauge potential.
function magneticFieldCtr
function magneticFieldCtr
function magneticFieldCtr
function makeUniformArray
template<typename T, size_t N>
inline device::array< T, N > TempLat::makeUniformArray (
const T & value
)
function make_flat_list
A class which creates a flat tuple from potentially a list of composite objects.
Unit test: ctest -R test-makeflatlist
function make_latinindices_list
function make_list
function make_list_from_array
function make_list_from_array
function make_list_tag
function make_list_tag
function make_list_tag_impl
A class which.
template<int Start, typename F, int... I>
inline auto TempLat::make_list_tag_impl (
F && f,
std::integer_sequence< int, I... > iseq
)
Unit test: ctest -R test-make_list_tag
function make_templatvector
function make_tuple_from
function make_tuple_from
function make_tuple_sequence
function make_tuple_sequence_helper
template<typename T, T... I>
constexpr auto TempLat::make_tuple_sequence_helper (
std::integer_sequence< T, I... >
)
function make_tuple_tag
function make_tuple_tag
function make_tuple_tag_impl
Function that creates a tuple of (f(Tag<0>, ..., f(Tag<N>) ).
template<int Start, typename F, int... I>
auto TempLat::make_tuple_tag_impl (
F && f,
std::integer_sequence< int, I... > iseq
)
Unit test: ctest -R test-make_tuple_tag
function make_vector
function make_vector_tag
function make_vector_tag
function make_vector_tag_impl
template<int Start, typename F, int... I>
inline auto TempLat::make_vector_tag_impl (
F && f,
std::integer_sequence< int, I... > iseq
)
function max
template<typename T>
auto TempLat::max (
T instance,
SpaceStateType spaceType=GetGetReturnType < T >::isComplex ? SpaceStateType::Fourier :SpaceStateType::Configuration
)
@vocab-summary Largest value an expression takes anywhere on the lattice, reduced across all ranks.
function max
function multiplyTrace
@vocab-summary Trace of the product of two \(3\times3\) matrix expressions, \(\mathrm{tr}(AB)\), evaluated without ever forming the product. @vocab-signature multiplyTrace(a, b)
function multiplyTrace
function multiplyTrace
function neutDiff
@vocab-summary Centred finite difference \(\big(f(x+\hat e\_\mu) - f(x-\hat e\_\mu)\big)/2dx\), accurate to \(O(dx^2)\). @vocab-signature neutDiff(expr, mu)
function neutDiff
function neutDij
@vocab-summary Centred two-point sum \(\big(f(x+\hat e\_\mu) + f(x-\hat e\_\mu)\big)/2dx\), the averaging counterpart of neutDiff. @vocab-signature neutDij<dir>(expr)
function neutDij
function nonabelianclover
A function that returns the clover discretization of non-abelian magnetic fields.
template<int Mu, int Nu, typename R>
auto TempLat::nonabelianclover (
const R & Us,
Tag < Mu > mu,
Tag < Nu > nu
)
Parameters:
UsThe gauge links.muThe first direction of the clover. Should be a spatial direction.nuThe second direction of the clover. Should be a spatial direction.
@vocab-summary Clover discretisation of the non-abelian field strength: the average of the four plaquettes touching a site in the \((\mu,\nu)\) plane, which restores the symmetry a single plaquette breaks. @vocab-signature nonabelianclover(Us, mu, nu)
function norm
@vocab-summary Euclidean norm of a vector expression, sqrt(norm2(v)).
function norm2
function norm2
A class which computes the norm of a list.
Unit test: ctest -R test-norm
@vocab-summary Squared norm: the sum of the squares of the components. Defined for collections, complex fields and doublets.
function norm2
function norm2
function operator!=
function operator""_c
function operator*
function operator*
function operator*
function operator*
function operator*
function operator*
function operator*
function operator*
function operator*
function operator*
function operator*
function operator*
Exposing our newly define multiplication operation to the world.
@vocab-summary Product of two expressions. The meaning follows the operands: numbers and fields multiply point-wise, SU(2) elements compose as quaternions, matrices contract, collections multiply component-wise.
function operator*
function operator*
function operator*
function operator*
Specialize for ZeroType *ZeroType .
function operator*
Specialize for possible zero input!
function operator*
Specialize for possible zero input!
function operator*
Specialize for possible unit input!
function operator*
Specialize for possible unit input!
function operator*
Specialize for possible unit input!
function operator*
function operator*
function operator*
function operator*
function operator*
function operator*
function operator*
function operator*
function operator*
template<typename T, class R>
RadialProjectionResult < T > TempLat::operator* (
R && func,
const RadialProjectionResult < T > & obj
)
function operator*
template<typename T>
RadialProjectionResult < T > TempLat::operator* (
double scale,
const RadialProjectionResult < T > & obj
)
function operator*
template<typename T>
RadialProjectionResult < T > TempLat::operator* (
float scale,
const RadialProjectionResult < T > & obj
)
function operator*
template<typename T>
RadialProjectionResult < T > TempLat::operator* (
int scale,
const RadialProjectionResult < T > & obj
)
function operator*
template<typename T, class R>
UnbinnedRadialProjectionResult < T > TempLat::operator* (
R && func,
const UnbinnedRadialProjectionResult < T > & obj
)
function operator*
template<typename T>
UnbinnedRadialProjectionResult < T > TempLat::operator* (
double scale,
const UnbinnedRadialProjectionResult < T > & obj
)
function operator*
template<typename T>
UnbinnedRadialProjectionResult < T > TempLat::operator* (
float scale,
const UnbinnedRadialProjectionResult < T > & obj
)
function operator*
template<typename T>
UnbinnedRadialProjectionResult < T > TempLat::operator* (
int scale,
const UnbinnedRadialProjectionResult < T > & obj
)
function operator*
function operator+
function operator+
function operator+
function operator+
function operator+
function operator+
@vocab-summary Element-wise sum. Every algebra defines its own, so the operands may be numbers, scalar or complex fields, SU(2) elements, doublets, 3x3 matrices or collections.
function operator+
Specialize for possible zero input!
function operator+
Specialize for possible half input!
function operator+
Specialize for possible zero input! Need to disable one of these for two ZeroTypes as input.
function operator+
Specialize for possible zero input! Need to disable one of these for two ZeroTypes as input.
function operator+
function operator+
function operator+
template<typename T>
RadialProjectionResult < T > TempLat::operator+ (
const RadialProjectionResult < T > & a,
const RadialProjectionResult < T > & b
)
function operator+
template<typename T>
UnbinnedRadialProjectionResult < T > TempLat::operator+ (
const UnbinnedRadialProjectionResult < T > & a,
const UnbinnedRadialProjectionResult < T > & b
)
function operator+
function operator-
function operator-
function operator-
function operator-
function operator-
function operator-
function operator-
template<typename R, typename T>
Operators::Subtraction < R, T > TempLat::operator- (
const R & r,
const T & t
)
@vocab-summary Element-wise difference; the unary form negates. Defined for every algebra.
function operator-
Specialize for possible zero input!
function operator-
Specialize for possible zero input! Need to disable one of these for two ZeroTypes as input.
function operator-
Specialize for unary minus.
template<typename T, typename S>
auto TempLat::operator- (
T && a,
Operators::UnaryMinus < S > && b
)
function operator-
Specialize for possible half input!
function operator-
Specialize for possible half input!
function operator-
Specialize for possible OneType __OneType input.
function operator-
Exposing our newly defined subtraction operation to the world.
function operator-
Specialize for possible zero input!
function operator-
Specialize for double minus signs: -(-(-x)) collapses to -x. The argument a == -(-x) == +x, so -a == -x, which is exactly the inner UnaryMinus<T> node a.mR.
template<typename T>
auto TempLat::operator- (
Operators::UnaryMinus < Operators::UnaryMinus < T > > && a
)
function operator-
function operator-
function operator-
function operator-
function operator/
function operator/
function operator/
function operator/
Exposing our newly define multiplication operation to the world.
@vocab-summary Element-wise division.
function operator/
Specialize for possible unit input! Simplify derivatives for example.
function operator/
Specialize for possible zero input! Need to disable one of these for two ZeroTypes as input.
function operator/
function operator<
function operator<
function operator<<
Enable simple operator<< for all objects with a toString method.
function operator<<
template<size_t NDim>
inline std::ostream & TempLat::operator<< (
std::ostream & ostream,
SpaceStateType st
)
function operator<<
inline std::ostream & TempLat::operator<< (
std::ostream & ostream,
const HermitianRedundancy & hr
)
function operator<<
template<typename T, size_t N>
std::ostream & TempLat::operator<< (
std::ostream & stream,
const device::array< T, N > & vec
)
function operator<<
template<typename T, typename K>
std::ostream & TempLat::operator<< (
std::ostream & stream,
const std::pair< T, K > & p
)
function operator<<
function operator<<
function operator<=
function operator<=
function operator==
function operator>
function operator>
function operator>=
function operator>=
function operator>>
function parse
function plaq
A class which defines plaquette operator.
Unit test: ctest -R test-plaquette
@vocab-summary Plaquette \(P\_{\mu\nu}(x) = U\_\mu(x)\,U\_\nu(x+\hat\mu)\,U^\dagger\_\mu(x+\hat\nu)\,U^\dagger\_\nu(x)\). The product is deliberately bracketed in pairs: fully expanding a chain of six or more link matrices overflows the stack. @vocab-signature plaq(Us, mu, nu)
function plaqBack
A class which implemets a backward plaquette. Useful in equations of motions for example.
template<int Mu, int Nu, typename R>
auto TempLat::plaqBack (
const R & Us,
Tag < Mu > mu,
Tag < Nu > nu
)
Unit test: ctest -R test-plaquetteback
@vocab-summary The plaquette traversed backwards in \(\nu\), needed alongside plaq when assembling equations of motion. @vocab-signature plaqBack(Us, mu, nu)
function pow
function pow
function pow
@vocab-summary Raises an expression to a power. \(x^N\) with a compile-time exponent unrolls into repeated multiplication; the two-argument form is general. \(N=0\) folds to OneType and \(N=1\) to the operand itself, at compile time. @vocab-signature pow<N>(x) pow(x, y)
function pow
function pow
function pow
Specialize for possible zero input! Need to disable one of these for two ZeroTypes as input.
function pow
function pow
function pow
Specialize for possible zero input!
function pow
Specialize for possible one input!
function powr
A compile-time evaluatable power function for whole number exponents. This implementation generates some rather efficient instructions, see ( https://godbolt.org/z/vT56bb1nx ).
template<int n, typename NumberType>
constexpr DEVICE_INLINE_FUNCTION NumberType TempLat::powr (
const NumberType x
)
Template parameters:
nExponent of type intRFType of argument
Parameters:
xArgument
Returns:
x^n
function projectChiralU1Type1
template<typename Model, int U1, int C>
auto TempLat::projectChiralU1Type1 (
const Model & model,
Tag < U1 >,
Tag < C >,
bool sign,
bool AorE
)
function projectGWType1
function projectGWType2
function projectGWType3
function projectRadially
template<size_t NDim, typename T>
RadialProjector < T > TempLat::projectRadially (
T instance,
SpaceStateType spaceType,
device::memory::host_ptr < MemoryToolBox < NDim > > pToolBox,
bool useBinCentralValues=false
)
@vocab-summary Bins an expression by radius, giving a radial profile of an \(N\)-dimensional lattice.
function projectRadially
template<typename T>
RadialProjector < T > TempLat::projectRadially (
T instance,
bool useBinCentralValues=false
)
function projectRadiallyFourier
template<typename T>
RadialProjector < T > TempLat::projectRadiallyFourier (
T instance,
bool useBinCentralValues=false
)
@vocab-summary Bins an expression by \(\|k\|\), the usual way to take a power spectrum. @vocab-tags Field, Fourier
function reverse_array
template<typename Arg, size_t N, std::size_t... Is>
DEVICE_INLINE_FUNCTION auto TempLat::reverse_array (
const device::array< Arg, N > & array,
std::index_sequence< Is... >
)
function reverse_array
template<typename Arg, size_t N>
DEVICE_INLINE_FUNCTION auto TempLat::reverse_array (
const device::array< Arg, N > & array
)
function reverse_tuple
template<typename... Args, std::size_t... Is>
DEVICE_INLINE_FUNCTION auto TempLat::reverse_tuple (
const device::tuple< Args... > & tuple,
std::index_sequence< Is... >
)
function reverse_tuple
template<typename... Args>
DEVICE_INLINE_FUNCTION auto TempLat::reverse_tuple (
const device::tuple< Args... > & tuple
)
function safeDivide
@vocab-summary Division that yields exactly zero where the numerator does, instead of evaluating 0/0. Written for normalising spectra against a cutoff. @vocab-signature safeDivide(numerator, denominator)
function safeSqrt
@vocab-summary Square root that clamps a negative argument to zero, for quantities that are positive up to rounding.
function scalar_prod
@vocab-summary Scalar product of two SU(2) doublets.
function scalar_prod
function scalar_prod
function sh1
function sh1
function shift
function shift
function shift
function shift
function shift
function shift
function shift
function shift
function shift
@vocab-summary Reads an expression at a site offset by a constant lattice vector: shift(phi, 1_c) is \(\phi(x+\hat e\_1)\). Every finite-difference operator is built from it, and it is what tells TempLat which ghost cells to exchange. @vocab-signature shift(expr, mu) shift<i,j,k>(expr) @vocab-example auto p = (Us(mu) * shift(Us(nu), mu)) * dagger(shift(Us(mu), nu)) * dagger(Us(nu));
function shift
function shift
function shift
function shift
function shift
function shift
function shift
function shift
function shift
function shift
function shift
function shift
function shifted_index_sequence
Use as shifted_index_sequence<SHIFT>(std::make_index_sequence<N>{}) To get an index sequence<SHIFT,SHIFT+1,...,SHIFT+N-1>
template<int SHIFT, size_t... I>
auto TempLat::shifted_index_sequence (
std::index_sequence< I... >
)
Unit test: ctest -R test-shiftedindexsequence
function sin
Exposing our newly define exp operation to the world.
@vocab-summary Sine, element-wise.
function sin
Specialize for possible zero input!
function sinh
Exposing our newly define exp operation to the world.
@vocab-summary Hyperbolic sine, element-wise.
function sinh
Specialize for possible zero input!
function sqrt
function sqrt
@vocab-summary Square root, built as \(x^{1/2}\) so the expression stays symbolically differentiable.
function sqrt
Specialize for possible zero input!
function sqrt
Specialize for possible unit input!
function su2average
template<typename T>
auto TempLat::su2average (
T instance,
SpaceStateType spaceType=IsComplexType< typename SU2GetGetReturnType < T >::type > ? SpaceStateType::Fourier :SpaceStateType::Configuration
)
@vocab-summary Lattice average of an SU(2)-valued expression, aware of cached link operations.
function su2dotter
@vocab-summary Lie-algebra inner product \(\langle A,B\rangle = \sum\_{a=1}^{3} A\_a B\_a\), evaluated in one fused pass rather than by building three component expressions.
function su2doubletaverage
template<typename T>
auto TempLat::su2doubletaverage (
T instance,
SpaceStateType spaceType=IsComplexType< typename SU2DoubletGetGetReturnType < T >::type > ? SpaceStateType::Fourier :SpaceStateType::Configuration
)
@vocab-summary Lattice average of an SU(2) doublet expression. @vocab-tags SU2Doublet
function sum_in_range
A function which applies + to the results of func(Tag<i>()) for i in [begin, end).
Unit test: ctest -R test-sum_in_range
Parameters:
functhe function to apply to each integer in the range before summing
function sum_in_range_impl
template<int begin, typename F, int... INT>
constexpr auto TempLat::sum_in_range_impl (
F && func,
std::integer_sequence< int, INT... > iseq
)
function symTracelessFieldAsFourier
template<typename R>
SymTracelessFieldAsFourier < R > TempLat::symTracelessFieldAsFourier (
R && r
)
@vocab-summary Views a symmetric-traceless field in Fourier space. @vocab-tags SymTraceless, Fourier
function tag_value
function tanh
Exposing our newly define exp operation to the world.
@vocab-summary Hyperbolic tangent, element-wise.
function tanh
Specialize for possible zero input!
function toSU2
@vocab-summary Projects an SU(2)-valued expression onto the group by rebuilding it from its three vector components.
function to_int
A class which implements a litteral to create tags, comes from Boost Hana.
Unit test: ctest -R test-tagliteral
function to_string
function total
Sums all the components of a tuple after applying func to them.
template<class Tuple, typename Function>
constexpr auto TempLat::total (
Tuple && tup,
Function && func
)
Unit test: ctest -R test-total
Parameters:
tupthe tuple to sum overfuncthe function to apply to each component before summing
@vocab-summary Sums every component of a tuple-like expression, optionally applying a function to each first. Reduces over the components, not over the lattice. @vocab-signature total(tup) total(tup, f)
function total
Sums all the components of a tuple.
Unit test: ctest -R test-total
Parameters:
tupthe tuple to sum over
function total_impl
template<typename Tuple, typename F, int... INT>
constexpr auto TempLat::total_impl (
Tuple && tup,
F && func,
std::integer_sequence< int, INT... > iseq
)
function trace
A function which takes the trace of su2 matrices.
Unit test: ctest -R test-su2trace
@vocab-summary Trace of an SU(2) matrix, \(\mathrm{tr}\,U = 2c\_0\) in the four-real-component representation.
function trace
function tuple_add_to_nth
template<size_t n, int add, typename... IDX>
DEVICE_INLINE_FUNCTION constexpr auto TempLat::tuple_add_to_nth (
const device::tuple< IDX... > & tt
)
function tuple_add_to_nth_mod
Pass a tuple of indices and add the second argument to the n-th value of the tuple.
template<size_t n, int add, typename... IDX>
DEVICE_INLINE_FUNCTION constexpr auto TempLat::tuple_add_to_nth_mod (
device::tuple< IDX... > & tt
)
Template parameters:
nwhich index of the tuple is to be changedaddthe value to addIDXtypes of the tuple elements
Parameters:
ttthe tuple to modify
Returns:
auto the modified tuple
function tuple_first
Returns the first i elements of the given tuple t.
template<int i, typename Head, typename... Tail>
DEVICE_INLINE_FUNCTION constexpr auto TempLat::tuple_first (
const device::tuple< Head, Tail... > & t
)
Template parameters:
isize of the tuple to be returned
Parameters:
ttuple to be split
Returns:
auto a tied tuple of the first i elements
function tuple_last
Returns the last i elements of the given tuple t.
template<size_t i, typename Head, typename... Tail>
DEVICE_INLINE_FUNCTION constexpr auto TempLat::tuple_last (
const device::tuple< Head, Tail... > & t
)
Template parameters:
isize of the tuple to be returned
Parameters:
ttuple to be split
Returns:
auto a tied tuple of the last i elements
function wallAverager
template<typename T>
auto TempLat::wallAverager (
T instance,
SpaceStateType spaceType=SpaceStateType::Configuration
)
@vocab-summary Averages over the first \(d-1\) coordinates, leaving a profile along the last one.
function wallAverager
Public Static Functions Documentation
function getComponent
A class which returns imaginary part of a fields or symmetric-traceless number.
Unit test: ctest -R test-imag
function getComponent
function getComponent
function getComponent
function getComponent
template<class T, int I, int J>
static auto TempLat::getComponent (
T && t,
Tag < I > i,
Tag < J > j
)
function getComponent
template<class T, int I, int J>
static auto TempLat::getComponent (
T && t,
Tag < I > i,
Tag < J > j
)
function getComponent
template<class T, int I, int J>
static auto TempLat::getComponent (
T && t,
Tag < I > i,
Tag < J > j
)
function getComponent
template<class T, int I, int J>
static auto TempLat::getComponent (
T && t,
Tag < I > i,
Tag < J > j
)
function getFFTSessionGuards
static inline std::vector< std::shared_ptr< FFTSessionGuard > > TempLat::getFFTSessionGuards (
bool pVerbose=true
)
The documentation for this class was generated from the following file cosmolatticeweb/tmp/code_source/templat/include/TempLat/fft/external/fftw/fftwguard.h