.. _stqlbm_components: ==================================== Space-Time Circuits ==================================== .. testcode:: :hide: from qlbm.components import ( CQLBM, CollisionlessStreamingOperator, ControlledIncrementer, SpecularReflectionOperator, SpeedSensitivePhaseShift, ) from qlbm.lattice import CollisionlessLattice print("ok") .. testoutput:: :hide: ok This page contains documentation about the quantum circuits that make up the **S**\ pace-\ **T**\ ime **Q**\ uantum **L**\ attice **B**\ oltzmann **M**\ ethod (STQLBM) described in :cite:p:`spacetime`. At its core, the Space-Time QLBM uses an extended computational basis state encoding that that circumvents the non-locality of the streaming step by including additional information from neighboring grid points. This happens in several distinct steps: #. Initial conditions prepare the starting state of the probability distribution function. #. :ref:`stqlbm_streaming` moves the position of particles to neighboring points according to their velocity. #. :ref:`stqlbm_collision` locally changes the velocity profile of particles positioned at the same position in space. #. Measurement operations extract information out of the quantum state, which can later be post-processed classically. This page documents the individual components that make up the STQLBM algorithm. Subsections follow a top-down approach, where end-to-end operators are introduced first, before being broken down into their constituent parts. .. warning:: The STQBLM algorithm is a based on typical :math:`D_dQ_q` discretizations. The current implementation only supports :math:`D_2Q_4` for one time step. This is work in progress. Multiple steps are possible through ``qlbm``\ 's reinitialization mechanism. .. _stqlbm_e2e: End-to-end algorithms ---------------------------------- .. autoclass:: qlbm.components.spacetime.spacetime.SpaceTimeQLBM .. _stqlbm_streaming: Streaming ---------------------------------- .. autoclass:: qlbm.components.spacetime.streaming.SpaceTimeStreamingOperator .. _stqlbm_collision: Collision ---------------------------------- The collision module contains collision operators and adjacent logic classes. The former implements the circuits that perform collision in computational basis state encodings, while the latter contains useful abstractions that circuits build on top of. .. autoclass:: qlbm.components.spacetime.collision.GenericSpaceTimeCollisionOperator .. autoclass:: qlbm.components.spacetime.collision.SpaceTimeD2Q4CollisionOperator .. _stqlbm_others: Others ----------------------------------- .. autoclass:: qlbm.components.spacetime.initial.PointWiseSpaceTimeInitialConditions .. autoclass:: qlbm.components.spacetime.measurement.SpaceTimeGridVelocityMeasurement