DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
elpaScalaManager.h
Go to the documentation of this file.
1//
2// -------------------------------------------------------------------------------------
3//
4// Copyright (c) 2017-2025 The Regents of the University of Michigan and DFT-FE
5// authors.
6//
7// This file is part of the DFT-FE code.
8//
9// The DFT-FE code is free software; you can use it, redistribute
10// it, and/or modify it under the terms of the GNU Lesser General
11// Public License as published by the Free Software Foundation; either
12// version 2.1 of the License, or (at your option) any later version.
13// The full text of the license can be found in the file LICENSE at
14// the top level of the DFT-FE distribution.
15//
16// --------------------------------------------------------------------------------------
17//
18// @author Sambit Das
19//
20#ifndef elpaScalaManager_h
21#define elpaScalaManager_h
22
23#include "headers.h"
24#include "process_grid.h"
25#include "dftParameters.h"
26
27#include <vector>
28#include <elpa/elpa.h>
29
30namespace dftfe
31{
32 /**
33 * @brief Manager class for ELPA and ScaLAPACK
34 *
35 * @author Sambit Das
36 */
38 {
39 //
40 // methods
41 //
42 public:
43 unsigned int
45
46 std::shared_ptr<const dftfe::ProcessGrid>
48
49 void
50 processGridELPASetup(const unsigned int na, const dftParameters &dftParams);
51 void
53
54 elpa_t &
56
57 elpa_t &
59
60 elpa_autotune_t &
62
63
64 /**
65 * @brief Get relevant mpi communicator
66 *
67 * @return mpi communicator
68 */
69 const MPI_Comm &
71
72
73 /**
74 * @brief Constructor.
75 */
76 elpaScalaManager(const MPI_Comm &mpi_comm_replica);
77
78 /**
79 * @brief Destructor.
80 */
82
83 //
84 // mpi communicator
85 //
87
88 /// ELPA handle
90
91 /// ELPA handle for partial eigenvectors of full proj ham
93
94 /// ELPA autotune handle
95 elpa_autotune_t d_elpaAutoTuneHandle;
96
97 /// processGrid mpi communicator
99
101
102
103 /// ScaLAPACK distributed format block size
105
106 std::shared_ptr<const dftfe::ProcessGrid> d_processGridDftfeWrapper;
107 };
108
109 /*--------------------- Inline functions --------------------------------*/
110
111#ifndef DOXYGEN
112 inline unsigned int
117
118 inline std::shared_ptr<const dftfe::ProcessGrid>
123
124 inline elpa_t &
129
130 inline elpa_t &
135
136
137 inline elpa_autotune_t &
142#endif // ifndef DOXYGEN
143
144} // namespace dftfe
145#endif
Namespace which declares the input parameters and the functions to parse them from the input paramete...
Definition dftParameters.h:35
std::shared_ptr< const dftfe::ProcessGrid > getProcessGridDftfeScalaWrapper() const
Definition elpaScalaManager.h:119
elpaScalaManager(const MPI_Comm &mpi_comm_replica)
Constructor.
elpa_t d_elpaHandle
ELPA handle.
Definition elpaScalaManager.h:89
elpa_autotune_t & getElpaAutoTuneHandle()
Definition elpaScalaManager.h:138
elpa_t d_elpaHandlePartialEigenVec
ELPA handle for partial eigenvectors of full proj ham.
Definition elpaScalaManager.h:92
void elpaDeallocateHandles(const dftParameters &dftParams)
MPI_Comm d_processGridCommunicatorActivePartial
Definition elpaScalaManager.h:100
unsigned int getScalapackBlockSize() const
Definition elpaScalaManager.h:113
unsigned int d_scalapackBlockSize
ScaLAPACK distributed format block size.
Definition elpaScalaManager.h:104
MPI_Comm d_mpi_communicator
Definition elpaScalaManager.h:86
const MPI_Comm & getMPICommunicator() const
Get relevant mpi communicator.
elpa_t & getElpaHandlePartialEigenVec()
Definition elpaScalaManager.h:131
elpa_autotune_t d_elpaAutoTuneHandle
ELPA autotune handle.
Definition elpaScalaManager.h:95
void processGridELPASetup(const unsigned int na, const dftParameters &dftParams)
elpa_t & getElpaHandle()
Definition elpaScalaManager.h:125
std::shared_ptr< const dftfe::ProcessGrid > d_processGridDftfeWrapper
Definition elpaScalaManager.h:106
~elpaScalaManager()
Destructor.
MPI_Comm d_processGridCommunicatorActive
processGrid mpi communicator
Definition elpaScalaManager.h:98
Definition pseudoPotentialToDftfeConverter.cc:34