Physical Simulation
Write cell-level layouts into physical simulator files for various technologies.
QCADesigner
Header: fiction/io/write_qca_layout.hpp
-
struct write_qca_layout_params
Parameters for writing QCADesigner layouts.
Public Members
-
bool create_inter_layer_via_cells = true
Create via cells in between each layer.
-
bool create_inter_layer_via_cells = true
-
template<typename Lyt>
void fiction::write_qca_layout(const Lyt &lyt, std::ostream &os, write_qca_layout_params ps = {}) Writes a cell-level QCA layout to a qca file that is used by QCADesigner (https://waluslab.ece.ubc.ca/qcadesigner/), a physical simulator for the QCA technology platform.
This overload uses an output stream to write into.
- Template Parameters:
Lyt – Cell-level QCA layout type.
- Parameters:
lyt – The layout to be written.
os – The output stream to write into.
ps – Parameters.
-
template<typename Lyt>
void fiction::write_qca_layout(const Lyt &lyt, const std::string_view &filename, write_qca_layout_params ps = {}) Writes a cell-level QCA layout to a qca file that is used by QCADesigner (https://waluslab.ece.ubc.ca/qcadesigner/), a physical simulator for the QCA technology platform.
This overload uses a file name to create and write into.
- Template Parameters:
Lyt – Cell-level QCA layout type.
- Parameters:
lyt – The layout to be written.
filename – The file name to create and write into. Should preferably use the
.qcaextension.ps – Parameters.
- class mnt.pyfiction.write_qca_layout_params(*args, **kwargs)
Parameters for writing QCADesigner layouts.
- property create_inter_layer_via_cells
Create via cells in between each layer.
- mnt.pyfiction.write_qca_layout(layout: mnt.pyfiction.pyfiction.qca_layout, filename: str, params: mnt.pyfiction.pyfiction.write_qca_layout_params = <mnt.pyfiction.pyfiction.write_qca_layout_params object at 0x79c3e889de10>) None
Writes a cell-level QCA layout to a qca file that is used by QCADesigner (https://waluslab.ece.ubc.ca/qcadesigner/), a physical simulator for the QCA technology platform.
This overload uses an output stream to write into.
- Args:
lyt: The layout to be written. os: The output stream to write into. ps: Parameters.
- Template Args:
Lyt: Cell-level QCA layout type.
QCA-STACK
Header: fiction/io/write_fqca_layout.hpp
-
struct write_fqca_layout_params
Parameters for writing FQCA layouts.
Public Members
-
bool create_inter_layer_via_cells = false
Create via cells in between each layer.
-
bool create_inter_layer_via_cells = false
-
template<typename Lyt>
void fiction::write_fqca_layout(const Lyt &lyt, std::ostream &os, write_fqca_layout_params ps = {}) Writes a cell-level QCA layout to an fqca file provided as an output stream. The format is used by QCA-STACK by Willem Lambooy (https://github.com/wlambooy/QCA-STACK).
Might throw an out_of_cell_names_exception in case there are more I/O cells in the layout than lowercase + uppercase letters in the English alphabet.
- Template Parameters:
Lyt – The layout type to be written. Must be a clocked cell-level QCA layout.
- Parameters:
lyt – The cell-level QCA layout.
os – The output stream to write into.
ps – Parameters.
-
template<typename Lyt>
void fiction::write_fqca_layout(const Lyt &lyt, const std::string_view &filename, write_fqca_layout_params ps = {}) Writes a cell-level QCA layout to an fqca file provided as a file name. The format is used by QCA-STACK by Willem Lambooy (https://github.com/wlambooy/QCA-STACK).
Might throw an out_of_cell_names_exception in case there are more I/O cells in the layout than lowercase + uppercase letters in the English alphabet.
- Template Parameters:
Lyt – The layout type to be written. Must be a clocked cell-level QCA layout.
- Parameters:
lyt – The cell-level QCA layout.
filename – The file name to create and write into. Should preferably use the
.fqcaextension.ps – Parameters.
-
class out_of_cell_names_exception : public std::out_of_range
- class mnt.pyfiction.write_fqca_layout_params(*args, **kwargs)
Parameters for writing FQCA layouts.
- property create_inter_layer_via_cells
Create via cells in between each layer.
- mnt.pyfiction.write_fqca_layout(layout: mnt.pyfiction.pyfiction.qca_layout, filename: str, params: mnt.pyfiction.pyfiction.write_fqca_layout_params = <mnt.pyfiction.pyfiction.write_fqca_layout_params object at 0x79c3e889dd90>) None
Writes a cell-level QCA layout to an fqca file provided as an output stream. The format is used by QCA-STACK by Willem Lambooy (https://github.com/wlambooy/QCA-STACK).
Might throw an out_of_cell_names_exception in case there are more I/O cells in the layout than lowercase + uppercase letters in the English alphabet.
- Args:
lyt: The cell-level QCA layout. os: The output stream to write into. ps: Parameters.
- Template Args:
- Lyt: The layout type to be written. Must be a clocked cell-level
QCA layout.
- class mnt.pyfiction.out_of_cell_names_exception
Header: fiction/io/read_fqca_layout.hpp
-
template<typename Lyt>
Lyt fiction::read_fqca_layout(std::istream &is, const std::string_view &layout_name = "") Reads a cell-level QCA layout from an fqca file provided as an input stream. The format is used by QCA-STACK by Willem Lambooy (https://github.com/wlambooy/QCA-STACK).
May throw an unsupported_character_exception, undefined_cell_label_exception, or unrecognized_cell_definition_exception.
- Template Parameters:
Lyt – The layout type to be created from an input. Must be a clocked cell-level QCA layout.
- Parameters:
is – The input stream to read from.
layout_name – The name to give to the generated layout.
-
template<typename Lyt>
Lyt fiction::read_fqca_layout(const std::string_view &filename, const std::string_view &layout_name = "") Reads a cell-level QCA layout from an fqca file provided as a file name. The format is used by QCA-STACK by Willem Lambooy (https://github.com/wlambooy/QCA-STACK).
May throw an unsupported_character_exception, undefined_cell_label_exception, or unrecognized_cell_definition_exception.
- Template Parameters:
Lyt – The layout type to be created from an input. Must be a clocked cell-level QCA layout.
- Parameters:
filename – The file name to open and read from.
layout_name – The name to give to the generated layout.
-
class unsupported_character_exception : public std::exception
-
class undefined_cell_label_exception : public std::exception
-
class unrecognized_cell_definition_exception : public std::exception
- mnt.pyfiction.read_fqca_layout(filename: str, layout_name: str = '') mnt.pyfiction.pyfiction.qca_layout
Reads a cell-level QCA layout from an fqca file provided as an input stream. The format is used by QCA-STACK by Willem Lambooy (https://github.com/wlambooy/QCA-STACK).
May throw an unsupported_character_exception, undefined_cell_label_exception, or unrecognized_cell_definition_exception.
- Args:
is: The input stream to read from. layout_name: The name to give to the generated layout.
- Template Args:
- Lyt: The layout type to be created from an input. Must be a
clocked cell-level QCA layout.
- class mnt.pyfiction.unsupported_character_exception
- class mnt.pyfiction.undefined_cell_label_exception
- class mnt.pyfiction.unrecognized_cell_definition_exception
ToPoliNano
Header: fiction/io/write_qcc_layout.hpp
-
struct write_qcc_layout_params
Parameters for writing QCC layouts.
-
template<typename Lyt>
void fiction::write_qcc_layout(const Lyt &lyt, std::ostream &os, write_qcc_layout_params ps = {}) Writes a cell-level iNML layout to a qcc file that is used by ToPoliNano & MagCAD (https://topolinano.polito.it/), an EDA tool and a physical simulator for the iNML technology platform.
This overload uses an output stream to write into.
- Template Parameters:
Lyt – Cell-level iNML layout type.
- Parameters:
lyt – The layout to be written.
os – The output stream to write into.
ps – Parameters.
-
template<typename Lyt>
void fiction::write_qcc_layout(const Lyt &lyt, const std::string_view &filename, write_qcc_layout_params ps = {}) Writes a cell-level iNML layout to a qcc file that is used by ToPoliNano & MagCAD (https://topolinano.polito.it/), an EDA tool and a physical simulator for the iNML technology platform.
This overload uses a file name to create and write into.
- Template Parameters:
Lyt – Cell-level iNML layout type.
- Parameters:
lyt – The layout to be written.
filename – The file name to create and write into. Should preferably use the
.qccextension.ps – Parameters.
- mnt.pyfiction.write_qcc_layout(layout: mnt.pyfiction.pyfiction.inml_layout, filename: str) None
Writes a cell-level iNML layout to a qcc file that is used by ToPoliNano & MagCAD (https://topolinano.polito.it/), an EDA tool and a physical simulator for the iNML technology platform.
This overload uses an output stream to write into.
- Args:
lyt: The layout to be written. os: The output stream to write into. ps: Parameters.
- Template Args:
Lyt: Cell-level iNML layout type.
MagCAD & SCERPA
Header: fiction/io/write_qll_layout.hpp
-
template<typename Lyt>
void fiction::write_qll_layout(const Lyt &lyt, std::ostream &os) Writes a cell-level QCA, molQCA or iNML layout to a qll file that is used by ToPoliNano & MagCAD (https://topolinano.polito.it/), an EDA tool and a physical simulator for the iNML technology platform as well as SCERPA (https://ieeexplore.ieee.org/document/8935211), a physical simulator for the molQCA (mQCA) technology platform.
This overload uses an output stream to write into.
- Template Parameters:
Lyt – Cell-level QCA, molQCA, or iNML layout type.
- Parameters:
lyt – The layout to be written.
os – The output stream to write into.
-
template<typename Lyt>
void fiction::write_qll_layout(const Lyt &lyt, const std::string_view &filename) Writes a cell-level QCA, molQCA or iNML layout to a qll file that is used by ToPoliNano & MagCAD (https://topolinano.polito.it/), an EDA tool and a physical simulator for the iNML technology platform as well as SCERPA (https://ieeexplore.ieee.org/document/8935211), a physical simulator for the molQCA (mQCA) technology platform.
This overload uses a file name to create and write into.
- Template Parameters:
Lyt – Cell-level QCA, molQCA, or iNML layout type.
- Parameters:
lyt – The layout to be written.
filename – The file name to create and write into. Should preferably use the
.qllextension.
- mnt.pyfiction.write_qll_layout(layout: mnt.pyfiction.pyfiction.qca_layout, filename: str) None
- mnt.pyfiction.write_qll_layout(layout: mnt.pyfiction.pyfiction.inml_layout, filename: str) None
- mnt.pyfiction.write_qll_layout(layout: mnt.pyfiction.pyfiction.mol_qca_layout, filename: str) None
Writes a cell-level QCA, molQCA or iNML layout to a qll file that is used by ToPoliNano & MagCAD (https://topolinano.polito.it/), an EDA tool and a physical simulator for the iNML technology platform as well as SCERPA (https://ieeexplore.ieee.org/document/8935211), a physical simulator for the molQCA (mQCA) technology platform.
This overload uses an output stream to write into.
- Args:
lyt: The layout to be written. os: The output stream to write into.
- Template Args:
Lyt: Cell-level QCA, molQCA, or iNML layout type.
SiQAD
Header: fiction/io/write_sqd_layout.hpp
-
template<typename Lyt>
void fiction::write_sqd_layout(const Lyt &lyt, std::ostream &os) Writes a cell-level SiDB or QCA layout to an sqd file that is used by SiQAD (https://github.com/siqad/siqad), a physical simulator for the SiDB technology platform.
If the provided cell-level layout type can represent SiDB defects, they will be written to the file as well.
This overload uses an output stream to write into.
- Template Parameters:
Lyt – Cell-level SiDB or QCA layout type.
- Parameters:
lyt – The layout to be written.
os – The output stream to write into.
-
template<typename Lyt>
void fiction::write_sqd_layout(const Lyt &lyt, const std::string_view &filename) Writes a cell-level SiDB or QCA layout to an sqd file that is used by SiQAD (https://github.com/siqad/siqad), a physical simulator for the SiDB technology platform.
If the provided cell-level layout type can represent SiDB defects, they will be written to the file as well.
This overload uses a file name to create and write into.
- Template Parameters:
Lyt – Cell-level SiDB or QCA layout type.
- Parameters:
lyt – The layout to be written.
filename – The file name to create and write into. Should preferably use the
.sqdextension.
Header: fiction/io/write_sqd_sim_result.hpp
-
template<typename Lyt>
void fiction::write_sqd_sim_result(const sidb_simulation_result<Lyt> &sim_result, std::ostream &os) Writes an SiDB simulation result to an XML file that is used by SiQAD (https://github.com/siqad/siqad), a physical simulator for the SiDB technology platform.
This overload uses an output stream to write into.
- Template Parameters:
Lyt – SiDB cell-level SiDB layout type.
- Parameters:
sim_result – The simulation result to write.
os – The output stream to write into.
-
template<typename Lyt>
void fiction::write_sqd_sim_result(const sidb_simulation_result<Lyt> &sim_result, const std::string_view &filename) Writes an SiDB simulation result to an XML file that is used by SiQAD (https://github.com/siqad/siqad), a physical simulator for the SiDB technology platform.
This overload uses a file name to create and write into.
- Template Parameters:
Lyt – SiDB cell-level SiDB layout type.
- Parameters:
sim_result – The simulation result to write.
filename – The file name to create and write into. Should preferably use the
.xmlextension.
Header: fiction/io/write_location_and_ground_state.hpp
-
template<typename Lyt>
void fiction::write_location_and_ground_state(const sidb_simulation_result<Lyt> &sim_result, std::ostream &os) Writes the coordinates of all SiDBs of a layout together with the charge distribution of the ground state(s) to a file.
This overload uses an output stream to write into.
- Template Parameters:
Lyt – SiDB cell-level SiDB layout type.
- Parameters:
sim_result – The simulation result to write.
os – The output stream to write into.
-
template<typename Lyt>
void fiction::write_location_and_ground_state(const sidb_simulation_result<Lyt> &sim_result, const std::string_view &filename) Writes the coordinates of all SiDBs of a layout together with the charge distribution of the ground state(s) to a file.
This overload uses a file name to create and write into.
- Template Parameters:
Lyt – SiDB cell-level SiDB layout type.
sim_result – The simulation result to write.
- Parameters:
filename – The file name to create and write into.
Header: fiction/io/read_sqd_layout.hpp
-
template<typename Lyt>
Lyt fiction::read_sqd_layout(std::istream &is, const std::string_view &name = "") Reads a cell-level SiDB layout from an sqd file provided as an input stream. The format is used by SiQAD (https://github.com/siqad/siqad).
If the provided cell-level layout type can represent SiDB defects, they will be parsed from the sqd file as well.
May throw an
sqd_parsing_exceptionif the sqd file is malformed.- Template Parameters:
Lyt – The layout type to be created from an input. Must be an SiDB lattice cell-level SiDB layout.
- Parameters:
is – The input stream to read from.
name – The name to give to the generated layout.
- Returns:
The cell-level SiDB layout read from the sqd file.
-
template<typename Lyt>
void fiction::read_sqd_layout(Lyt &lyt, std::istream &is) Reads a cell-level SiDB layout from an sqd file provided as an input stream. The format is used by SiQAD (https://github.com/siqad/siqad).
If The provided cell-level layout type can represent SiDB defects, they will be parsed from the sqd file as well.
May throw an
sqd_parsing_exceptionif the sqd file is malformed.This is an in-place version of read_sqd_layout that utilizes the given layout as a target to write to.
- Template Parameters:
Lyt – The layout type to be created from an input. Must be an SiDB lattice cell-level SiDB layout.
- Parameters:
lyt – The layout to write to.
is – The input stream to read from.
-
template<typename Lyt>
Lyt fiction::read_sqd_layout(const std::string_view &filename, const std::string_view &name = "") Reads a cell-level SiDB layout from an sqd file provided as a file name. The format is used by SiQAD (https://github.com/siqad/siqad).
If The provided cell-level layout type can represent SiDB defects, they will be parsed from the sqd file as well.
May throw an
sqd_parsing_exceptionif the sqd file is malformed.- Template Parameters:
Lyt – The layout type to be created from an input. Must be an SiDB lattice cell-level SiDB layout.
- Parameters:
filename – The file name to open and read from.
name – The name to give to the generated layout.
-
template<typename Lyt>
void fiction::read_sqd_layout(Lyt &lyt, const std::string_view &filename) Reads a cell-level SiDB layout from an sqd file provided as a file name. The format is used by SiQAD (https://github.com/siqad/siqad).
If The provided cell-level layout type can represent SiDB defects, they will be parsed from the sqd file as well.
May throw an
sqd_parsing_exceptionif the sqd file is malformed.This is an in-place version of
read_sqd_layoutthat utilizes the given layout as a target to write to.- Template Parameters:
Lyt – The layout type to be created from an input. Must be an SiDB lattice cell-level SiDB layout.
- Parameters:
lyt – The layout to write to.
filename – The file name to open and read from.
-
class sqd_parsing_error : public std::runtime_error
Exception thrown when an error occurs during parsing of an SQD file.
- mnt.pyfiction.write_sqd_layout(layout: mnt.pyfiction.pyfiction.sidb_111_lattice, filename: str) None
- mnt.pyfiction.write_sqd_layout(layout: mnt.pyfiction.pyfiction.sidb_100_lattice, filename: str) None
- mnt.pyfiction.write_sqd_layout(layout: mnt.pyfiction.pyfiction.sidb_layout, filename: str) None
Writes a cell-level SiDB or QCA layout to an sqd file that is used by SiQAD (https://github.com/siqad/siqad), a physical simulator for the SiDB technology platform.
If the provided cell-level layout type can represent SiDB defects, they will be written to the file as well.
This overload uses an output stream to write into.
- Args:
lyt: The layout to be written. os: The output stream to write into.
- Template Args:
Lyt: Cell-level SiDB or QCA layout type.
- mnt.pyfiction.write_sqd_sim_result(layout: fiction::sidb_simulation_result<fiction::cell_level_layout<fiction::sidb_technology, fiction::clocked_layout<fiction::tile_based_layout<fiction::cartesian_layout<fiction::offset::ucoord_t> > > > >, filename: str) None
Writes an SiDB simulation result to an XML file that is used by SiQAD (https://github.com/siqad/siqad), a physical simulator for the SiDB technology platform.
This overload uses an output stream to write into.
- Args:
sim_result: The simulation result to write. os: The output stream to write into.
- Template Args:
Lyt: SiDB cell-level SiDB layout type.
- mnt.pyfiction.read_sqd_layout_100(filename: str, layout_name: str = '') mnt.pyfiction.pyfiction.sidb_100_lattice
Reads a cell-level SiDB layout from an sqd file provided as a file name. The format is used by SiQAD (https://github.com/siqad/siqad).
If The provided cell-level layout type can represent SiDB defects, they will be parsed from the sqd file as well.
May throw an sqd_parsing_exception if the sqd file is malformed.
- Args:
filename: The file name to open and read from. name: The name to give to the generated layout.
- Template Args:
- Lyt: The layout type to be created from an input. Must be an SiDB
lattice cell-level SiDB layout.
- mnt.pyfiction.read_sqd_layout_111(filename: str, layout_name: str = '') mnt.pyfiction.pyfiction.sidb_111_lattice
Reads a cell-level SiDB layout from an sqd file provided as a file name. The format is used by SiQAD (https://github.com/siqad/siqad).
If The provided cell-level layout type can represent SiDB defects, they will be parsed from the sqd file as well.
May throw an sqd_parsing_exception if the sqd file is malformed.
- Args:
filename: The file name to open and read from. name: The name to give to the generated layout.
- Template Args:
- Lyt: The layout type to be created from an input. Must be an SiDB
lattice cell-level SiDB layout.
- class mnt.pyfiction.sqd_parsing_error
SiDB Operational Domain
Header: fiction/io/write_operational_domain.hpp
-
struct write_operational_domain_params
Parameters for writing an operational domain to a CSV file.
Public Types
-
enum class sample_writing_mode : uint8_t
Mode selector for writing samples to file.
Values:
-
enumerator ALL_SAMPLES
Write all samples, including non-operational ones. This may lead to large file sizes.
-
enumerator OPERATIONAL_ONLY
Write operational samples only. This can drastically reduce file size and help with visibility in 3D plots.
-
enumerator ALL_SAMPLES
Public Members
-
std::string_view operational_tag = "1"
The tag used to represent the operational value of a parameter set.
-
std::string_view non_operational_tag = "0"
The tag used to represent the non-operational value of a parameter set.
-
sample_writing_mode writing_mode = sample_writing_mode::ALL_SAMPLES
Whether to write non-operational samples to the CSV file. If set to
OPERATIONAL_ONLY, operational samples are written exclusively. This yields a significantly smaller CSV file. It is recommended to set this option for 3D plots because the non-operational samples would shadow the operational samples anyway.
-
enum class sample_writing_mode : uint8_t
-
template<typename OpDomain>
void fiction::write_operational_domain(const OpDomain &opdom, std::ostream &os, const write_operational_domain_params ¶ms = {}) Writes a CSV representation of an operational domain to the specified output stream. The data are written as rows, each corresponding to one set of simulation parameters and their corresponding operational status.
The output CSV format is e.g. as follows:
epsilon_r, lambda_tf, operational status 0.0, 0.0, 0 0.1, 0.0, 1 ... subsequent rows for each set of simulation parametersThe operational status is a binary value represented by specified tags in
paramsindicating whether the simulation parameters are within the operational domain or not.- Template Parameters:
OpDomain – The type of the operational domain.
- Parameters:
opdom – The operational domain to be written. It represents a mapping between sets of simulation parameters (one to three sweep parameters, written as the X, Y, and Z columns) and a tuple containing detailed information about the SiDB layout associated with those simulation parameters.
os – The output stream where the CSV representation of the operational domain is written to.
params – The parameters used for writing, including the operational and non-operational tags. Defaults to an empty
write_operational_domain_paramsobject, which provides standard tags.
- Throws:
std::invalid_argument – if the number of dimensions in the operational domain is 0 or greater than 3. Three is the number of enumerators of
sweep_parameter, so a fourth dimension could only repeat one of them.
-
template<typename OpDomain>
void fiction::write_operational_domain(const OpDomain &opdom, const std::string_view &filename, const write_operational_domain_params ¶ms = {}) Writes a CSV representation of an operational domain to the specified file. The data are written as rows, each corresponding to one set of simulation parameters and their corresponding operational status.
The output CSV format is e.g. as follows:
epsilon_r, lambda_tf, operational status 0.0, 0.0, 0 0.1, 0.0, 1 ... subsequent rows for each set of simulation parametersThe operational status is a binary value represented by specified tags in
paramsindicating whether the simulation parameters are within the operational domain or not.- Template Parameters:
OpDomain – The type of the operational domain.
- Parameters:
opdom – The operational domain to be written. It represents a mapping between sets of simulation parameters (one to three sweep parameters, written as the X, Y, and Z columns) and a tuple containing detailed information about the SiDB layout associated with those simulation parameters.
filename – The filename where the CSV representation of the operational domain is written to.
params – The parameters used for writing, including the operational and non-operational tags. Defaults to an empty
write_operational_domain_paramsobject, which provides standard tags.
- Throws:
std::ofstream::failure – if the file could not be opened.
std::invalid_argument – if the number of dimensions in the operational domain is 0 or greater than 3. Three is the number of enumerators of
sweep_parameter, so a fourth dimension could only repeat one of them.
- class mnt.pyfiction.write_operational_domain_params(*args, **kwargs)
Parameters for writing an operational domain to a CSV file.
- property non_operational_tag
The tag used to represent the non-operational value of a parameter set.
- property operational_tag
The tag used to represent the operational value of a parameter set.
- property writing_mode
Whether to write non-operational samples to the CSV file. If set to OPERATIONAL_ONLY, operational samples are written exclusively. This yields a significantly smaller CSV file. It is recommended to set this option for 3D plots because the non-operational samples would shadow the operational samples anyway.
- mnt.pyfiction.write_operational_domain(opdom: mnt.pyfiction.pyfiction.operational_domain, filename: str, params: mnt.pyfiction.pyfiction.write_operational_domain_params) None
Writes a CSV representation of an operational domain to the specified output stream. The data are written as rows, each corresponding to one set of simulation parameters and their corresponding operational status.
The output CSV format is e.g. as follows:
``` embed:rst .. code-block:: RST
epsilon_r, lambda_tf, operational status 0.0, 0.0, 0 0.1, 0.0, 1 … subsequent rows for each set of simulation parameters ```
The operational status is a binary value represented by specified tags in params indicating whether the simulation parameters are within the operational domain or not.
- Args:
- opdom: The operational domain to be written. It represents a
mapping between sets of simulation parameters (one to three sweep parameters, written as the X, Y, and Z columns) and a tuple containing detailed information about the SiDB layout associated with those simulation parameters.
- os: The output stream where the CSV representation of the
operational domain is written to.
- params: The parameters used for writing, including the operational
and non-operational tags. Defaults to an empty write_operational_domain_params object, which provides standard tags.
- Template Args:
OpDomain: The type of the operational domain.
- Raises:
- std::invalid_argument: if the number of dimensions in the
operational domain is 0 or greater than 3. Three is the number of enumerators of sweep_parameter, so a fourth dimension could only repeat one of them.
- mnt.pyfiction.write_critical_temperature_domain(opdom: mnt.pyfiction.pyfiction.critical_temperature_domain, filename: str, params: mnt.pyfiction.pyfiction.write_operational_domain_params) None
The critical_temperature_domain class collects the critical temperature and the operational status for a range of different physical parameters of a given SiDB layout. It allows for the evaluation of how the critical temperature depends on variations in the underlying parameter points. This enables simulations to explore the critical temperature’s behavior across different conditions and configurations.
It was proposed in "The Operational Domain Explorer: A Comprehensive Framework to Unveil the Thermal Landscape of Silicon Dangling Bond Logic Beyond Conventional Operability" by M. Walter, J. Drewniok, and R. Wille in IEEE-NANO 2025 (https://ieeexplore.ieee.org/abstract/document/11113672).
Technology-independent Gate-level Layouts
Can be used to generate gate-level layout files (.fgl) as offered by MNT Bench.
Header: fiction/io/write_fgl_layout.hpp
-
template<typename Lyt>
void fiction::write_fgl_layout(const Lyt &lyt, std::ostream &os) Writes an FGL layout to a file.
This overload uses an output stream to write into.
- Template Parameters:
Lyt – Layout.
- Parameters:
lyt – The layout to be written.
os – The output stream to write into.
-
template<typename Lyt>
void fiction::write_fgl_layout(const Lyt &lyt, const std::string_view &filename) Writes an FGL layout to a file.
This overload uses a file name to create and write into.
- Template Parameters:
Lyt – Layout.
- Parameters:
lyt – The layout to be written.
filename – The file name to create and write into. Should preferably use the .fgl extension.
-
class fgl_parsing_error : public std::runtime_error
Exception thrown when an error occurs during parsing of a .fgl file containing a gate-level layout.
Public Functions
-
inline explicit fgl_parsing_error(const std::string_view &msg) noexcept
Constructs a
fgl_parsing_errorobject with the given error message.- Parameters:
msg – The error message describing the parsing error.
-
inline explicit fgl_parsing_error(const std::string_view &msg) noexcept
- mnt.pyfiction.write_fgl_layout(layout: mnt.pyfiction.pyfiction.cartesian_gate_layout, filename: str) None
- mnt.pyfiction.write_fgl_layout(layout: mnt.pyfiction.pyfiction.shifted_cartesian_gate_layout, filename: str) None
- mnt.pyfiction.write_fgl_layout(layout: mnt.pyfiction.pyfiction.hexagonal_gate_layout, filename: str) None
Writes an FGL layout to a file.
This overload uses a file name to create and write into.
- Args:
lyt: The layout to be written. filename: The file name to create and write into. Should
preferably use the .fgl extension.
- Template Args:
Lyt: Layout.
- class mnt.pyfiction.fgl_parsing_error