org.opensha.sha.earthquake.rupForecastImpl
Class FloatingPoissonFaultSource

java.lang.Object
  extended by org.opensha.sha.earthquake.ProbEqkSource
      extended by org.opensha.sha.earthquake.rupForecastImpl.FloatingPoissonFaultSource
All Implemented Interfaces:
Serializable, Iterable<ProbEqkRupture>, Named, EqkSource

public class FloatingPoissonFaultSource
extends ProbEqkSource

Title: FloatingPoissonFaultSource

Description: This implements a basic Poisson fault source for arbitrary:

Note that few of these input objects are saved internally (after construction) in order to conserve memory (this is why there are no associated get/set methods for each).

The floatTypeFlag specifies the type of floaters as described above. For floating, ruptures are placed uniformly across the fault surface (at rupOffset spacing), which means there is a tapering of implied slip amounts at the ends of the fault.

All magnitudes below minMag in the magDist are ignored in building the ruptures.

Note that magScalingSigma can be either a MagAreaRelationship or a MagLengthRelationship. If a MagAreaRelationship is being used, and the rupture width implied for a given magnitude exceeds the down-dip width of the faultSurface, then the rupture length is increased accordingly and the rupture width is set as the down-dip width. If a MagLengthRelationship is being used, and the rupture width implied by the rupAspectRatio exceeds the down-dip width, everything below the bottom edge of the fault is simply cut off (ignored). Thus, with a MagLengthRelationship you can force rupture of the entire down-dip width by giving rupAspecRatio a very small value (using floatTypeFlag=1). The fullFaultRupMagThresh value allows you to force full-fault ruptures for large mags.

magScalingSigma is set by hand (rather than getting it from the magScalingRel) to allow maximum flexibility (e.g., some relationships do not even give a sigma value).

If magScalingSigma is non zero, then 25 branches from -3 to +3 sigma are considered for the Area or Length values (this high number was implemented to match PEER test cases); the option for other numbers of branches should be added to speed things up if this feature will be widely used.

To Do: 1) generalize makeFaultCornerLocs() to work better for large surfaces; 2) clarify documentation on magSigma branches

Copyright: Copyright (c) 2002

Company:

Version:
1.0
Author:
Ned Field
See Also:
Serialized Form

Field Summary
protected  String NAME
           
 
Fields inherited from class org.opensha.sha.earthquake.ProbEqkSource
isPoissonian, name
 
Constructor Summary
FloatingPoissonFaultSource(IncrementalMagFreqDist magDist, AbstractEvenlyGriddedSurfaceWithSubsets faultSurface, MagScalingRelationship magScalingRel, double magScalingSigma, double rupAspectRatio, double rupOffset, double rake, double duration)
          This constructor sets minMag=5, floatTypeFlag=1 and fullFaultRupMagThresh = Double.MAX_VALUE.
FloatingPoissonFaultSource(IncrementalMagFreqDist magDist, AbstractEvenlyGriddedSurfaceWithSubsets faultSurface, MagScalingRelationship magScalingRel, double magScalingSigma, double rupAspectRatio, double rupOffset, double rake, double duration, double minMag)
          This constructor sets floatTypeFlag=1 and fullFaultRupMagThresh = Double.MAX_VALUE.
FloatingPoissonFaultSource(IncrementalMagFreqDist magDist, AbstractEvenlyGriddedSurfaceWithSubsets faultSurface, MagScalingRelationship magScalingRel, double magScalingSigma, double rupAspectRatio, double rupOffset, double rake, double duration, double minMag, int floatTypeFlag, double fullFaultRupMagThresh)
          This creates the Simple Poisson Fault Source, where a variety floating options are given by the floatTypeFlag described below.
 
Method Summary
 LocationList getAllSourceLocs()
          It returns a list of all the locations which make up the surface for this source.
 double getMinDistance(Site site)
          This returns the shortest dist to the fault surface approximated as a region according to the corners and mid-points along strike (both on top and bottom trace).
 String getName()
          get the name of this class
 int getNumRuptures()
          Get the number of ruptures for this source
 ProbEqkRupture getRupture(int nthRupture)
          This method returns the nth Rupture in the list
 AbstractEvenlyGriddedSurface getSourceSurface()
          This gives the entire surface of the source
 void setDuration(double newDuration)
          This allows you to change the duration of the forecast
 void setName(String name)
          set the name of this class
 
Methods inherited from class org.opensha.sha.earthquake.ProbEqkSource
computeApproxTotalProbAbove, computeEquivTotalMomentRate, computeTotalEquivMeanAnnualRate, computeTotalProb, computeTotalProbAbove, computeTotalProbAbove, drawRandomEqkRuptureIndices, drawRandomEqkRuptures, drawSingleRandomEqkRuptureIndex, getInfo, getRuptureClone, getRuptureList, getRupturesIterator, getSourceMetadata, getTectonicRegionType, isPoissonianSource, isSourcePoissonian, iterator, setInfo, setTectonicRegionType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NAME

protected String NAME
Constructor Detail

FloatingPoissonFaultSource

public FloatingPoissonFaultSource(IncrementalMagFreqDist magDist,
                                  AbstractEvenlyGriddedSurfaceWithSubsets faultSurface,
                                  MagScalingRelationship magScalingRel,
                                  double magScalingSigma,
                                  double rupAspectRatio,
                                  double rupOffset,
                                  double rake,
                                  double duration,
                                  double minMag,
                                  int floatTypeFlag,
                                  double fullFaultRupMagThresh)
This creates the Simple Poisson Fault Source, where a variety floating options are given by the floatTypeFlag described below. All magnitudes below minMag are given a zero probability, and all those greater than or equal to fullFaultRupMagThresh are forced to rupture the entire fault.

Parameters:
magDist - - any incremental mag. freq. dist. object
faultSurface - - any EvenlyGriddedSurface representation of the fault
magScalingRel - - any magAreaRelationship or magLengthRelationthip
magScalingSigma - - uncertainty of the length(mag) or area(mag) relationship
rupAspectRatio - - ratio of rupture length to rupture width
rupOffset - - amount of offset for floating ruptures in km
rake - - average rake of the ruptures
duration - - the timeSpan of interest in years (this is a Poissonian source)
minMag - - the minimum magnitude to be considered from magDist (lower mags are ignored)
floatTypeFlag - - if = 0 full down-dip width ruptures; if = 1 float both along strike and down dip; if = 2 float only along strike and centered down dip.
fullFaultRupMagThresh - - magnitudes greater than or equal to this value will be forced to rupture the entire fault

FloatingPoissonFaultSource

public FloatingPoissonFaultSource(IncrementalMagFreqDist magDist,
                                  AbstractEvenlyGriddedSurfaceWithSubsets faultSurface,
                                  MagScalingRelationship magScalingRel,
                                  double magScalingSigma,
                                  double rupAspectRatio,
                                  double rupOffset,
                                  double rake,
                                  double duration,
                                  double minMag)
This constructor sets floatTypeFlag=1 and fullFaultRupMagThresh = Double.MAX_VALUE. Otherwise it's the same.


FloatingPoissonFaultSource

public FloatingPoissonFaultSource(IncrementalMagFreqDist magDist,
                                  AbstractEvenlyGriddedSurfaceWithSubsets faultSurface,
                                  MagScalingRelationship magScalingRel,
                                  double magScalingSigma,
                                  double rupAspectRatio,
                                  double rupOffset,
                                  double rake,
                                  double duration)
This constructor sets minMag=5, floatTypeFlag=1 and fullFaultRupMagThresh = Double.MAX_VALUE. Otherwise it's the same.

Method Detail

setDuration

public void setDuration(double newDuration)
This allows you to change the duration of the forecast

Parameters:
newDuration -

getAllSourceLocs

public LocationList getAllSourceLocs()
It returns a list of all the locations which make up the surface for this source.

Returns:
LocationList - List of all the locations which constitute the surface of this source

getSourceSurface

public AbstractEvenlyGriddedSurface getSourceSurface()
Description copied from interface: EqkSource
This gives the entire surface of the source

Returns:

getNumRuptures

public int getNumRuptures()
Description copied from class: ProbEqkSource
Get the number of ruptures for this source

Specified by:
getNumRuptures in interface EqkSource
Specified by:
getNumRuptures in class ProbEqkSource
Returns:
the total num of rutures for all magnitudes

getRupture

public ProbEqkRupture getRupture(int nthRupture)
This method returns the nth Rupture in the list

Specified by:
getRupture in interface EqkSource
Specified by:
getRupture in class ProbEqkSource

getMinDistance

public double getMinDistance(Site site)
This returns the shortest dist to the fault surface approximated as a region according to the corners and mid-points along strike (both on top and bottom trace).

Specified by:
getMinDistance in class ProbEqkSource
Parameters:
site -
Returns:
minimum distance in km

setName

public void setName(String name)
set the name of this class


getName

public String getName()
get the name of this class

Specified by:
getName in interface Named
Overrides:
getName in class ProbEqkSource
Returns: