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 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 unsigned int 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 unsigned int mfDofHandlerIndex, const unsigned int blockSize, std::vector< std::vector< dealii::types::global_dof_index > > &flattenedArrayMacroCellLocalProcIndexId, std::vector< std::vector< dealii::types::global_dof_index > > &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 unsigned int mfDofHandlerIndex, const unsigned int blockSize, std::vector< dealii::types::global_dof_index > &flattenedArrayMacroCellLocalProcIndexId, std::vector< unsigned int > &normalCellIdToMacroCellIdMap, std::vector< unsigned int > &macroCellIdToNormalCellIdMap, std::vector< dealii::types::global_dof_index > &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 unsigned int mfDofHandlerIndex, const unsigned int blockSize, std::vector< dealii::types::global_dof_index > &flattenedArrayCellLocalProcIndexId)
 Creates a cell local index set map for flattened array.
 
void dftfe::vectorTools::copyFlattenedSTLVecToSingleCompVec (const double *flattenedArray, const unsigned int totalNumberComponents, const unsigned int localVectorSize, const std::pair< unsigned int, unsigned int > 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 unsigned int totalNumberComponents, const std::pair< unsigned int, unsigned int > 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 unsigned int totalNumberComponents, const std::pair< unsigned int, unsigned int > 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 unsigned int totalNumberComponents, const std::pair< unsigned int, unsigned int > 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 unsigned int mfDofHandlerIndex, std::vector< unsigned int > &nodesPerCellClassificationMap)
 
void dftfe::vectorTools::classifyInteriorSurfaceNodesInGlobalArray (const dealii::MatrixFree< 3, double > &matrix_free_data, const unsigned int mfDofHandlerIndex, const dealii::AffineConstraints< double > &constraintMatrix, std::vector< unsigned int > &nodesPerCellClassificationMap, std::vector< unsigned int > &globalArrayClassificationMap)