votca 2026-dev
Loading...
Searching...
No Matches
votca::xtp::EwaldPeriodicDipoleOperator Class Reference

#include <ewaldperiodicdipoleoperator.h>

Inheritance diagram for votca::xtp::EwaldPeriodicDipoleOperator:
Collaboration diagram for votca::xtp::EwaldPeriodicDipoleOperator:

Classes

struct  RawMultiplyTimings
class  InnerIterator

Public Types

enum  { ColsAtCompileTime = Eigen::Dynamic , MaxColsAtCompileTime = Eigen::Dynamic , IsRowMajor = false }
using Scalar = double
using RealScalar = double
using StorageIndex = votca::Index

Public Member Functions

 EwaldPeriodicDipoleOperator (EwaldRegistry &registry, const EwaldRealSpaceSum &real_sum, const EwaldReciprocalSpaceSum &recip_sum, const EwaldShapeCorrection &shape, std::vector< Index > ids, double alpha_ewald, double thole_a)
const RawMultiplyTimings & Timings () const
Index rows () const
Index cols () const
Index outerSize () const
template<typename Vtype>
Eigen::Product< EwaldPeriodicDipoleOperator, Vtype, Eigen::AliasFreeProduct > operator* (const Eigen::MatrixBase< Vtype > &x) const
double operator() (Index i, Index j) const
Eigen::VectorXd multiply (const Eigen::VectorXd &v) const

Private Member Functions

Eigen::VectorXd RawMultiply (const Eigen::VectorXd &v) const
void AddIntraSegmentCoupling (const Eigen::VectorXd &v, Eigen::VectorXd &result) const
std::pair< Index, Index > LocateSite (Index i) const

Private Attributes

EwaldRegistry & registry_
const EwaldRealSpaceSum & real_sum_
const EwaldReciprocalSpaceSum & recip_sum_
const EwaldShapeCorrection & shape_
std::vector< Index > ids_
EwaldRealSpaceInteractor intra_interactor_
std::vector< Index > offsets_
Index size_
Eigen::VectorXd baseline_
RawMultiplyTimings timings_
Eigen::Matrix3d self_field_matrix_

Detailed Description

Definition at line 321 of file ewaldperiodicdipoleoperator.h.

Member Typedef Documentation

◆ RealScalar

◆ Scalar

◆ StorageIndex

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
ColsAtCompileTime 
MaxColsAtCompileTime 
IsRowMajor 

Definition at line 328 of file ewaldperiodicdipoleoperator.h.

Constructor & Destructor Documentation

◆ EwaldPeriodicDipoleOperator()

votca::xtp::EwaldPeriodicDipoleOperator::EwaldPeriodicDipoleOperator ( EwaldRegistry & registry,
const EwaldRealSpaceSum & real_sum,
const EwaldReciprocalSpaceSum & recip_sum,
const EwaldShapeCorrection & shape,
std::vector< Index > ids,
double alpha_ewald,
double thole_a )

Definition at line 33 of file ewaldperiodicdipoleoperator.cc.

Member Function Documentation

◆ AddIntraSegmentCoupling()

void votca::xtp::EwaldPeriodicDipoleOperator::AddIntraSegmentCoupling ( const Eigen::VectorXd & v,
Eigen::VectorXd & result ) const
private

Definition at line 276 of file ewaldperiodicdipoleoperator.cc.

◆ cols()

Index votca::xtp::EwaldPeriodicDipoleOperator::cols ( ) const
inline

Definition at line 417 of file ewaldperiodicdipoleoperator.h.

◆ LocateSite()

std::pair< Index, Index > votca::xtp::EwaldPeriodicDipoleOperator::LocateSite ( Index i) const
private

Definition at line 93 of file ewaldperiodicdipoleoperator.cc.

◆ multiply()

Eigen::VectorXd votca::xtp::EwaldPeriodicDipoleOperator::multiply ( const Eigen::VectorXd & v) const

Definition at line 369 of file ewaldperiodicdipoleoperator.cc.

◆ operator()()

double votca::xtp::EwaldPeriodicDipoleOperator::operator() ( Index i,
Index j ) const

Definition at line 102 of file ewaldperiodicdipoleoperator.cc.

◆ operator*()

template<typename Vtype>
Eigen::Product< EwaldPeriodicDipoleOperator, Vtype, Eigen::AliasFreeProduct > votca::xtp::EwaldPeriodicDipoleOperator::operator* ( const Eigen::MatrixBase< Vtype > & x) const
inline

Definition at line 422 of file ewaldperiodicdipoleoperator.h.

◆ outerSize()

Index votca::xtp::EwaldPeriodicDipoleOperator::outerSize ( ) const
inline

Definition at line 418 of file ewaldperiodicdipoleoperator.h.

◆ RawMultiply()

Eigen::VectorXd votca::xtp::EwaldPeriodicDipoleOperator::RawMultiply ( const Eigen::VectorXd & v) const
private

Definition at line 120 of file ewaldperiodicdipoleoperator.cc.

◆ rows()

Index votca::xtp::EwaldPeriodicDipoleOperator::rows ( ) const
inline

Definition at line 416 of file ewaldperiodicdipoleoperator.h.

◆ Timings()

const RawMultiplyTimings & votca::xtp::EwaldPeriodicDipoleOperator::Timings ( ) const
inline

Definition at line 393 of file ewaldperiodicdipoleoperator.h.

Member Data Documentation

◆ baseline_

Eigen::VectorXd votca::xtp::EwaldPeriodicDipoleOperator::baseline_
private

Definition at line 478 of file ewaldperiodicdipoleoperator.h.

◆ ids_

std::vector<Index> votca::xtp::EwaldPeriodicDipoleOperator::ids_
private

Definition at line 464 of file ewaldperiodicdipoleoperator.h.

◆ intra_interactor_

EwaldRealSpaceInteractor votca::xtp::EwaldPeriodicDipoleOperator::intra_interactor_
private

Definition at line 471 of file ewaldperiodicdipoleoperator.h.

◆ offsets_

std::vector<Index> votca::xtp::EwaldPeriodicDipoleOperator::offsets_
private

Definition at line 476 of file ewaldperiodicdipoleoperator.h.

◆ real_sum_

const EwaldRealSpaceSum& votca::xtp::EwaldPeriodicDipoleOperator::real_sum_
private

Definition at line 461 of file ewaldperiodicdipoleoperator.h.

◆ recip_sum_

const EwaldReciprocalSpaceSum& votca::xtp::EwaldPeriodicDipoleOperator::recip_sum_
private

Definition at line 462 of file ewaldperiodicdipoleoperator.h.

◆ registry_

EwaldRegistry& votca::xtp::EwaldPeriodicDipoleOperator::registry_
private

Definition at line 460 of file ewaldperiodicdipoleoperator.h.

◆ self_field_matrix_

Eigen::Matrix3d votca::xtp::EwaldPeriodicDipoleOperator::self_field_matrix_
private

Definition at line 497 of file ewaldperiodicdipoleoperator.h.

◆ shape_

const EwaldShapeCorrection& votca::xtp::EwaldPeriodicDipoleOperator::shape_
private

Definition at line 463 of file ewaldperiodicdipoleoperator.h.

◆ size_

Index votca::xtp::EwaldPeriodicDipoleOperator::size_
private

Definition at line 477 of file ewaldperiodicdipoleoperator.h.

◆ timings_

RawMultiplyTimings votca::xtp::EwaldPeriodicDipoleOperator::timings_
mutableprivate

Definition at line 479 of file ewaldperiodicdipoleoperator.h.


The documentation for this class was generated from the following files: