DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
vectorUtilities.h File Reference
#include <headers.h>
#include <operator.h>

Go to the source code of this file.

Namespaces

namespace  dftfe
 
namespace  dftfe::vectorTools
 Contains generic utils functions related to custom partitioned flattened dealii vector.
 

Functions

void dftfe::vectorTools::createParallelConstraintMatrixFromSerial (const dealii::Triangulation< 3, 3 > &serTria, const dealii::DoFHandler< 3 > &dofHandlerPar, const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain, const std::vector< std::vector< double > > &domainBoundingVectors, dealii::AffineConstraints< double > &periodicHangingConstraints, dealii::AffineConstraints< double > &onlyHangingConstraints, const dftfe::Int verbosity, const bool periodicX, const bool periodicY, const bool periodicZ)
 Create constraint matrix using serial mesh. Temporary fix for a bug (Issue #7053) in deal.ii until it is resolved.
 
template<typename T>
void dftfe::vectorTools::createDealiiVector (const std::shared_ptr< const dealii::Utilities::MPI::Partitioner > &partitioner, const dftfe::uInt blockSize, distributedCPUVec< T > &flattenedArray)
 Creates a custom partitioned flattened dealii vector. stores multiple components asociated with a node sequentially.
 
void dftfe::vectorTools::computeCellLocalIndexSetMap (const std::shared_ptr< const utils::mpi::MPIPatternP2P< dftfe::utils::MemorySpace::HOST > > &partitioner, const dealii::MatrixFree< 3, double > &matrix_free_data, const dftfe::uInt mfDofHandlerIndex, const dftfe::uInt blockSize, std::vector< std::vector< dftfe::uInt > > &flattenedArrayMacroCellLocalProcIndexId, std::vector< std::vector< dftfe::uInt > > &flattenedArrayCellLocalProcIndexId)
 Creates a cell local index set map for flattened array.
 
void dftfe::vectorTools::computeCellLocalIndexSetMap (const std::shared_ptr< const utils::mpi::MPIPatternP2P< dftfe::utils::MemorySpace::HOST > > &partitioner, const dealii::MatrixFree< 3, double > &matrix_free_data, const dftfe::uInt mfDofHandlerIndex, const dftfe::uInt blockSize, std::vector< dftfe::uInt > &flattenedArrayMacroCellLocalProcIndexId, std::vector< dftfe::uInt > &normalCellIdToMacroCellIdMap, std::vector< dftfe::uInt > &macroCellIdToNormalCellIdMap, std::vector< dftfe::uInt > &flattenedArrayCellLocalProcIndexId)
 Creates a cell local index set map for flattened array.
 
void dftfe::vectorTools::computeCellLocalIndexSetMap (const std::shared_ptr< const utils::mpi::MPIPatternP2P< dftfe::utils::MemorySpace::HOST > > &partitioner, const dealii::MatrixFree< 3, double > &matrix_free_data, const dftfe::uInt mfDofHandlerIndex, const dftfe::uInt blockSize, std::vector< dftfe::uInt > &flattenedArrayCellLocalProcIndexId)
 Creates a cell local index set map for flattened array.
 
void dftfe::vectorTools::copyFlattenedSTLVecToSingleCompVec (const double *flattenedArray, const dftfe::uInt totalNumberComponents, const dftfe::uInt localVectorSize, const std::pair< dftfe::uInt, dftfe::uInt > componentIndexRange, std::vector< distributedCPUVec< double > > &componentVectors)
 Copies a single field component from a flattenedArray STL vector containing multiple component fields to a single field parallel distributed vector.
 
void dftfe::vectorTools::copyFlattenedDealiiVecToSingleCompVec (const distributedCPUVec< double > &flattenedArray, const dftfe::uInt totalNumberComponents, const std::pair< dftfe::uInt, dftfe::uInt > componentIndexRange, std::vector< distributedCPUVec< double > > &componentVectors, const bool isFlattenedDealiiGhostValuesUpdated=false)
 Copies a single field component from a flattenedArray parallel distributed vector containing multiple component fields to a single field parallel distributed vector.
 
void dftfe::vectorTools::copySingleCompVecToFlattenedDealiiVec (distributedCPUVec< double > &flattenedArray, const dftfe::uInt totalNumberComponents, const std::pair< dftfe::uInt, dftfe::uInt > componentIndexRange, const std::vector< distributedCPUVec< double > > &componentVectors)
 Copies to a flattenedArray parallel distributed vector containing multiple component fields from a single field parallel distributed vector.
 
void dftfe::vectorTools::copySingleCompVecToFlattenedSTLVec (std::vector< double > &flattenedArray, const dftfe::uInt totalNumberComponents, const std::pair< dftfe::uInt, dftfe::uInt > componentIndexRange, const std::vector< distributedCPUVec< double > > &componentVectors)
 Copies to a flattenedArray stl vector containing multiple component fields from a single field parallel distributed vector.
 
std::pair< dealii::Point< 3 >, dealii::Point< 3 > > dftfe::vectorTools::createBoundingBoxTriaLocallyOwned (const dealii::DoFHandler< 3 > &dofHandler)
 
void dftfe::vectorTools::classifyInteriorSurfaceNodesInCell (const dealii::MatrixFree< 3, double > &matrix_free_data, const dftfe::uInt mfDofHandlerIndex, std::vector< dftfe::uInt > &nodesPerCellClassificationMap)
 
void dftfe::vectorTools::classifyInteriorSurfaceNodesInGlobalArray (const dealii::MatrixFree< 3, double > &matrix_free_data, const dftfe::uInt mfDofHandlerIndex, const dealii::AffineConstraints< double > &constraintMatrix, std::vector< dftfe::uInt > &nodesPerCellClassificationMap, std::vector< dftfe::uInt > &globalArrayClassificationMap)