  The geometric optimization of crystal structures is a procedure widely used
in Chemistry that changes the geometrical placement of the particles inside a
structure. It is called structural relaxation and constitutes a local
minimization problem with a non-convex objective function whose domain
complexity increases according to the number of particles involved. In this
work we study the performance of the two most popular first order optimization
methods in structural relaxation. Although frequently employed, there is a lack
of their study in this context from an algorithmic point of view. We run each
algorithm in combination with a constant step size, which provides a benchmark
for the methods' analysis and direct comparison. We also design dynamic step
size rules and study how these improve the two algorithms' performance. Our
results show that there is a trade-off between convergence rate and the
possibility of an experiment to succeed, hence we construct a function to
assign utility to each method based on our respective preference. The function
is built according to a recently introduced model of preference indication
concerning algorithms with deadline and their run time. Finally, building on
all our insights from the experimental results, we provide algorithmic recipes
that best correspond to each of the presented preferences and select one recipe
as the optimal for equally weighted preferences.
  Alongside our results we present our open source Python software veltiCRYS,
which was used to perform the geometric optimization experiments. Our
implementation, can be easily edited to accommodate other energy functions and
is especially targeted for testing different methods in structural relaxation.
