MADNESS  0.10.1
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Private Types | Friends | List of all members
madness::DerivativeBase< T, NDIM > Class Template Referenceabstract

Tri-diagonal operator traversing tree primarily for derivative operator. More...

#include <derivative.h>

Inheritance diagram for madness::DerivativeBase< T, NDIM >:
Inheritance graph
[legend]
Collaboration diagram for madness::DerivativeBase< T, NDIM >:
Collaboration graph
[legend]

Public Types

typedef std::pair< keyT, coeffTargT
 
typedef GenTensor< TcoeffT
 holding the node's coeffs (possibly low rank) More...
 
typedef WorldContainer< Key< NDIM >, FunctionNode< T, NDIM > > dcT
 
typedef Function< T, NDIMfunctionT
 
typedef FunctionImpl< T, NDIMimplT
 
typedef Key< NDIMkeyT
 
typedef FunctionNode< T, NDIMnodeT
 
typedef Tensor< TtensorT
 regular tensors, like rm, etc More...
 
- Public Types inherited from madness::WorldObject< DerivativeBase< T, NDIM > >
typedef WorldObject< DerivativeBase< T, NDIM > > objT
 

Public Member Functions

 DerivativeBase (World &world, std::size_t axis, int k, BoundaryConditions< NDIM > bc)
 
virtual ~DerivativeBase ()
 
void do_diff1 (const implT *f, implT *df, const keyT &key, const argT &left, const argT &center, const argT &right) const
 
virtual void do_diff2b (const implT *f, implT *df, const keyT &key, const argT &left, const argT &center, const argT &right) const =0
 
virtual void do_diff2i (const implT *f, implT *df, const keyT &key, const argT &left, const argT &center, const argT &right) const =0
 
Future< argTfind_neighbor (const implT *f, const Key< NDIM > &key, int step) const
 
void forward_do_diff1 (const implT *f, implT *df, const keyT &key, const argT &left, const argT &center, const argT &right) const
 
Key< NDIMneighbor (const keyT &key, int step) const
 
Function< T, NDIMoperator() (const functionT &f, bool fence=true) const
 Differentiate w.r.t. given coordinate (x=0, y=1, ...) with optional fence. More...
 
template<typename Archive >
void serialize (const Archive &ar) const
 
- Public Member Functions inherited from madness::WorldObject< DerivativeBase< T, NDIM > >
 WorldObject (const WorldObject &other)
 
 WorldObject (World &world)
 Constructor that associates an object (via the derived class) with a globally unique ID. More...
 
virtual ~WorldObject ()
 
Worldget_world () const
 Returns a reference to the world. More...
 
const uniqueidTid () const
 Returns the globally unique object ID. More...
 
WorldObjectoperator= (const WorldObject &)=delete
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const a9T &a9) const
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const a9T &a9, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7,a8,a9). More...
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7,a8). More...
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7). More...
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6). More...
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5). More...
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4). More...
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3). More...
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2). More...
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1). More...
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(). More...
 
- Public Member Functions inherited from madness::WorldObjectBase
virtual ~WorldObjectBase ()=default
 

Static Public Member Functions

static bool enforce_bc (int bc_left, int bc_right, Level n, Translation &l)
 

Protected Attributes

const std::size_t axis
 Axis along which the operation is performed. More...
 
const BoundaryConditions< NDIMbc
 
const int k
 Number of wavelets of the function. More...
 
const std::vector< long > vk
 (k,...) used to initialize Tensors More...
 
Worldworld
 

Private Types

typedef WorldObject< DerivativeBase< T, NDIM > > woT
 

Friends

class FunctionImpl< T, NDIM >
 

Additional Inherited Members

- Protected Member Functions inherited from madness::WorldObject< DerivativeBase< T, NDIM > >
void process_pending ()
 To be called from derived constructor to process pending messages. More...
 

Detailed Description

template<typename T, std::size_t NDIM>
class madness::DerivativeBase< T, NDIM >

Tri-diagonal operator traversing tree primarily for derivative operator.

Member Typedef Documentation

◆ argT

template<typename T , std::size_t NDIM>
typedef std::pair<keyT,coeffT> madness::DerivativeBase< T, NDIM >::argT

◆ coeffT

template<typename T , std::size_t NDIM>
typedef GenTensor<T> madness::DerivativeBase< T, NDIM >::coeffT

holding the node's coeffs (possibly low rank)

◆ dcT

template<typename T , std::size_t NDIM>
typedef WorldContainer<Key<NDIM> , FunctionNode<T, NDIM> > madness::DerivativeBase< T, NDIM >::dcT

◆ functionT

template<typename T , std::size_t NDIM>
typedef Function<T,NDIM> madness::DerivativeBase< T, NDIM >::functionT

◆ implT

template<typename T , std::size_t NDIM>
typedef FunctionImpl<T,NDIM> madness::DerivativeBase< T, NDIM >::implT

◆ keyT

template<typename T , std::size_t NDIM>
typedef Key<NDIM> madness::DerivativeBase< T, NDIM >::keyT

◆ nodeT

template<typename T , std::size_t NDIM>
typedef FunctionNode<T,NDIM> madness::DerivativeBase< T, NDIM >::nodeT

◆ tensorT

template<typename T , std::size_t NDIM>
typedef Tensor<T> madness::DerivativeBase< T, NDIM >::tensorT

regular tensors, like rm, etc

◆ woT

template<typename T , std::size_t NDIM>
typedef WorldObject< DerivativeBase<T, NDIM> > madness::DerivativeBase< T, NDIM >::woT
private

Constructor & Destructor Documentation

◆ DerivativeBase()

template<typename T , std::size_t NDIM>
madness::DerivativeBase< T, NDIM >::DerivativeBase ( World world,
std::size_t  axis,
int  k,
BoundaryConditions< NDIM bc 
)
inline

◆ ~DerivativeBase()

template<typename T , std::size_t NDIM>
virtual madness::DerivativeBase< T, NDIM >::~DerivativeBase ( )
inlinevirtual

Member Function Documentation

◆ do_diff1()

template<typename T , std::size_t NDIM>
void madness::DerivativeBase< T, NDIM >::do_diff1 ( const implT f,
implT df,
const keyT key,
const argT left,
const argT center,
const argT right 
) const
inline

◆ do_diff2b()

template<typename T , std::size_t NDIM>
virtual void madness::DerivativeBase< T, NDIM >::do_diff2b ( const implT f,
implT df,
const keyT key,
const argT left,
const argT center,
const argT right 
) const
pure virtual

◆ do_diff2i()

template<typename T , std::size_t NDIM>
virtual void madness::DerivativeBase< T, NDIM >::do_diff2i ( const implT f,
implT df,
const keyT key,
const argT left,
const argT center,
const argT right 
) const
pure virtual

◆ enforce_bc()

template<typename T , std::size_t NDIM>
static bool madness::DerivativeBase< T, NDIM >::enforce_bc ( int  bc_left,
int  bc_right,
Level  n,
Translation l 
)
inlinestatic

◆ find_neighbor()

template<typename T , std::size_t NDIM>
Future<argT> madness::DerivativeBase< T, NDIM >::find_neighbor ( const implT f,
const Key< NDIM > &  key,
int  step 
) const
inline

◆ forward_do_diff1()

template<typename T , std::size_t NDIM>
void madness::DerivativeBase< T, NDIM >::forward_do_diff1 ( const implT f,
implT df,
const keyT key,
const argT left,
const argT center,
const argT right 
) const
inline

◆ neighbor()

template<typename T , std::size_t NDIM>
Key<NDIM> madness::DerivativeBase< T, NDIM >::neighbor ( const keyT key,
int  step 
) const
inline

◆ operator()()

template<typename T , std::size_t NDIM>
Function<T,NDIM> madness::DerivativeBase< T, NDIM >::operator() ( const functionT f,
bool  fence = true 
) const
inline

Differentiate w.r.t. given coordinate (x=0, y=1, ...) with optional fence.

Returns a new function with the same distribution

References madness::f, madness::Function< T, NDIM >::get_impl(), MADNESS_CHECK_THROW, madness::reconstructed, madness::Function< T, NDIM >::set_impl(), and VERIFY_TREE.

◆ serialize()

template<typename T , std::size_t NDIM>
template<typename Archive >
void madness::DerivativeBase< T, NDIM >::serialize ( const Archive &  ar) const
inline

Friends And Related Function Documentation

◆ FunctionImpl< T, NDIM >

template<typename T , std::size_t NDIM>
friend class FunctionImpl< T, NDIM >
friend

Member Data Documentation

◆ axis

template<typename T , std::size_t NDIM>
const std::size_t madness::DerivativeBase< T, NDIM >::axis
protected

◆ bc

template<typename T , std::size_t NDIM>
const BoundaryConditions<NDIM> madness::DerivativeBase< T, NDIM >::bc
protected

◆ k

template<typename T , std::size_t NDIM>
const int madness::DerivativeBase< T, NDIM >::k
protected

◆ vk

template<typename T , std::size_t NDIM>
const std::vector<long> madness::DerivativeBase< T, NDIM >::vk
protected

(k,...) used to initialize Tensors

Referenced by madness::DerivativeBase< T, NDIM >::find_neighbor().

◆ world

template<typename T , std::size_t NDIM>
World& madness::DerivativeBase< T, NDIM >::world
protected

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