pystra.fbc.FBCProcess#

class FBCProcess(name, parent, basic_interval)[source]#

Bases: object

Ferry-Borges-Castanheta rectangular-wave load process.

The Ferry-Borges-Castanheta (FBC) model represents a load process as a sequence of independent rectangular pulses of equal duration. Within each basic interval the process is constant; between intervals a new value is drawn from the interval parent distribution.

This class is intentionally a small distribution factory. It does not run a reliability analysis and does not create load combinations by itself. It only returns ordinary Pystra distribution objects that can be added to a StochasticModel or used in LoadCombination cases.

Load combinations are a separate modelling choice. For example, pystra.loadcomb.LoadCombination.turkstra() uses FBC process objects to generate leading-action cases according to Turkstra’s rule.

Parameters:
  • name (str) – Name of the load process. This must match the name of parent and the corresponding argument in the limit-state function.

  • parent (Distribution) – Distribution of the process value in one basic interval.

  • basic_interval (float) – Duration of one rectangular-wave interval, in the same time units used for duration arguments passed to maximum().

Notes

For a duration \(T\) and basic interval \(\tau\), the maximum is represented by Maximum(parent, N=T/tau). Durations shorter than one basic interval are treated as one interval.

Examples

>>> import pystra as ra
>>> Q = ra.FBCProcess(
...     "Q", parent=ra.Gumbel("Q", 0.89, 0.2), basic_interval=1/52
... )
>>> Q.point_in_time()
>>> Q.maximum(duration=50)

Methods

from_maximum

Create a process from a known maximum distribution.

interval_count

Return the number of basic intervals in a duration.

maximum

Return the distribution of the process maximum.

point_in_time

Return the interval parent distribution.

classmethod from_maximum(name, maximum, maximum_duration, basic_interval)[source]#

Create a process from a known maximum distribution.

This is useful when a code or model supplies, for example, an annual maximum distribution but the FBC process requires the distribution of one basic interval. The interval parent is inferred using MaxParent.

Parameters:
  • name (str) – Process and random-variable name.

  • maximum (Distribution) – Distribution of the maximum over maximum_duration.

  • maximum_duration (float) – Duration represented by maximum.

  • basic_interval (float) – Basic interval of the rectangular-wave process.

Returns:

Process whose parent distribution is inferred from maximum.

Return type:

FBCProcess

interval_count(duration=None, n=None)[source]#

Return the number of basic intervals in a duration.

Either duration or n may be supplied, but not both. Durations shorter than one basic interval are treated as one interval, which is the parent distribution.

Parameters:
  • duration (float, optional) – Duration over which the process is observed.

  • n (float, optional) – Direct number of basic intervals.

Returns:

Number of basic intervals used in the maximum distribution.

Return type:

float

point_in_time()[source]#

Return the interval parent distribution.

Returns:

Distribution of the process value in one basic interval.

Return type:

Distribution

maximum(duration=None, n=None)[source]#

Return the distribution of the process maximum.

Parameters:
  • duration (float, optional) – Duration over which the maximum is taken.

  • n (float, optional) – Direct number of basic intervals over which the maximum is taken.

Returns:

Distribution of the maximum over the requested duration or number of intervals.

Return type:

Maximum