13#ifndef REAL_TIME_TRANSPORT_RENORMALIZED_PT_CURRENT_KERNEL_H
14#define REAL_TIME_TRANSPORT_RENORMALIZED_PT_CURRENT_KERNEL_H
16#include <SciCore/ChebAdaptive.h>
18#include "../RealTimeTransport_export.h"
21namespace RealTimeTransport
24namespace RenormalizedPT
52 CurrentKernel(
const Model* model,
int r,
Order order, SciCore::Real tMax, SciCore::Real errorGoal,
int block = -1)
54 _initialize(model, r, order, tMax, errorGoal,
nullptr, block);
62 SciCore::Real errorGoal,
63 tf::Executor& executor,
66 _initialize(model, r, order, tMax, errorGoal, &executor, block);
83 const std::unique_ptr<Model>& model,
87 SciCore::Real errorGoal,
90 _initialize(model.get(), r, order, tMax, errorGoal,
nullptr, block);
108 const std::unique_ptr<Model>& model,
112 SciCore::Real errorGoal,
113 tf::Executor& executor,
116 _initialize(model.get(), r, order, tMax, errorGoal, &executor, block);
127 int r()
const noexcept;
159 template <
class Archive>
160 void serialize(Archive& archive)
162 archive(_model, _r, _errorGoal, _minusISigmaInfty, _minusIK);
166 std::unique_ptr<Model> _model;
168 SciCore::Real _errorGoal;
170 Model::SuperRowVectorType _minusISigmaInfty;
171 SciCore::ChebAdaptive<Model::SuperRowVectorType> _minusIK;
178 SciCore::Real errorGoal,
179 tf::Executor* executor,
201 const std::unique_ptr<Model>& model,
203 RenormalizedPT::
Order order,
205 SciCore::Real errorGoal,
208 return RenormalizedPT::CurrentKernel(model, r, order, tMax, errorGoal, block);
228 const std::unique_ptr<Model>& model,
230 RenormalizedPT::
Order order,
232 SciCore::Real errorGoal,
233 tf::Executor& executor,
236 return RenormalizedPT::CurrentKernel(model, r, order, tMax, errorGoal, executor, block);
#define REALTIMETRANSPORT_EXPORT
Definition RealTimeTransport_export.h:15
Abstract class representing a model.
Definition Model.h:47
Defines the renormalized current kernel.
Definition RenormalizedPT/CurrentKernel.h:35
const Model * model() const noexcept
Returns a pointer to the model.
CurrentKernel() noexcept
Constructor.
CurrentKernel & operator=(const CurrentKernel &other)
Copy assignment operator.
SciCore::Real tMax() const
Returns the maximum simulation time.
Model::SuperRowVectorType zeroFrequency() const
Returns , where denotes infinite temperature current kernel and the current kernel at zero frequenc...
CurrentKernel(const CurrentKernel &other)
Copy constructor.
const SciCore::ChebAdaptive< Model::SuperRowVectorType > & K() const noexcept
Returns , where denotes the current kernel.
CurrentKernel(CurrentKernel &&other) noexcept
Move constructor.
SciCore::Real errorGoal() const noexcept
Returns the error goal of the computation.
int r() const noexcept
Returns the reservoir index for which the current kernel was computed.
SciCore::Real stationaryCurrent(const Model::OperatorType &stationaryState) const
Returns the stationary current.
CurrentKernel & operator=(CurrentKernel &&other)
Move assignment operator.
CurrentKernel(const std::unique_ptr< Model > &model, int r, Order order, SciCore::Real tMax, SciCore::Real errorGoal, tf::Executor &executor, int block=-1)
Computes the current kernel for a given model in parallel.
Definition RenormalizedPT/CurrentKernel.h:107
CurrentKernel(const std::unique_ptr< Model > &model, int r, Order order, SciCore::Real tMax, SciCore::Real errorGoal, int block=-1)
Computes the current kernel for a given model.
Definition RenormalizedPT/CurrentKernel.h:82
const Model::SuperRowVectorType & SigmaInfty() const noexcept
Returns , where denotes the infinite temperature current kernel.
REALTIMETRANSPORT_EXPORT RenormalizedPT::CurrentKernel computeCurrentKernel(const std::unique_ptr< Model > &model, int r, RenormalizedPT::Order order, SciCore::Real tMax, SciCore::Real errorGoal, int block=-1)
Computes the current kernel for a given model.
Definition RenormalizedPT/CurrentKernel.h:200
REALTIMETRANSPORT_EXPORT RenormalizedPT::CurrentKernel computeCurrentKernel(const std::unique_ptr< Model > &model, int r, RenormalizedPT::Order order, SciCore::Real tMax, SciCore::Real errorGoal, tf::Executor &executor, int block=-1)
Computes the current kernel for a given model in parallel.
Definition RenormalizedPT/CurrentKernel.h:227
REALTIMETRANSPORT_EXPORT SciCore::ChebAdaptive< SciCore::Real > computeCurrent(const RenormalizedPT::CurrentKernel &KCurrent, const Propagator &propagator, const Model::OperatorType &rho0)
Computes the transient current for a given initial state.
Order
Defines the order of the approximation.
Definition RenormalizedPT/MemoryKernel.h:41