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
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.

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
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.

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
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.

CosineTrigonometrySolversModuleSubroutine

Compute the cosine of a matrix.

DeactivateLoggerLoggingModuleSubroutine

Deactivate the logger.

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
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
FillMatrixFromTripletListPSMatrixModuleInterface
FillMatrixIdentityPSMatrixModuleInterface
FillMatrixPermutationPSMatrixModuleInterface
FilterMatrixPSMatrixModuleInterface
GatherMatrixColumnCholeskyModuleInterface
GatherMatrixToProcessPSMatrixModuleInterface
GershgorinBoundsEigenBoundsModuleSubroutine

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

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. 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. 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.

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
Matrix_ldcDMatrixModuleInterface
Matrix_ldrDMatrixModuleInterface
Matrix_lscSMatrixModuleInterface
Matrix_lsrSMatrixModuleInterface
MatrixColumnNormSMatrixAlgebraModuleInterface
MatrixGrandSumSMatrixAlgebraModuleInterface
MatrixGrandSumPSMatrixAlgebraModuleInterface
MatrixMemoryPool_lcMatrixMemoryPoolModuleInterface
MatrixMemoryPool_lrMatrixMemoryPoolModuleInterface
MatrixMemoryPool_pPMatrixMemoryPoolModuleInterface
MatrixMultiplySMatrixAlgebraModuleInterface
MatrixMultiplyPSMatrixAlgebraModuleInterface
MatrixNormSMatrixAlgebraModuleInterface
MatrixNormDMatrixModuleInterface
MatrixNormPSMatrixAlgebraModuleInterface
MatrixSigmaPSMatrixAlgebraModuleInterface
MatrixToTripletListSMatrixModuleInterface
MatrixTracePSMatrixAlgebraModuleInterface
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
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
SetGenericErrorErrorModuleSubroutine

Routine to call if a generic error has occurred.

SetInitialOffsetLoggingModuleSubroutine

Set a manual initial offset spacing.

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.

SetParametersThresholdSolverParametersModuleSubroutine

Set the value of the threshold.

SetPoolSparsityMatrixMemoryPoolModuleInterface
SetTripletTripletModuleInterface
SetTripletAtTripletListModuleInterface
ShiftTripletListTripletListModuleInterface
SignFunctionSignSolversModuleSubroutine

Computes the matrix sign function.

SineTrigonometrySolversModuleSubroutine

Compute the sine 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.

SolverParameters_tSolverParametersModuleInterface
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
TripletList_cTripletListModuleInterface
TripletList_rTripletListModuleInterface
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
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