package org.opensha2.gmm;
/**
* Interface implemented by all ground motion models (GMMs); these are also
* commonly referred to as ground motion prediction equations (GMPEs) or
* attenuation relationships. Direct instantiation of GMMs is discouraged in
* concrete implementations in favor of using the corresponding {@link Gmm}
* {@code enum} identifier and its {@link Gmm#instance(Imt)} method. Concrete
* implementations are public solely for the purpose of documentation.
*
* <p>Models generally have a single concrete implementation. However, for those
* supplying region- or source-specific variants, there will typically be an
* abstract base-model implementation and subclasses to handle each flavor (e.g.
* {@link ZhaoEtAl_2006}. Each flavor has a unique {@link Gmm} identifier.
*
* @author Peter Powers
* @see Gmm
*/
public interface GroundMotionModel {
/**
* Compute the scalar ground motion and its standard deviation for the
* supplied arguments.
* @param args a ground motion model input argument container
* @return a scalar ground motion wrapper
*/
ScalarGroundMotion calc(GmmInput args);
}