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
// Standalone tool wrapping PODCoupling -- direct, low-risk first piece
34
// of the calculator integration discussed with the user, matching the
35
// established QMTool pattern (Coupling, Diabatization) rather than
36
// either of those tools' own, structurally different input shapes:
37
// unlike Coupling (three separate quantum-chemistry outputs: two
38
// monomers + a dimer) or Diabatization (one or two ADIABATIC states,
39
// with a state_idx each), this tool consumes a SINGLE, already-
40
// converged .orb file for the intact supermolecule, plus two explicit
41
// atom-index fragment definitions -- matching PODCoupling's own,
42
// genuinely different input shape directly rather than forcing it
43
// into either existing tool's own convention.
44
class
PodCouplingTool
final :
public
QMTool
{
45
public
:
46
PodCouplingTool
() =
default
;
47
~PodCouplingTool
() =
default
;
48
49
std::string
Identify
()
const
{
return
"podcoupling"
; }
50
51
protected
:
52
void
ParseOptions
(
const
tools::Property
& user_options)
final
;
53
bool
Run
() final;
54
55
private:
56
std
::
string
orb_file_
;
57
Logger
log_
;
58
59
std
::vector<
Index
>
fragment_A_atoms_
;
60
std
::vector<
Index
>
fragment_B_atoms_
;
61
62
// Range of orbitals to cover for each fragment, matching
63
// DFTcoupling's own numberofstatesA_/numberofstatesB_ convention
64
// exactly (XML option names levA/levB, same as dftcoupling.cc's own
65
// options.get("levA")/("levB")) -- per direct agreement with the
66
// user to mirror DFTcoupling's own established behavior here: BOTH
67
// occupied (hole-transport) and virtual (electron-transport)
68
// orbitals are covered together, in a single call, rather than this
69
// tool's own, earlier, single-orbital-pair-only interface. N=1
70
// covers just each fragment's own {HOMO, LUMO}.
71
Index
numberofstatesA_
;
72
Index
numberofstatesB_
;
73
74
// Optional cube-file export of the fragment orbitals actually
75
// computed (the numberofstatesA_/B_ range above), per direct user
76
// request -- reuses the existing CubeFile_Writer, with its own
77
// steps/padding options matching gencube's own naming
78
// (xsteps/ysteps/zsteps/padding) directly, rather than inventing new
79
// option names for the same underlying quantities.
80
bool
write_cube_files_
;
81
Eigen
::Array<
Index
, 3, 1>
cube_steps_
;
82
double
cube_padding_
;
83
};
84
85
}
// namespace xtp
86
}
// namespace votca
87
88
#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:90
votca::xtp::PodCouplingTool::cube_steps_
Eigen::Array< Index, 3, 1 > cube_steps_
Definition
podcouplingtool.h:81
votca::xtp::PodCouplingTool::numberofstatesA_
Index numberofstatesA_
Definition
podcouplingtool.h:71
votca::xtp::PodCouplingTool::~PodCouplingTool
~PodCouplingTool()=default
votca::xtp::PodCouplingTool::write_cube_files_
bool write_cube_files_
Definition
podcouplingtool.h:80
votca::xtp::PodCouplingTool::Identify
std::string Identify() const
Calculator name.
Definition
podcouplingtool.h:49
votca::xtp::PodCouplingTool::fragment_B_atoms_
std::vector< Index > fragment_B_atoms_
Definition
podcouplingtool.h:60
votca::xtp::PodCouplingTool::fragment_A_atoms_
std::vector< Index > fragment_A_atoms_
Definition
podcouplingtool.h:59
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:72
votca::xtp::PodCouplingTool::orb_file_
std::string orb_file_
Definition
podcouplingtool.h:56
votca::xtp::PodCouplingTool::log_
Logger log_
Definition
podcouplingtool.h:57
votca::xtp::PodCouplingTool::PodCouplingTool
PodCouplingTool()=default
votca::xtp::PodCouplingTool::cube_padding_
double cube_padding_
Definition
podcouplingtool.h:82
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