|
openjij
Framework for the Ising model and QUBO.
|
square lattice graph More...
#include <square.hpp>


Public Member Functions | |
| Index | to_ind (std::int64_t r, std::int64_t c) const |
| convert from (row x column) index to global index | |
| RowColumn | to_rc (Index ind) const |
| convert from global index to (row x column) index | |
| Square (std::size_t num_row, std::size_t num_column, FloatType init_val=0) | |
| square lattice graph constructor | |
| Square (const json &j, std::size_t num_row, std::size_t num_column, FloatType init_val=0) | |
| Square constructor (from nlohmann::json) | |
| Square (const Square< FloatType > &)=default | |
| square lattice graph copy constructor | |
| Square (Square< FloatType > &&)=default | |
| square lattice graph move constructor | |
| std::size_t | get_num_row () const |
| get number of rows | |
| std::size_t | get_num_column () const |
| get number of columns | |
| FloatType & | J (std::size_t r, std::size_t c, Dir dir) |
| access J(row, colum, direction) | |
| const FloatType & | J (std::size_t r, std::size_t c, Dir dir) const |
| access J(row, colum, direction) | |
| FloatType & | h (std::size_t r, std::size_t c) |
| access h(row, colum) (local field) | |
| const FloatType & | h (std::size_t r, std::size_t c) const |
| access h(row, colum) (local field) | |
| Spin & | spin (Spins &spins, std::size_t r, std::size_t c) const |
| derive spin value at the index (row x column) | |
| const Spin & | spin (const Spins &spins, std::size_t r, std::size_t c) const |
| derive spin value at the index (row x column) | |
Public Member Functions inherited from openjij::graph::Sparse< FloatType > | |
| Sparse (std::size_t num_spins, std::size_t num_edges) | |
| Sparse constructor. | |
| Sparse (std::size_t num_spins) | |
| Sparse delegate constructor. | |
| Sparse (const json &j, std::size_t num_edges) | |
| Sparse constructor (from nlohmann::json) | |
| Sparse (const json &j) | |
| Sparse constructor (from nlohmann::json) | |
| Sparse (const Sparse< FloatType > &)=default | |
| Sparse copy constructor. | |
| Sparse (Sparse< FloatType > &&)=default | |
| Sparse move constructor. | |
| const Nodes & | adj_nodes (Index ind) const |
| list of adjacent nodes | |
| std::size_t | get_num_edges () const |
| get number of edges | |
| FloatType | calc_energy (const Spins &spins) const |
| calculate total energy | |
| FloatType | calc_energy (const Eigen::Matrix< FloatType, Eigen::Dynamic, 1, Eigen::ColMajor > &spins) const |
| FloatType | energy (const Spins &spins) const |
| calculate total energy | |
| FloatType | energy (const Eigen::Matrix< FloatType, Eigen::Dynamic, 1, Eigen::ColMajor > &spins) const |
| FloatType & | J (Index i, Index j) |
| access J_{ij} | |
| const FloatType & | J (Index i, Index j) const |
| access J_{ij} | |
| FloatType & | h (Index i) |
| access h_{i} (local field) | |
| const FloatType & | h (Index i) const |
| access h_{i} (local field) | |
Public Member Functions inherited from openjij::graph::Graph | |
| Graph (std::size_t num_spins) | |
| Graph constructor. | |
| template<typename RandomNumberEngine > | |
| const Spins | gen_spin (RandomNumberEngine &random_numder_engine) const |
| generate spins randomly. | |
| template<typename RandomNumberEngine > | |
| const Binaries | gen_binary (RandomNumberEngine &random_numder_engine) const |
| generate spins randomly. | |
| std::size_t | get_num_spins () const noexcept |
| get number of spins | |
| std::size_t | size () const noexcept |
| get number of spins | |
Private Member Functions | |
| std::size_t | mod_r (std::int64_t a) const |
| mod function (a mod num_row) | |
| std::size_t | mod_c (std::int64_t a) const |
| mod function (a mod num_column) | |
| void | _checkpair (Index idx1, Index idx2) const |
| check if the pair has a valid connection | |
Private Attributes | |
| FloatType | _init_val |
| initial value to be set to interactions | |
| std::size_t | _num_row |
| number of rows | |
| std::size_t | _num_column |
| number of columns | |
Additional Inherited Members | |
Public Types inherited from openjij::graph::Sparse< FloatType > | |
| using | Interactions = std::unordered_map< std::pair< Index, Index >, FloatType, utility::PairHash > |
| interaction type | |
| using | value_type = FloatType |
| float type | |
square lattice graph
| FloatType | floating-point type (default is double) |
|
inline |
square lattice graph constructor
| num_row | number of rows |
| num_column | number of columns |
| init_val | initial value set to interaction (default: 0) |
References openjij::graph::Square< FloatType >::_init_val, openjij::graph::Square< FloatType >::_num_column, openjij::graph::Square< FloatType >::_num_row, openjij::graph::Sparse< FloatType >::J(), openjij::graph::json_parse(), and openjij::graph::Square< FloatType >::to_ind().

|
inline |
Square constructor (from nlohmann::json)
| j | JSON object |
| num_row | number of rows |
| num_column | number of columns |
| init_val | initial value set to interaction (default: 0) |
References openjij::graph::Square< FloatType >::_checkpair(), openjij::graph::Sparse< FloatType >::h(), openjij::graph::Sparse< FloatType >::J(), and openjij::graph::json_parse().

|
default |
square lattice graph copy constructor
|
default |
square lattice graph move constructor
|
inlineprivate |
check if the pair has a valid connection
| idx1 | index1 |
| idx2 | index2 |
References openjij::graph::json_parse(), and openjij::graph::Square< FloatType >::to_rc().
Referenced by openjij::graph::Square< FloatType >::Square().


|
inline |
get number of columns
References openjij::graph::Square< FloatType >::_num_column.
|
inline |
|
inline |
access h(row, colum) (local field)
| r | row index |
| c | column index |
References openjij::graph::Square< FloatType >::_num_column, openjij::graph::Square< FloatType >::_num_row, openjij::graph::Sparse< FloatType >::h(), openjij::graph::json_parse(), and openjij::graph::Square< FloatType >::to_ind().
Referenced by openjij::declare_Square().


|
inline |
access h(row, colum) (local field)
| r | row index |
| c | column index |
References openjij::graph::Square< FloatType >::_num_column, openjij::graph::Square< FloatType >::_num_row, openjij::graph::Sparse< FloatType >::h(), openjij::graph::json_parse(), and openjij::graph::Square< FloatType >::to_ind().

|
inline |
access J(row, colum, direction)
| r | row index |
| c | column index |
| dir | direction |
References openjij::graph::Square< FloatType >::_init_val, openjij::graph::Square< FloatType >::_num_column, openjij::graph::Square< FloatType >::_num_row, openjij::graph::Sparse< FloatType >::J(), openjij::graph::json_parse(), openjij::graph::MINUS_C, openjij::graph::MINUS_R, openjij::graph::PLUS_C, openjij::graph::PLUS_R, and openjij::graph::Square< FloatType >::to_ind().
Referenced by openjij::declare_Square().


|
inline |
access J(row, colum, direction)
| r | row index |
| c | column index |
| dir | direction |
References openjij::graph::Square< FloatType >::_init_val, openjij::graph::Square< FloatType >::_num_column, openjij::graph::Square< FloatType >::_num_row, openjij::graph::Sparse< FloatType >::J(), openjij::graph::json_parse(), openjij::graph::MINUS_C, openjij::graph::MINUS_R, openjij::graph::PLUS_C, openjij::graph::PLUS_R, and openjij::graph::Square< FloatType >::to_ind().

|
inlineprivate |
mod function (a mod num_column)
| a | parameter ([-1:num_column]) |
References openjij::graph::Square< FloatType >::_num_column.
Referenced by openjij::graph::Square< FloatType >::to_ind().

|
inlineprivate |
mod function (a mod num_row)
| a | parameter ([-1:num_row]) |
References openjij::graph::Square< FloatType >::_num_row.
Referenced by openjij::graph::Square< FloatType >::to_ind().

|
inline |
derive spin value at the index (row x column)
| spins | spin array |
| r | row index |
| c | column index |
References openjij::graph::json_parse(), and openjij::graph::Square< FloatType >::to_ind().

|
inline |
derive spin value at the index (row x column)
| spins | spin array |
| r | row index |
| c | column index |
References openjij::graph::json_parse(), and openjij::graph::Square< FloatType >::to_ind().

|
inline |
convert from (row x column) index to global index
| r | row index |
| c | column index |
References openjij::graph::Square< FloatType >::_num_column, openjij::graph::Square< FloatType >::_num_row, openjij::graph::json_parse(), openjij::graph::Square< FloatType >::mod_c(), and openjij::graph::Square< FloatType >::mod_r().
Referenced by openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::spin(), openjij::graph::Square< FloatType >::spin(), and openjij::graph::Square< FloatType >::Square().


|
inline |
convert from global index to (row x column) index
| ind | global index |
References openjij::graph::Square< FloatType >::_num_column, openjij::graph::Graph::get_num_spins(), and openjij::graph::json_parse().
Referenced by openjij::graph::Square< FloatType >::_checkpair().


|
private |
initial value to be set to interactions
Referenced by openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::J(), and openjij::graph::Square< FloatType >::Square().
|
private |
number of columns
Referenced by openjij::graph::Square< FloatType >::get_num_column(), openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::mod_c(), openjij::graph::Square< FloatType >::Square(), openjij::graph::Square< FloatType >::to_ind(), and openjij::graph::Square< FloatType >::to_rc().
|
private |
number of rows
Referenced by openjij::graph::Square< FloatType >::get_num_row(), openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::h(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::J(), openjij::graph::Square< FloatType >::mod_r(), openjij::graph::Square< FloatType >::Square(), and openjij::graph::Square< FloatType >::to_ind().