DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
|
density symmetrization based on irreducible Brillouin zone calculation, only relevant for calculations using point group symmetries More...
#include <symmetry.h>
Public Member Functions | |
symmetryClass (dftClass< FEOrder, FEOrderElectro, memorySpace > *_dftPtr, const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain, const MPI_Comm &_interpoolcomm) | |
void | initSymmetry () |
void | computeAndSymmetrize_rhoOut () |
void | computeLocalrhoOut () |
void | clearMaps () |
dealii::Point< 3 > | crys2cart (dealii::Point< 3 > p, int flag) |
Private Attributes | |
dftClass< FEOrder, FEOrderElectro, memorySpace > * | dftPtr |
dealii::FE_Q< 3 > | FE |
dealii::TimerOutput | computing_timer |
const MPI_Comm | d_mpiCommParent |
const MPI_Comm | mpi_communicator |
const MPI_Comm | interpoolcomm |
const unsigned int | n_mpi_processes |
const unsigned int | this_mpi_process |
dealii::ConditionalOStream | pcout |
std::vector< std::vector< std::vector< double > > > | symmMat |
unsigned int | numSymm |
double | translation [500][3] |
std::vector< std::vector< int > > | symmUnderGroup |
std::vector< int > | numSymmUnderGroup |
std::map< dealii::CellId, std::vector< std::tuple< int, std::vector< double >, int > > > | cellMapTable |
std::vector< std::vector< std::vector< std::tuple< int, int, int > > > > | mappedGroup |
std::map< int, typename dealii::DoFHandler< 3 >::active_cell_iterator > | dealIICellId |
std::map< dealii::CellId, int > | globalCellId |
std::vector< int > | ownerProcGlobal |
std::vector< std::vector< std::vector< std::vector< int > > > > | mappedGroupSend0 |
std::vector< std::vector< std::vector< std::vector< int > > > > | mappedGroupSend2 |
std::vector< std::vector< std::vector< std::vector< std::vector< double > > > > > | mappedGroupSend1 |
std::vector< std::vector< std::vector< int > > > | mappedGroupRecvd0 |
std::vector< std::vector< std::vector< int > > > | mappedGroupRecvd2 |
std::vector< std::vector< std::vector< std::vector< double > > > > | mappedGroupRecvd1 |
std::vector< std::vector< std::vector< std::vector< int > > > > | send_buf_size |
std::vector< std::vector< std::vector< std::vector< int > > > > | recv_buf_size |
std::vector< std::vector< std::vector< std::vector< double > > > > | rhoRecvd |
std::vector< std::vector< std::vector< std::vector< double > > > > | gradRhoRecvd |
std::vector< std::vector< std::vector< std::vector< int > > > > | groupOffsets |
unsigned int | totPoints |
std::vector< int > | mpi_scatter_offset |
std::vector< int > | send_scatter_size |
std::vector< int > | recv_size |
std::vector< int > | mpi_scatterGrad_offset |
std::vector< int > | send_scatterGrad_size |
std::vector< int > | mpi_offsets0 |
std::vector< int > | mpi_offsets1 |
std::vector< int > | mpiGrad_offsets1 |
std::vector< int > | recvdData0 |
std::vector< int > | recvdData2 |
std::vector< int > | recvdData3 |
std::vector< std::vector< double > > | recvdData1 |
std::vector< int > | recv_size0 |
std::vector< int > | recv_size1 |
std::vector< int > | recvGrad_size1 |
Friends | |
class | dftClass< FEOrder, FEOrderElectro, memorySpace > |
density symmetrization based on irreducible Brillouin zone calculation, only relevant for calculations using point group symmetries
dftfe::symmetryClass< FEOrder, FEOrderElectro, memorySpace >::symmetryClass | ( | dftClass< FEOrder, FEOrderElectro, memorySpace > * | _dftPtr, |
const MPI_Comm & | mpi_comm_parent, | ||
const MPI_Comm & | mpi_comm_domain, | ||
const MPI_Comm & | _interpoolcomm ) |
symmetryClass constructor
void dftfe::symmetryClass< FEOrder, FEOrderElectro, memorySpace >::clearMaps | ( | ) |
Wipes out mapping tables between relaxation steps
void dftfe::symmetryClass< FEOrder, FEOrderElectro, memorySpace >::computeAndSymmetrize_rhoOut | ( | ) |
computes total density by summing over all the symmetry transformed points
void dftfe::symmetryClass< FEOrder, FEOrderElectro, memorySpace >::computeLocalrhoOut | ( | ) |
computes density at all the transformed points received from other processors and scatters the density back to the corresponding processors
dealii::Point< 3 > dftfe::symmetryClass< FEOrder, FEOrderElectro, memorySpace >::crys2cart | ( | dealii::Point< 3 > | p, |
int | flag ) |
quick snippet to go back and forth between crystal and cartesian coordinates
[in] | p | point that is to be transformed |
[in] | flag | type of coordinate transformation, 1 takes crys. to cart. -1 takes cart. to crys. |
void dftfe::symmetryClass< FEOrder, FEOrderElectro, memorySpace >::initSymmetry | ( | ) |
Main driver routine to generate and communicate mapping tables
|
friend |
|
private |
Data members required for storing mapping tables locally
|
private |
compute-time logger
|
private |
parallel objects
|
private |
|
private |
|
private |
dealii based FE data structres
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Data members required for communicating mapping tables
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Space group symmetry related data
|
private |
|
private |
|
private |
Data sizes and offsets required for MPI scattering and gathering of mapping tables and symmetrized density They have to be data members since the same sizes and offsets are used in both communication mapping tables and symmetrized density
|
private |