package org.opensha2.eq.model; import org.opensha2.data.XySequence; import org.opensha2.geo.Location; import org.opensha2.mfd.IncrementalMfd; import org.opensha2.util.Named; import java.util.List; /** * An earthquake {@code Source}; usually some physical or pseudo-representation * of a fault and associated {@link IncrementalMfd}s governing the size and rate * of all possible {@link Rupture}s. * * @author Peter Powers */ public interface Source extends Named, Iterable<Rupture> { /** * The number of {@link Rupture}s this {@code Source} represents. */ int size(); /** * A numeric identifier for this {@code Source}. */ int id(); /** * The {@code SourceType} identifier. */ SourceType type(); /** * The {@code Location} of this source relative to the supplied {@code site} * location. The details of what this method returns are implementation * secific. */ Location location(Location site); /** * The MFDs that define earthquake rates for this source. */ List<XySequence> mfds(); }