Procedures

ProcedureLocationProcedure TypeDescription
ActivateLoggerLoggingModuleSubroutine

Activate the logger.

AddSparseVectorsSVectorModuleInterface
AppendToTripletListTripletListModuleInterface
AppendToVectorCholeskyModuleInterface
BroadcastVectorCholeskyModuleInterface
CGSolverLinearSolversModuleSubroutine

Solve the matrix equation AX = B using the conjugate gradient method.

CheckAllocErrorErrorModuleFunction

Routine to call if an alloc error has occurred.

CheckMemoryPoolValidityPMatrixMemoryPoolModuleInterface
CheckMemoryPoolValidityMatrixMemoryPoolModuleInterface
CheckMPIErrorErrorModuleFunction

Routine to call to check if an MPI error has occurred.

CholeskyDecompositionLinearSolversModuleSubroutine

Compute The Cholesky Decomposition of a Hermitian Positive Definite matrix. This is a really naive implementation, that might be worth revisiting.

CleanupErrorModuleSubroutine

As a last case resort, this will print an error message and quit.

CommSplitMatrixPSMatrixModuleInterface
CompareTripletsTripletModuleInterface
ComposeMatrixSMatrixModuleInterface
ComposeMatrixDMatrixModuleInterface
ComposeMatrixColumnsSMatrixModuleInterface
ComputeChebyshevSolversModuleInterface
ComputeHermiteSolversModuleInterface
ComputePolynomialSolversModuleInterface
ComputeDenseExponentialExponentialSolversModuleSubroutine
ComputeDenseFOEFermiOperatorModuleSubroutine

Compute the density matrix using a dense routine.

ComputeDenseLogarithmExponentialSolversModuleSubroutine
ComputeExponentialExponentialSolversModuleSubroutine

Compute the exponential of a matrix.

ComputeExponentialPadeExponentialSolversModuleSubroutine

Compute the exponential of a matrix using a pade approximation. Be warned, the pade method can result in a lot of intermediate fill.

ComputeExponentialTaylorExponentialSolversModuleSubroutine

Compute the exponential of a matrix using a taylor series expansion. This is only really useful if you have a very small spectrum, because quite a bit of scaling is required.

ComputeGridSizeProcessGridModuleSubroutine

Sometimes we only want to specify for a process grid the number of slices and then automatically compute the right number of rows and columns.

ComputeInverseRootRootSolversModuleSubroutine

Compute a general inverse matrix root.

ComputeLogarithmExponentialSolversModuleSubroutine

Compute the logarithm of a matrix.

ComputeLogarithmTaylorExponentialSolversModuleSubroutine

Compute the logarithm of a matrix using a taylor series expansion.

ComputeRootRootSolversModuleSubroutine

Compute a general matrix root.

ConjugateMatrixSMatrixModuleInterface
ConjugateMatrixPSMatrixModuleInterface
ConstructDefaultPermutationPermutationModuleSubroutine

Constructs a permutation that preserves the original order.

ConstructDiagCholeskyModuleInterface
ConstructEmptyMatrixSMatrixModuleInterface
ConstructEmptyMatrixDMatrixModuleInterface
ConstructEmptyMatrixPSMatrixModuleInterface
ConstructErrorErrorModuleSubroutine

Default constructor for an error type.

ConstructLimitedRandomPermutationPermutationModuleSubroutine

Constructs a permutation that has a random order, but there is no permutation from beyond the actual matrix dimension.

ConstructMatrixDFromSDMatrixModuleInterface
ConstructMatrixFromBinaryPSMatrixModuleInterface
ConstructMatrixFromFileSMatrixModuleInterface
ConstructMatrixFromMatrixMarketPSMatrixModuleInterface
ConstructMatrixFromTripletListSMatrixModuleInterface
ConstructMatrixMemoryPoolPMatrixMemoryPoolModuleInterface
ConstructMatrixMemoryPoolMatrixMemoryPoolModuleInterface
ConstructMatrixSFromDDMatrixModuleInterface
ConstructNewProcessGridProcessGridModuleInterface
ConstructPolynomialChebyshevSolversModuleInterface
ConstructPolynomialHermiteSolversModuleInterface
ConstructPolynomialPolynomialSolversModuleInterface
ConstructProcessGridProcessGridModuleInterface
ConstructRandomPermutationPermutationModuleSubroutine

Constructs a permutation that has a random order. Implements Knuth shuffle.

ConstructRankLookupCholeskyModuleSubroutine

Construct a lookup for columns

ConstructReversePermutationPermutationModuleSubroutine

Constructs a permutation that reverses the original order.

ConstructSolverParametersSolverParametersModuleSubroutine

Construct a data type which stores iterative solver parameters.

ConstructTripletListTripletListModuleInterface
ConvertMatrixToComplexPSMatrixModuleSubroutine

Converts the current matrix to a complex type matrix.

ConvertMatrixToRealPSMatrixModuleSubroutine

Converts the current matrix to a real type matrix.

ConvertMatrixTypeSMatrixModuleInterface
ConvertTripletListTypeTripletListModuleInterface
ConvertTripletTypeTripletModuleInterface
CopyMatrixSMatrixModuleInterface
CopyMatrixDMatrixModuleInterface
CopyMatrixPSMatrixModuleInterface
CopyPermutationPermutationModuleSubroutine

Copy one permutation to another in a safe way.

CopyProcessGridProcessGridModuleSubroutine

Copy a process grid. Note that this makes a complete and independent copy of the process grid. Which of course means that whatever is currently stored in new_grid will be destroyed, so do not leave any matrices pointing to it.

CopySolverParametersSolverParametersModuleSubroutine
CopyTripletListTripletListModuleInterface
CosineTrigonometrySolversModuleSubroutine

Compute the cosine of a matrix.

DeactivateLoggerLoggingModuleSubroutine

Deactivate the logger.

DenseCosineTrigonometrySolversModuleSubroutine

Compute the cosine of a matrix. (dense version).

DenseDensityDensityMatrixSolversModuleSubroutine

Compute the density matrix using a dense routine.

DenseInverseSquareRootSquareRootSolversModuleSubroutine

Computes the matrix inverse square root function (dense version).

DenseInvertInverseSolversModuleSubroutine

Compute the inverse of a matrix using the eigendecomposition.

DenseMatrixFunctionEigenSolversModuleSubroutine

Apply an arbitrary matrix function defined by a matrix map as a

DenseSignFunctionSignSolversModuleSubroutine

Computes the matrix sign function (dense version).

DenseSineTrigonometrySolversModuleSubroutine

Compute the sine of a matrix. (dense version).

DenseSquareRootSquareRootSolversModuleSubroutine

Computes the matrix square root function (dense version).

DestructMatrixSMatrixModuleInterface
DestructMatrixDMatrixModuleInterface
DestructMatrixPSMatrixModuleInterface
DestructMatrixMemoryPoolPMatrixMemoryPoolModuleInterface
DestructMatrixMemoryPoolMatrixMemoryPoolModuleInterface
DestructPermutationPermutationModuleSubroutine

Destruct a permutation object.

DestructPolynomialChebyshevSolversModuleInterface
DestructPolynomialHermiteSolversModuleInterface
DestructPolynomialPolynomialSolversModuleInterface
DestructProcessGridProcessGridModuleSubroutine

Destruct a process grid. Be careful about doing this. Matrices have pointers to process grids. If you destruct a process grid without destructing the matrices pointing to it, they will become unusable.

DestructSolverParametersSolverParametersModuleSubroutine

Cleanup the solver parameters datastructure.

DestructTripletListTripletListModuleInterface
DotAllHelperCholeskyModuleInterface
DotAllPivotedCholeskyModuleInterface
DotMatrixSMatrixAlgebraModuleInterface
DotMatrixPSMatrixAlgebraModuleInterface
DotSparseVectorsSVectorModuleInterface
EigenDecompositionEigenSolversModuleSubroutine

Compute the eigendecomposition of a matrix.

EigenDecompositionDMatrixModuleInterface
EnergyDensityMatrixDensityMatrixSolversModuleSubroutine

Compute the energy-weighted density matrix.

EnterSubLogLoggingModuleSubroutine

Call this subroutine when you enter into a section with verbose output

ErrorOccurredErrorModuleFunction

Check if an error has occurred or not.

ExitSubLogLoggingModuleSubroutine

Call this subroutine when you exit a section with verbose output

ExtractMatrixColumnSMatrixModuleInterface
ExtractMatrixRowSMatrixModuleInterface
FactorizedComputeChebyshevSolversModuleInterface
FactorizedComputePolynomialSolversModuleInterface
FillMatrixDensePSMatrixModuleInterface
FillMatrixFromTripletListPSMatrixModuleInterface
FillMatrixIdentityPSMatrixModuleInterface
FillMatrixPermutationPSMatrixModuleInterface
FilterMatrixPSMatrixModuleInterface
GatherMatrixColumnCholeskyModuleInterface
GatherMatrixToProcessPSMatrixModuleInterface
GershgorinBoundsEigenBoundsModuleSubroutine

Compute a bounds on the minimum and maximum eigenvalue of a matrix. Uses the Gershgorin theorem.

GetLoggerLevelLoggingModuleFunction

Get the current logging level

GetMatrixActualDimensionPSMatrixModuleInterface
GetMatrixBlockPSMatrixModuleInterface
GetMatrixColumnsSMatrixModuleInterface
GetMatrixLoadBalancePSMatrixModuleInterface
GetMatrixLogicalDimensionPSMatrixModuleInterface
GetMatrixRowsSMatrixModuleInterface
GetMatrixSizePSMatrixModuleInterface
GetMatrixSlicePSMatrixModuleSubroutine

Copy an arbitrary slice from a matrix into a new smaller matrix. NTPoly only works with square matrices, so if the number of rows and columns is different the matrix is resized to the maximum size.

GetMatrixTripletListPSMatrixModuleInterface
GetMPITripletType_cTripletModuleFunction

Returns an MPI derived data type for a triplet (complex). We statically store this derived type so that we do not have to recreate it every time this function is called. Thus this functional call should add very little overhead.

GetMPITripletType_rTripletModuleFunction

Returns an MPI derived data type for a triplet (Real). We statically store this derived type so that we do not have to recreate it every time this function is called. Thus this functional call should add very little overhead.

GetMyColumnProcessGridModuleFunction

Get the column of the current process.

GetMyRowProcessGridModuleFunction

Get the row of the current process.

GetMySliceProcessGridModuleFunction

Get the slice of the current process.

GetPivotCholeskyModuleInterface
GetTripletAtTripletListModuleInterface
GetTripletListSizeTripletListModuleInterface
GetTripletValuesTripletModuleInterface
HPCPDensityMatrixSolversModuleSubroutine

Compute the density matrix from a Hamiltonian using the HPCP method. Based on the algorithm presented in \cite truflandier2016communication.

IncrementMatrixSMatrixAlgebraModuleInterface
IncrementMatrixDMatrixModuleInterface
IncrementMatrixPSMatrixAlgebraModuleInterface
InverseSquareRootSquareRootSolversModuleSubroutine

Compute the inverse square root of a matrix.

InvertInverseSolversModuleSubroutine

Compute the inverse of a matrix. An implementation of the method of Hotelling \cite palser1998canonical.

IsIdentityPSMatrixModuleFunction

Determine if this is the identity matrix.

IsLoggerActiveLoggingModuleFunction

Check if the logger is currently active

IsRootProcessGridModuleFunction

Check if the current process is the root process.

LowdinExtrapolateGeometryOptimizationModuleSubroutine

Create a new guess at the Density Matrix after updating the geometry. Based on the lowdin algorithm in \cite exner2002comparison .

MapMatrix_pscMatrixMapsModuleSubroutine

Given a distributed matrix, apply this procedure to each element (complex).

MapMatrix_psrMatrixMapsModuleSubroutine

Given a distributed matrix, apply this procedure to each element (real).

MapTripletListMatrixMapsModuleInterface
MatrixColumnNormSMatrixAlgebraModuleInterface
MatrixGrandSumSMatrixAlgebraModuleInterface
MatrixGrandSumPSMatrixAlgebraModuleInterface
MatrixMultiplySMatrixAlgebraModuleInterface
MatrixMultiplyPSMatrixAlgebraModuleInterface
MatrixNormSMatrixAlgebraModuleInterface
MatrixNormDMatrixModuleInterface
MatrixNormPSMatrixAlgebraModuleInterface
MatrixSigmaPSMatrixAlgebraModuleInterface
MatrixToTripletListSMatrixModuleInterface
MatrixTracePSMatrixAlgebraModuleInterface
McWeenyStepDensityMatrixSolversModuleSubroutine

Take one McWeeny Step DOut = 3DSD - 2DSDSD

MergeMatrixLocalBlocksPSMatrixModuleInterface
MultiplyMatrixDMatrixModuleInterface
PairwiseMultiplyMatrixSMatrixAlgebraModuleInterface
PairwiseMultiplyMatrixPSMatrixAlgebraModuleInterface
PairwiseMultiplyVectorsSVectorModuleInterface
ParseMMHeaderMatrixMarketModuleFunction

Parse a matrix market header.

PermuteMatrixLoadBalancerModuleSubroutine

Apply a permutation to a matrix.

PivotedCholeskyDecompositionAnalysisModuleSubroutine

Compute The Pivoted Cholesky Decomposition of a Hermitian Semi-Definite matrix. This is one way to generate localized orbitals.

PMDensityMatrixSolversModuleSubroutine

Compute the density matrix from a Hamiltonian using the PM method. Based on the PM algorithm presented in \cite palser1998canonical

PolarDecompositionSignSolversModuleSubroutine

Computes the polar decomposition of a matrix Mat = U*H.

PowerBoundsEigenBoundsModuleSubroutine

Compute a bounds on the maximum eigenvalue of a matrix. Uses The Power Method.

PrintAllTimersTimerModuleSubroutine

Print out the elapsed time for each timer on this process.

PrintAllTimersDistributedTimerModuleSubroutine

Print out the elapsed time for each timer based on the max value across processes.

PrintErrorErrorModuleSubroutine

Print out that an error has occurred.

PrintMatrixSMatrixModuleInterface
PrintMatrixPSMatrixModuleInterface
PrintMatrixInformationPSMatrixModuleInterface
PrintParametersSolverParametersModuleSubroutine

Print out the iterative solver parameter values.

PrintTimerTimerModuleSubroutine

Print out the elapsed time for a given timer.

PseudoInverseInverseSolversModuleSubroutine

Compute the pseudoinverse of a matrix. An implementation of the method of Hotelling \cite palser1998canonical.

PurificationExtrapolateGeometryOptimizationModuleSubroutine

Create a new guess at the Density Matrix after updating the geometry. Based on the purification algorithm in \cite niklasson2010trace .

RedistributeTripletListsTripletListModuleInterface
ReduceAndComposeMatrixMatrixReduceModuleInterface
ReduceAndComposeMatrixCleanupMatrixReduceModuleInterface
ReduceAndComposeMatrixDataMatrixReduceModuleInterface
ReduceAndComposeMatrixSizesMatrixReduceModuleInterface
ReduceAndSumMatrixMatrixReduceModuleInterface
ReduceAndSumMatrixCleanupMatrixReduceModuleInterface
ReduceAndSumMatrixDataMatrixReduceModuleInterface
ReduceAndSumMatrixSizesMatrixReduceModuleInterface
ReduceDimensionAnalysisModuleSubroutine

When we want to only compute the first n eigenvalues of a matrix, this routine will project out the higher eigenvalues.

RegisterTimerTimerModuleSubroutine

Register a timer with the timer module. Call this before using that timer.

ResizeMatrixPSMatrixModuleSubroutine

Change the size of a matrix. If the new size is smaller, then values outside that range are deleted. IF the new size is bigger, zero padding is applied. Warning: this requires a full data redistribution.

ResizeTripletListTripletListModuleInterface
ScaleAndFoldDensityMatrixSolversModuleSubroutine

Compute the density matrix from a Hamiltonian using the Scale and Fold method. Based on the method of \cite rubensson2011nonmonotonic . Note that for this method, you must provide the value of the homo and lumo gap. It is not necessary for these to be accurate, but give a conservative value.

ScaleMatrixSMatrixAlgebraModuleInterface
ScaleMatrixPSMatrixAlgebraModuleInterface
ScaleSquareTrigonometryTaylorTrigonometrySolversModuleSubroutine

Compute trigonometric functions of a matrix using a taylor series.

SetCoefficientChebyshevSolversModuleInterface
SetCoefficientHermiteSolversModuleInterface
SetCoefficientPolynomialSolversModuleInterface
SetCustomErrorErrorModuleSubroutine
SetGenericErrorErrorModuleSubroutine

Routine to call if a generic error has occurred.

SetInitialOffsetLoggingModuleSubroutine

Set a manual initial offset spacing.

SetLoggerLevelLoggingModuleSubroutine

Set the logging level manually

SetMatrixProcessGridPSMatrixModuleSubroutine

When you want to change the process grid of a matrix, you can call this routine with the new process grid value. Data will be automatically redistributed.

SetParametersBeVerboseSolverParametersModuleSubroutine

Set the value of the verbosity.

SetParametersConvergeDiffSolverParametersModuleSubroutine

Set the value of the convergence difference.

SetParametersLoadBalanceSolverParametersModuleSubroutine

Set the value of the load balance.

SetParametersMaxIterationsSolverParametersModuleSubroutine

Set the value of the max iterations.

SetParametersStepThresholdSolverParametersModuleSubroutine

Set the value of the step threshold.

SetParametersThresholdSolverParametersModuleSubroutine

Set the value of the threshold.

SetPoolSparsityMatrixMemoryPoolModuleInterface
SetTripletTripletModuleInterface
SetTripletAtTripletListModuleInterface
ShiftTripletListTripletListModuleInterface
SignFunctionSignSolversModuleSubroutine

Computes the matrix sign function.

SimilarityTransformPSMatrixAlgebraModuleSubroutine

Transform a matrix B = P * A * P^-1

SineTrigonometrySolversModuleSubroutine

Compute the sine of a matrix.

SingularValueDecompositionSingularValueSolversModuleSubroutine

Compute the singular values and singular vectors of a matrix.

SnapMatrixToSparsityPatternMatrixConversionModuleSubroutine

Some codes use a fixed sparsity pattern for a matrix instead of filtering small values. Using this routine, the matrix is filled to have the same pattern as the second matrix argument. Zeros of the sparsity pattern are left in, whereas values outside the sparsity are removed. This can faciliate conversion between formats.

SortTripletListTripletListModuleInterface
SplitMatrixSMatrixModuleInterface
SplitMatrixDMatrixModuleInterface
SplitMatrixColumnsSMatrixModuleInterface
SplitMatrixToLocalBlocksPSMatrixModuleInterface
SplitProcessGridProcessGridModuleSubroutine

Given a process grid, this splits it into two grids of even size

SquareRootSquareRootSolversModuleSubroutine

Compute the square root of a matrix.

StartTimerTimerModuleSubroutine

Start the clock running for a given timer.

StopTimerTimerModuleSubroutine

Stop the clock for a given timer.

SymmetrizeTripletListTripletListModuleInterface
TestReduceDataRequestMatrixReduceModuleFunction

Test if a request for the data of the matrices is complete.

TestReduceInnerRequestMatrixReduceModuleFunction

Test if a request for the inner indices of the matrices is complete.

TestReduceSizeRequestMatrixReduceModuleFunction

Test if a request for the size of the matrices is complete.

TransposeMatrixSMatrixModuleInterface
TransposeMatrixDMatrixModuleInterface
TransposeMatrixPSMatrixModuleInterface
TRS2DensityMatrixSolversModuleSubroutine

Compute the density matrix from a Hamiltonian using the TRS2 method. Based on the TRS2 algorithm presented in \cite niklasson2002.

TRS4DensityMatrixSolversModuleSubroutine

Compute the density matrix from a Hamiltonian using the TRS4 method. Based on the TRS4 algorithm presented in \cite niklasson2002

UndoPermuteMatrixLoadBalancerModuleSubroutine

Undo a permutation applied to a matrix.

UnpackCholeskyCholeskyModuleInterface
WOM_CFermiOperatorModuleSubroutine

Compute the density matrix according to the wave operator minization

WOM_GCFermiOperatorModuleSubroutine

Compute the density matrix according to the wave operator minization

WriteElementLoggingModuleInterface
WriteHeaderLoggingModuleSubroutine

Write out a header to the log.

WriteListElementLoggingModuleInterface
WriteMatrixToBinaryPSMatrixModuleInterface
WriteMatrixToMatrixMarketPSMatrixModuleInterface
WriteMMLineMatrixMarketModuleInterface
WriteMMLine_fMatrixMarketModuleSubroutine

Write a single line that would correspond to a matrix market entry.

WriteMMLine_ffMatrixMarketModuleSubroutine

Write a single line that would correspond to a matrix market entry.

WriteMMLine_iiMatrixMarketModuleSubroutine

Write a single line that would correspond to a matrix market entry.

WriteMMLine_iifMatrixMarketModuleSubroutine

Write a single line that would correspond to a matrix market entry.

WriteMMLine_iiffMatrixMarketModuleSubroutine

Write a single line that would correspond to a matrix market entry.

WriteMMSizeMatrixMarketModuleSubroutine

Write the line describing the size of the matrix

WriteProcessGridInfoProcessGridModuleSubroutine

Write out some basic information about this process grid to the log.