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()
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