votca
2026-dev
Loading...
Searching...
No Matches
podcouplingtool.h
Go to the documentation of this file.
1
/*
2
* Copyright 2009-2026 The VOTCA Development Team
3
* (http://www.votca.org)
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License")
6
*
7
* You may not use this file except in compliance with the License.
8
* You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing, software
13
* distributed under the License is distributed on an "AS IS" BASIS,
14
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*
18
*/
19
20
#pragma once
21
#ifndef VOTCA_XTP_PODCOUPLINGTOOL_H
22
#define VOTCA_XTP_PODCOUPLINGTOOL_H
23
24
// Local VOTCA includes
25
#include "
votca/xtp/logger.h
"
26
#include "
votca/xtp/podcoupling.h
"
27
#include "
votca/xtp/qmtool.h
"
28
#include <
votca/tools/types.h
>
29
30
namespace
votca
{
31
namespace
xtp {
32
33
// QMTool wrapping PODCoupling. Unlike Coupling (monomer and dimer outputs)
34
// or Diabatization (adiabatic states), it reads a single converged .orb file
35
// of the supermolecule plus two atom-index fragment definitions.
36
class
PodCouplingTool
final :
public
QMTool
{
37
public
:
38
PodCouplingTool
() =
default
;
39
~PodCouplingTool
() =
default
;
40
41
std::string
Identify
()
const
{
return
"podcoupling"
; }
42
43
protected
:
44
void
ParseOptions
(
const
tools::Property
& user_options)
final
;
45
bool
Run
() final;
46
47
private:
48
std
::
string
orb_file_
;
49
Logger
log_
;
50
51
std
::vector<
Index
>
fragment_A_atoms_
;
52
std
::vector<
Index
>
fragment_B_atoms_
;
53
54
// Range of orbitals to cover for each fragment, matching
55
// DFTcoupling's own numberofstatesA_/numberofstatesB_ convention
56
// exactly (XML option names levA/levB, same as dftcoupling.cc's own
57
// options.get("levA")/("levB")) -- per direct agreement with the
58
// user to mirror DFTcoupling's own established behavior here: BOTH
59
// occupied (hole-transport) and virtual (electron-transport)
60
// orbitals are covered together, in a single call, rather than this
61
// tool's own, earlier, single-orbital-pair-only interface. N=1
62
// covers just each fragment's own {HOMO, LUMO}.
63
Index
numberofstatesA_
;
64
Index
numberofstatesB_
;
65
66
// Optional cube-file export of the fragment orbitals actually
67
// computed (the numberofstatesA_/B_ range above), per direct user
68
// request -- reuses the existing CubeFile_Writer, with its own
69
// steps/padding options matching gencube's own naming
70
// (xsteps/ysteps/zsteps/padding) directly, rather than inventing new
71
// option names for the same underlying quantities.
72
bool
write_cube_files_
;
73
Eigen
::Array<
Index
, 3, 1>
cube_steps_
;
74
double
cube_padding_
;
75
};
76
77
}
// namespace xtp
78
}
// namespace votca
79
80
#endif
// VOTCA_XTP_PODCOUPLINGTOOL_H
votca::tools::Property
class to manage program options with xml serialization functionality
Definition
property.h:55
votca::xtp::Logger
Logger is used for thread-safe output of messages.
Definition
logger.h:164
votca::xtp::PodCouplingTool::Run
bool Run() final
Definition
podcouplingtool.cc:76
votca::xtp::PodCouplingTool::cube_steps_
Eigen::Array< Index, 3, 1 > cube_steps_
Definition
podcouplingtool.h:73
votca::xtp::PodCouplingTool::numberofstatesA_
Index numberofstatesA_
Definition
podcouplingtool.h:63
votca::xtp::PodCouplingTool::~PodCouplingTool
~PodCouplingTool()=default
votca::xtp::PodCouplingTool::write_cube_files_
bool write_cube_files_
Definition
podcouplingtool.h:72
votca::xtp::PodCouplingTool::Identify
std::string Identify() const
Calculator name.
Definition
podcouplingtool.h:41
votca::xtp::PodCouplingTool::fragment_B_atoms_
std::vector< Index > fragment_B_atoms_
Definition
podcouplingtool.h:52
votca::xtp::PodCouplingTool::fragment_A_atoms_
std::vector< Index > fragment_A_atoms_
Definition
podcouplingtool.h:51
votca::xtp::PodCouplingTool::ParseOptions
void ParseOptions(const tools::Property &user_options) final
Definition
podcouplingtool.cc:29
votca::xtp::PodCouplingTool::numberofstatesB_
Index numberofstatesB_
Definition
podcouplingtool.h:64
votca::xtp::PodCouplingTool::orb_file_
std::string orb_file_
Definition
podcouplingtool.h:48
votca::xtp::PodCouplingTool::log_
Logger log_
Definition
podcouplingtool.h:49
votca::xtp::PodCouplingTool::PodCouplingTool
PodCouplingTool()=default
votca::xtp::PodCouplingTool::cube_padding_
double cube_padding_
Definition
podcouplingtool.h:74
votca::xtp::QMTool::QMTool
QMTool()=default
logger.h
Eigen
Definition
density.cc:196
std
STL namespace.
votca
Provides a means for comparing floating point numbers.
Definition
basebead.h:33
votca::Index
Eigen::Index Index
Definition
types.h:26
podcoupling.h
qmtool.h
types.h
xtp
src
libxtp
tools
podcouplingtool.h
Generated by
1.16.1