class QPanda::UncompletedGridDevice

UncompletedGridDevice is a derived class of SimpleGridDevice Compared with SimpleGridDevice, some qubits are NOT AVAILABLE, but the adjacent relation is the same e.g. google Sycamore q54.

#include <GridDevice.h>

class UncompletedGridDevice: public QPanda::SimpleGridDevice
{
public:
    // construction

    UncompletedGridDevice(
        int m,
        int n,
        const bool* available_qubits
        );

    // methods

    void resetAvailableQubits(const bool* available_qubits);

    bool isQubitAvailable(
        int i,
        int j
        );
};

Inherited Members

public:
    // structs

    struct PhysicalQubit;

    // methods

    void clear();
    int getM();
    int getN();
    auto& getQubit(int i, int j);
    bool canApplyGate(int i1, int j1, int i2, int j2, int);
    bool canApplyGate(int i, int j, int);
    bool canSwap(int i1, int j1, int i2, int j2);
    void applySingleGate(int i, int j);
    void applyGate(int i1, int j1, int i2, int j2, int time);
    void applyDoubleGate(int i1, int j1, int i2, int j2);
    void applySwap(int i1, int j1, int i2, int j2);
    virtual bool isNearBy(int i1, int j1, int i2, int j2) = 0;
    virtual int getDistance(int i1, int j1, int i2, int j2) = 0;
    void map(int dest, int i, int j);
    void resetTime();
    void nextCycle();
    int maxTime();
    int getTime();
    bool isQubitFree(int i, int j);
    bool isAllQubitFree();
    bool isSimpleGridDevice();
    bool isSupportSwapGate();
    virtual bool isNearBy(int i1, int j1, int i2, int j2);
    virtual int getDistance(int i1, int j1, int i2, int j2);