Пример #1
0
def test_actuator_force_can_be_used(square_lattice: Lattice):
    """make sure force-based protocol can be called"""
    actuator = Actuator(lattice=square_lattice,
                        frozen_nodes=[2, 3],
                        input_nodes=[0],
                        input_vectors=np.array([[0.1, 0.2]]),
                        output_nodes=[1],
                        output_vectors=np.array([
                            [0.3, 0.4],
                        ]),
                        method="force")
    actuator.act()
Пример #2
0
def test_actuator_frozen_x_nodes(square_lattice):
    """make sure that we can add x-only contraints"""
    actuator = Actuator(
        lattice=square_lattice,
        frozen_nodes=[3],
        frozen_x_nodes=[2],
        input_nodes=[0],
        input_vectors=np.array([[-0.5, 0]]),
        output_nodes=[1],
        output_vectors=np.array([[-1, 0]]),
    )
    actuator.act()
    # grab x and y of semifrozen nodes
    x_displaced = actuator._relax_params["X"][2]
    y_displaced = actuator._relax_params["Y"][2]
    assert x_displaced == -1 and y_displaced != -1