Procedures

ProcedureLocationProcedure TypeDescription
AccumulateTripletListTripletListModuleInterface
AccumulateTripletList_cTripletListModuleSubroutine

(Just for a related project)

AccumulateTripletList_rTripletListModuleSubroutine

(Just for a related project)

ActivateLoggerLoggingModuleSubroutine

Activate the logger.

AddSparseVectorsSVectorModuleInterface
AppendToTripletListTripletListModuleInterface
AppendToTripletList_cTripletListModuleSubroutine

Add a value to the end of the triplet list.

AppendToTripletList_rTripletListModuleSubroutine

Add a value to the end of the triplet list.

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

Construct a triplet list.

ConstructTripletList_rTripletListModuleFunction

Construct a triplet list.

ConstructTripletListSup_cTripletListModuleSubroutine

Subroutine wrapper for constructing a triplet list.

ConstructTripletListSup_rTripletListModuleSubroutine

Subroutine wrapper for constructing a triplet list.

ConvertMatrixToComplexPSMatrixModuleSubroutine

Converts the current matrix to a complex type matrix.

ConvertMatrixToRealPSMatrixModuleSubroutine

Converts the current matrix to a real type matrix.

ConvertMatrixTypeSMatrixModuleInterface
ConvertTripletListToComplexTripletListModuleSubroutine

Convert a real triplet to a complex triplet list.

ConvertTripletListToRealTripletListModuleSubroutine

Convert a complex triplet list to a real triplet list.

ConvertTripletListTypeTripletListModuleInterface
ConvertTripletTypeTripletModuleInterface
CopyMatrixSMatrixModuleInterface
CopyMatrixDMatrixModuleInterface
CopyMatrixPSMatrixModuleInterface
CopyProcessGridProcessGridModuleSubroutine

Copy a process grid.

CosineTrigonometrySolversModuleSubroutine

Compute the cosine of a matrix.

DeactivateLoggerLoggingModuleSubroutine

Deactivate the logger.

DenseSolverDensityMatrixSolversModuleSubroutine

Compute the density matrix of a system using the eigendecomposition.

DestructMatrixSMatrixModuleInterface
DestructMatrixDMatrixModuleInterface
DestructMatrixPSMatrixModuleInterface
DestructMatrixMemoryPoolPMatrixMemoryPoolModuleInterface
DestructMatrixMemoryPoolMatrixMemoryPoolModuleInterface
DestructPermutationPermutationModuleSubroutine

Destruct a permutation object.

DestructPolynomialChebyshevSolversModuleInterface
DestructPolynomialHermiteSolversModuleInterface
DestructPolynomialPolynomialSolversModuleInterface
DestructProcessGridProcessGridModuleSubroutine

Destruct a process grid.

DestructSolverParametersSolverParametersModuleSubroutine

Cleanup the solver parameters datastructure.

DestructTripletListTripletListModuleInterface
DestructTripletList_cTripletListModuleSubroutine

Destructs a triplet list.

DestructTripletList_rTripletListModuleSubroutine

Destructs a triplet list.

DotAllHelperCholeskyModuleInterface
DotAllPivotedCholeskyModuleInterface
DotMatrixSMatrixAlgebraModuleInterface
DotMatrixPSMatrixAlgebraModuleInterface
DotSparseVectorsSVectorModuleInterface
EigenDecompositionDMatrixModuleInterface
EnergyDensityMatrixDensityMatrixSolversModuleSubroutine

Compute the energy-weighted density matrix.

EnterSubLogLoggingModuleSubroutine

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

Error_tErrorModuleInterface
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
GershgorinBoundsEigenBoundsModuleSubroutine

Compute a bounds on the minimum and maximum eigenvalue of a matrix. Uses Gershgorin's 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 don't 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 don't 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
GetTripletAt_cTripletListModuleSubroutine

Get the value of a triplet at a particular index.

GetTripletAt_rTripletListModuleSubroutine

Get the value of a triplet at a particular index.

GetTripletListSizeTripletListModuleInterface
GetTripletListSize_cTripletListModuleFunction

Get the number of entries in a triplet list.

GetTripletListSize_rTripletListModuleFunction

Get the number of entries in a triplet list.

GetTripletValuesTripletModuleInterface
HPCPDensityMatrixSolversModuleSubroutine

Compute the density matrix from a Hamiltonian using the HPCP method.

IncrementMatrixSMatrixAlgebraModuleInterface
IncrementMatrixDMatrixModuleInterface
IncrementMatrixPSMatrixAlgebraModuleInterface
InverseSquareRootSquareRootSolversModuleSubroutine

Compute the inverse square root of a matrix.

InvertInverseSolversModuleSubroutine

Compute the inverse of a matrix. An implementation of Hotelling's method \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.

PivotedCholeskyDecompositionLinearSolversModuleSubroutine

Compute The Pivoted Cholesky Decomposition of a Hermitian Semi-Definite matrix. Pass it the target rank of the matrix.

PMDensityMatrixSolversModuleSubroutine

Compute the density matrix from a Hamiltonian using the PM method.

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 Hotelling's method \cite palser1998canonical.

PurificationExtrapolateGeometryOptimizationModuleSubroutine

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

RedistributeTripletListsTripletListModuleInterface
RedistributeTripletLists_cTripletListModuleSubroutine

Redistribute some triplet lists amongst a set of processors. Takes in a list of triplet lists, one list for each processor. Then the all to all redistribution is performed along the given communicator.

RedistributeTripletLists_rTripletListModuleSubroutine

Redistribute some triplet lists amongst a set of processors. Takes in a list of triplet lists, one list for each processor. Then the all to all redistribution is performed along the given communicator.

ReduceAndComposeMatrixCleanupMatrixReduceModuleInterface
ReduceAndComposeMatrixDataMatrixReduceModuleInterface
ReduceAndComposeMatrixSizesMatrixReduceModuleInterface
ReduceAndSumMatrixCleanupMatrixReduceModuleInterface
ReduceAndSumMatrixDataMatrixReduceModuleInterface
ReduceAndSumMatrixSizesMatrixReduceModuleInterface
ReferenceEigenDecompositionEigenSolversModuleSubroutine

This routine uses a dense eigensolver for reference purposes.

RegisterTimerTimerModuleSubroutine

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

ResizeMatrixPSMatrixModuleSubroutine

Change the size of a matrix.

ResizeTripletListTripletListModuleInterface
ResizeTripletList_cTripletListModuleSubroutine

Increase the size of a triplet list.

ResizeTripletList_rTripletListModuleSubroutine

Increase the size of a triplet list.

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.

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.

SetParametersDACBaseSizeSolverParametersModuleSubroutine

Set the value of the divide and conquer base size.

SetParametersDACBaseSparsitySolverParametersModuleSubroutine

Set the value of the divide and conquer base sparsity.

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
SetTripletAt_cTripletListModuleSubroutine

Set the value of a triplet at a particular index.

SetTripletAt_rTripletListModuleSubroutine

Set the value of a triplet at a particular index.

ShiftTripletListTripletListModuleInterface
ShiftTripletList_cTripletListModuleSubroutine

Shift the rows and columns of a triplet list by set values. Frequently, we have a triplet list that comes from the global matrix which we would like to shift into a local matrix. In that case, just pass the negative of the starting row and column (plus 1) to this routine.

ShiftTripletList_rTripletListModuleSubroutine

Shift the rows and columns of a triplet list by set values. Frequently, we have a triplet list that comes from the global matrix which we would like to shift into a local matrix. In that case, just pass the negative of the starting row and column (plus 1) to this routine.

SignFunctionSignSolversModuleSubroutine

Computes the matrix sign function.

SineTrigonometrySolversModuleSubroutine

Compute the sine of a matrix.

SolverParameters_tSolverParametersModuleInterface
SortDenseTripletListTripletListModuleInterface
SortDenseTripletList_cTripletListModuleSubroutine

Sort a triplet list assuming that the matrix it corresponds to is nearly dense.

SortDenseTripletList_rTripletListModuleSubroutine

Sort a triplet list assuming that the matrix it corresponds to is nearly dense.

SortTripletListTripletListModuleInterface
SortTripletList_cTripletListModuleSubroutine

Sorts a triplet list by index values. Implementation is based on bucket sort. This is why it needs the number of matrix columns. Bubble sort is used within a bucket.

SortTripletList_rTripletListModuleSubroutine

Sorts a triplet list by index values. Implementation is based on bucket sort. This is why it needs the number of matrix columns. Bubble sort is used within a bucket.

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
SymmetrizeTripletList_cTripletListModuleSubroutine

Symmetrizes an unsymmetric triplet list according to the specified symmetry type.

SymmetrizeTripletList_rTripletListModuleSubroutine

Symmetrizes an unsymmetric triplet list according to the specified symmetry type.

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.

TRS4DensityMatrixSolversModuleSubroutine

Compute the density matrix from a Hamiltonian using the TRS4 method.

UndoPermuteMatrixLoadBalancerModuleSubroutine

Undo a permutation applied to a matrix.

UnpackCholeskyCholeskyModuleInterface
WriteCitationLoggingModuleSubroutine

Write out a citation element.

WriteElementLoggingModuleInterface
WriteHeaderLoggingModuleSubroutine

Write out a header to the log.

WriteListElementLoggingModuleInterface
WriteMatrixToBinaryPSMatrixModuleInterface
WriteMatrixToMatrixMarketPSMatrixModuleInterface