7. Breakwater types¶
There are several types of breakwaters, the different types can be divided into two categories. Rubble mound breakwaters which are made out of large heaps of loose elements, and monolithic breakwaters which have a cross section acting as one block, for instance a caisson. Figure 7.1 depicts the representative cross sections for all breakwater types defined by CIRIA, CUR, CETMEF (2007, p. 781).
The following breakwater types from Figure 7.1 have been implemented:
conventional rubble mound breakwater, caisson breakwater and the vertically
composite breakwater. For each of these structures a class is defined with
which a conceptual design can be made. These classes automatically use the
functions and classes from the breakwater.core
, see Figure 7.2.
7.1. Conventional Rubble Mound¶
As mentioned in the introduction a rubble mound breakwater is made out of large heaps of loose elements, the armour layer of these types are made with either rock or concrete armour units such as Xbloc or XblocPlus. Both types of armour layer can be used to design a breakwater. Figure 7.3 depicts the used definition of a conventional rubble mound breakwater, for both types of armour layer.
7.1.1. Rock¶
-
class
breakwater.rubble.
RockRubbleMound
(slope, slope_foreshore, rho_w, B, N, LimitState, Grading, Dn50_core, safety=1, slope_toe=(2, 3), B_toe=None, beta=0, layers=2, layers_underlayer=2, vdm='max', Soil=None, phi=40, id=None, **kwargs)[source]¶ Design a breakwater with Rock as armour layer
Makes a conceptual design for a conventional rubble mound breakwater with rock as the armour layer, for one or several limit states. The following computations are performed:
- The armour layer is designed with the Van der Meer formulas for deep and shallow water (van der Meer, 1988; van Gent et al., 2003).
- The underlayer is designed by using the rules for the underlayer
- A filter layer is designed if one is needed, depends on
Dn50_core
- The toe is designed with the toe stability formula of Van der Meer (1998).
- The crest freeboard is computed with the formula from EurOtop (2018)
- The required width of the scour protection with Sumer and Fredsoe (2000)
- If a
Soil
is specified, a slip circle analysis is performed withBishop
Note
Depending on the input it might be that more rock classes are possible for the underlayer (and filter layer). In case the upper bound of the underlayer rule results in a different rock class as the lower bound, a new variant is generated. See
variantIDs
for a list of generated variants.Note
The notional permeability, P, in the van der Meer formula is set to a constant value of 0.4. This is due to the fact that the substructure of the breakwater will always have an underlayer.
Parameters: - slope (tuple) – Slope of the armour layer (V, H). For example a slope of 3V:4H is defined as (3, 4)
- slope_foreshore (tuple) – slope of the foreshore (V, H). For example a slope of 1:100 is defined as (1, 100)
- rho_w (float) – density of water [kg/m³]
- B (float) – Crest width [m]
- N (int) – Number of incident waves at the toe of the structure [-]
- LimitState (
LimitState
or list ofLimitState
) – ULS, SLS or another limit state defined withLimitState
- Grading (
RockGrading
) – standard rock grading defined in the NEN-EN 13383-1 or a user defined rock grading - Dn50_core (float) – nominal diameter for the stones in the core of the breakwater [m]
- safety (float, optional, default: 1) – safety factor of design (number of standard deviations from the mean)
- slope_toe (tuple, optional, default: (2,3)) – slope of the toe
- B_toe (float, optional, default: None) – width of the top of the toe in meters. By default the width of toe is taken as 3 * Dn50_toe.
- beta (float, optional, default: 0) – angle between direction of wave approach and a line normal to the breakwater (degrees).
- layers (int, optional, default: 2) – number of layers in the armour layer
- layers_underlayer (int, optional, default: 2) – number of layers in the underlayer
- vdm ({min, max, avg}, optional, default: max) – value to return in case both the deep and shallow water formula are valid. min for the lowest value, max for the highest value and avg for the average value, default is max.
- Soil (
Soil
, optional, default: None) – by default Soil is None, which means that the geotechnical checks are not performed. By specifying a Soil object, the geotechnical checks are automatically performed. - phi (float, optional, default: 40) – internal friction angle of rock [degrees]
- id (int, optional, default: None) – add a unique id to the breakwater
-
logger
¶ dict of warnings and messages
Type: dict
-
structure
¶ dictionary with the computed Dn50, rock class, and average Dn50 of the rock class for each layer and the toe. This dictionary includes all variants, use
get_variant()
to get the parameters of one specific variant. Alternatively,print_variant()
can be used to print the details of one, multiple or all variants.Type: dict
-
alpha
¶ slope of the structure in radians
Type: float
-
id
¶ unique id of the breakwater
Type: int
-
variantIDs
¶ list with the IDs of the variants generated for this rubble mound breakwater.
Type: list
-
Rc
¶ the crest freeboard of the structure [m]
Type: float
-
width_scour
¶ the required length of the scour protection [m]
Type: float
-
area
(variantID)¶ Compute the area of all layers
Method computes the area of each layer using Gauss’s area formula. Which is given by the following formula:
\[\mathbf{A}=\frac{1}{2} | \sum_{i=1}^{n-1} x_{i} y_{i+1} +x_{n} y_{1}-\sum_{i=1}^{n-1} x_{i+1} y_{i}-x_{1} y_{n} |\]Parameters: variantID (str) – identifier of the variant, see variantIDs
for a list of all generated variants.Returns: dict – dict with the area of each layer
-
check_validity
(decimals=3)[source]¶ Check if the used parameters are within the validity range
The Van der Meer equations for deep and shallow water are empirical equations, meaning that they are based on experiments. Therefore, the Van der Meer equations are, strictly speaking, only valid if the parameters are within the range of the parameters from the experiments. This method prints a table from which the validity range, used value and if the parameter is within validity range can be read.
Parameters: decimals (int, optional, default: 3) – number of decimals
-
cost
(*variants, core_price, transport_cost=None, output='variant')[source]¶ Compute the cost per meter for each variant
Method to compute the cost of each generated variant, the cost is computed per meter. The cost of the rocks must be specified in the RockGrading. If transport cost are not included in the price of rocks or core_price it can be given with the argument transport_cost.
Parameters: - *variants (str) – IDs of the variants to plot, see
variantIDs
for a list of all generated variants. If ‘all’ is in the arguments, all variants will be plotted. - core_price (float) – cost of the core material per m³
- transport_cost (float, optional, default: None) – the cost to transport a m³ of rock from the quarry to the project location
- output ({variant, layer, average}) – format of the output dict, variant returns the total cost of each variant, layer the cost of each layer for each variant and average returns the average cost.
Returns: dict – the cost
Raises: RockGradingError – if no pricing is included in the given RockGrading
- *variants (str) – IDs of the variants to plot, see
-
get_variant
(variantID)¶ Get the dimensions for the specified variant
Parameters: variantID (str) – identifier of the variant, see variantIDs
for a list of all generated variants.Returns: dict – Parameters and values (Dn50, Rock class) for one variant Raises: KeyError – If there is no variant with the given identifier
-
plot
(*variants, wlev=None, save_name=None)¶ Plot the cross section of the specified breakwater(s)
Parameters: - *variants (str) – IDs of the variants to plot, see
variantIDs
for a list of all generated variants. If ‘all’ is in the arguments, all variants will be plotted. - wlev (str, optional, default: None) – label of the
LimitState
from which the water level will be plotted. If no value is specified the water level from the normative limit state is used, which is the normative LimitState from the crest freeboard computation. - save_name (str, optional, default: None) – if given the cross section is not shown but saved with the given name
Raises: - InputError – If no variants are specified or if the label of wlev is not
a valid label of a
LimitState
- KeyError – If there is no variant with the given identifier
- *variants (str) – IDs of the variants to plot, see
-
print_logger
(level='warnings')¶ Print messages and warnings from the logger
Parameters: msg_level ({'info', 'warnings'}, optional, default: 'warnings') – specify print level, highest level is warnings and lowest level is info. Note that the info level will also print all warnings
-
print_variant
(*variants, decimals=3)¶ Print the details for the specified variant(s)
This method will print the computed Dn50, rock class, average Dn50 of the class, normative LimitState for all layers and specified variants.
Parameters: - *variants (str) – IDs of the variants to plot, see
variantIDs
for a list of all generated variants. If ‘all’ is in the arguments, all variants will be plotted. - decimals (int, optional, default: 3) – number of decimal places to round to
Raises: - InputError – If no arguments are specified
- KeyError – If there is no variant with the given identifier
- *variants (str) – IDs of the variants to plot, see
7.1.2. Armour Units¶
-
class
breakwater.rubble.
ConcreteRubbleMound
(slope, slope_foreshore, B, rho_w, LimitState, ArmourUnit, Grading, Dn50_core, safety=1, slope_toe=(2, 3), B_toe=None, beta=0, layers=1, layers_underlayer=2, filter_rule=None, Soil=None, phi=40, id=None, **kwargs)[source]¶ Design a breakwater with concrete armour units as armour layer
Makes a conceptual design for a conventional rubble mound breakwater with armour units as the armour layer, for one or several limit states. The following computations are performed:
- The armour layer is designed with the Hudson formula (Hudson, 1959), with \(H_{1/3}\) as wave height, in accordance with the design guidelines for Xbloc and XblocPlus (Delta Marine Consultants, 2018).
- The underlayer is designed by using the rules for the underlayer
- A filter layer is designed if one is needed, depends on
Dn50_core
- The toe is designed with the toe stability formula of Van der Meer (1998).
- The crest freeboard is computed with the formula from EurOtop (2018)
- The required width of the scour protection with Sumer and Fredsoe (2000)
- If a
Soil
is specified, a slip circle analysis is performed withBishop
Note
Depending on the input it might be that more rock classes are possible for the underlayer (and filter layer). In case the upper bound of the underlayer rule results in a different rock class as the lower bound, a new variant is generated. See
variantIDs
for a list of generated variants.Warning
Currently only the rules for the underlayer of Rock, Xbloc and XblocPlus have been implemented. However, it is possible to design with another type of armour units. In this case the filter rule must manually be set to Rock, Xbloc or XblocPlus.
Parameters: - slope (tuple) – Slope of the armour layer (V, H). For example a slope of 3V:4H is defined as (3, 4)
- slope_foreshore (tuple) – slope of the foreshore (V, H). For example a slope of 1:100 is defined as (1, 100)
- B (float) – Crest width [m]
- rho_w (float) – density of water [kg/m³]
- LimitState (
LimitState
or list ofLimitState
) – ULS, SLS or another limit state defined withLimitState
- ArmourUnit (obj) – armour unit class which inherits from
ConcreteArmour
, for instanceXbloc
orXblocPlus
- Grading (
RockGrading
) – standard rock grading defined in the NEN-EN 13383-1 or a user defined rock grading - Dn50_core (float) – nominal diameter for the stones in the core of the breakwater [m]
- safety (float, optional, default: 1) – safety factor of design (number of standard deviations from the mean)
- slope_toe (tuple, optional, default: (2,3)) – slope of the toe
- B_toe (float, optional, default: None) – width of the top of the toe in meters. By default the width of toe is taken as 3 * Dn50_toe.
- beta (float, optional, default: 0) – angle between direction of wave approach and a line normal to the breakwater (degrees).
- layers (int, optional, default: 1) – number of layers in the armour layer
- layers_underlayer (int, optional, default: 2) – number of layers in the underlayer
- filter_rule ({'Rock', 'Xbloc', 'XblocPlus'}, optional, default: None) – filter rule to use for the substructure of the breakwater, for Rock, Xbloc and XblocPlus the correct filter rule is automatically selected. In case another type of armour layer is used one of these filter rules must be chosen.
- Soil (
Soil
, optional, default: None) – by default Soil is None, which means that the geotechnical checks are not performed. By specifying a Soil object, the geotechnical checks are automatically performed. - phi (float, optional, default: 40) – internal friction angle of rock [degrees]
- id (int, optional, default: None) – add a unique id to the breakwater
-
logger
¶ dict of warnings and messages
Type: dict
-
structure
¶ dictionary with the computed Dn50, rock class, and average Dn50 of the rock class for each layer and the toe. This dictionary includes all variants, use
get_variant()
to get the parameters of one specific variant. Alternatively,print_variant()
can be used to print the details of one, multiple or all variants.Type: dict
-
alpha
¶ slope of the structure in radians
Type: float
-
id
¶ unique id of the breakwater
Type: int
-
variantIDs
¶ list with the IDs of the variants generated for this rubble mound breakwater.
Type: list
-
Rc
¶ the crest freeboard of the structure [m]
Type: float
-
width_scour
¶ the required length of the scour protection [m]
Type: float
-
area
(variantID)¶ Compute the area of all layers
Method computes the area of each layer using Gauss’s area formula. Which is given by the following formula:
\[\mathbf{A}=\frac{1}{2} | \sum_{i=1}^{n-1} x_{i} y_{i+1} +x_{n} y_{1}-\sum_{i=1}^{n-1} x_{i+1} y_{i}-x_{1} y_{n} |\]Parameters: variantID (str) – identifier of the variant, see variantIDs
for a list of all generated variants.Returns: dict – dict with the area of each layer
-
cost
(*variants, core_price, unit_price, transport_cost=None, output='variant')[source]¶ Compute the cost per meter for each variant
Method to compute the cost of each generated variant, the cost is computed per meter. The cost of the rocks in the substructure must be specified in the RockGrading. If transport cost are not included in the price of rocks or core_price it can be given with the argument transport_cost.
Note
The transport_cost are not added to the price of the armour layer. The assumption has been made that the cost of producing and transporting the armour units is included in the unit_price.
Parameters: - *variants (str) – IDs of the variants to plot, see
variantIDs
for a list of all generated variants. If ‘all’ is in the arguments, all variants will be plotted. - core_price (float) – cost of the core material per m³
- unit_price (float) – the cost of an armour unit per m³
- transport_cost (float, optional, default: None) – the cost to transport a m³ of rock from the quarry to the project location
- output ({variant, layer, average}) – format of the output dict, variant returns the total cost of each variant, layer the cost of each layer for each variant and average returns the average cost.
Returns: dict – the cost
Raises: RockGradingError – if no pricing is included in the given RockGrading
- *variants (str) – IDs of the variants to plot, see
-
get_variant
(variantID)¶ Get the dimensions for the specified variant
Parameters: variantID (str) – identifier of the variant, see variantIDs
for a list of all generated variants.Returns: dict – Parameters and values (Dn50, Rock class) for one variant Raises: KeyError – If there is no variant with the given identifier
-
plot
(*variants, wlev=None, save_name=None)¶ Plot the cross section of the specified breakwater(s)
Parameters: - *variants (str) – IDs of the variants to plot, see
variantIDs
for a list of all generated variants. If ‘all’ is in the arguments, all variants will be plotted. - wlev (str, optional, default: None) – label of the
LimitState
from which the water level will be plotted. If no value is specified the water level from the normative limit state is used, which is the normative LimitState from the crest freeboard computation. - save_name (str, optional, default: None) – if given the cross section is not shown but saved with the given name
Raises: - InputError – If no variants are specified or if the label of wlev is not
a valid label of a
LimitState
- KeyError – If there is no variant with the given identifier
- *variants (str) – IDs of the variants to plot, see
-
print_logger
(level='warnings')¶ Print messages and warnings from the logger
Parameters: msg_level ({'info', 'warnings'}, optional, default: 'warnings') – specify print level, highest level is warnings and lowest level is info. Note that the info level will also print all warnings
-
print_variant
(*variants, decimals=3)¶ Print the details for the specified variant(s)
This method will print the computed Dn50, rock class, average Dn50 of the class, normative LimitState for all layers and specified variants.
Parameters: - *variants (str) – IDs of the variants to plot, see
variantIDs
for a list of all generated variants. If ‘all’ is in the arguments, all variants will be plotted. - decimals (int, optional, default: 3) – number of decimal places to round to
Raises: - InputError – If no arguments are specified
- KeyError – If there is no variant with the given identifier
- *variants (str) – IDs of the variants to plot, see
7.2. (Composite) vertical¶
The caisson type and vertical composite breakwater are included in one design class as they are basically the same structures. The main difference is the water depth immediately in front of the caisson. In this package the classification criteria from EurOtop (2018) is used, which classifies a vertical breakwater as vertical if \(\frac{d}{h} > 0.6\), else the breakwater is classified as a vertically composite breakwater. In Figure 7.4 the definition of all parameters is depicted.
-
class
breakwater.caisson.
Caisson
(Pc, rho_c, rho_fill, rho_w, Bm, hb, layers, BermMaterial, LimitState, slope_foreshore, mu, safety=1, SF_sliding=1.2, SF_turning=1.2, beta=0, slope_foundation=(2, 3), lambda_=[1, 1, 1], pe_max=500, filter_rule=None, Grading=None, Soil=None, id=None, **kwargs)[source]¶ Design a (composite) vertical breakwater
Makes a conceptual design of a vertical or composite vertical breakwater, with a caisson on a rubble mound foundation. The following computations are performed:
- The necessary size of the armour layer of the foundation is designed with the modified Tanimoto formula (Takahashi, 2002).
- The required stone size for the core of the foundation
- The water depth in front of the caisson is computed based on the dimensions of the foundation and water depth
- The crest freeboard is computed with the formulae from EurOtop
(2018),
vertical()
is used, which automatically classifies the breakwater so that the correct formula is used. - The required width of the caisson is computed with the extended Goda formula (Takahasi, 2002).
- The required width of the scour protection with Sumer and Fredsoe (2000). Note that a scour protection is only added if the width of the foundation is not sufficient.
- If a Soil is specified the bearing capacity of the soil will also be checked with Brinch Hansen (1970).
Parameters: - Pc (float) – contribution of concrete to the total mass of the caisson. value between 0 and 1
- rho_c (float) – density of concrete [kg/m³]
- rho_fill (float) – density of the fill material [kg/m³]
- rho_w (float) – density of water [kg/m³]
- Bm (float) – width of the berm [m]
- hb (float) – height of the foundation layer [m]
- layers (int) – number of layers in the armour layer of the toe berm
- BermMaterial (obj) – should be a
RockGrading
or armour unit class which inherits fromConcreteArmour
, for instanceXbloc
orXblocPlus
- LimitState (
LimitState
or list ofLimitState
) – ULS, SLS or another limit state defined withLimitState
- slope_foreshore (tuple) – slope of the foreshore (V, H). For example a slope of 1:100 is defined as (1,100)
- mu (float) – friction factor between the caisson and the foundation [-]
- safety (float, optional, default: 1) – safety factor of design (number of standard deviations from the mean)
- SF_sliding (float, optional, default: 1.2) – safety factor against sliding. Default value according to Goda (2000)
- SF_turning (float, optional, default: 1.2) – safety factor against sliding. Default value according to Goda (2000)
- beta (float, optional, default: 0) – angle between direction of wave approach and a line normal to the breakwater [degrees]
- slope_foundation (tuple, optional, default: (2,3)) – Slope of the armour layer (V, H). For example a slope of 2V:3H is defined as (2,3)
- lambda (list, optional, default: [1, 1, 1]) – modification factors of Takahasi (2002) for alternative monolithic breakwater. Input must be lambda_= [\(\lambda_1, \lambda_2, \lambda_3\)].
- pe_max (float, optional, default: 500) – maximum value of the bearing pressure at the heel of the caisson. Default value is set to 500 kPa, Goda (2000) advises a value between 400 and 500 kPa. [kPa]
- filter_rule ({'Rock', 'Xbloc', 'XblocPlus'}, optional, default: None) – filter rule to use for the substructure of the breakwater, for rock, Xbloc and XblocPlus the correct filter rule is automatically selected. In case another type of armour layer is used one of these filter rules must be chosen.
- Grading (
RockGrading
, optional, default: None) – standard rock grading defined in the NEN-EN 13383-1 or a user defined rock grading. Required if the BermMaterial is not aRockGrading
. - Soil (
Soil
, optional, default: None) – by default Soil is None, which means that the geotechnical checks are not performed. By specifying a Soil object, the geotechnical checks are automatically performed. - id (int, optional, default: None) – unique id of the breakwater
-
logger
¶ dict of warnings and messages
Type: dict
-
structure
¶ dictionary with the computed Dn50, rock class, and average Dn50 of the rock class for each layer and the toe. This dictionary includes all variants, use
get_variant()
to get the parameters of one specific variant. Alternatively,print_variant()
can be used to print the details of one, multiple or all variants.Type: dict
-
id
¶ unique id of the breakwater
Type: int
-
variantIDs
¶ list with the IDs of the variants generated for this rubble mound breakwater.
Type: list
-
price
¶ cost of each variant, generated when
cost()
ordry_dock()
is used.Type: dict
-
width_scour
¶ the required length of the scour protection [m]. The distance is measured from the front of the caisson
Type: float
-
geotechnical
¶ dictionary with the computed values from the Brinch Hansen equation, has keys: Fr with the resistance, N with the net downward force and UC, which is the unity check (N/Fr). This dictionary is generated when the
Soil
argument is specified.Type: dict
-
area
(variantID)[source]¶ Compute the area of all layers
Method computes the area of each layer using Gauss’s area formula. Which is given by the following formula:
\[\mathbf{A}=\frac{1}{2} | \sum_{i=1}^{n-1} x_{i} y_{i+1} +x_{n} y_{1}-\sum_{i=1}^{n-1} x_{i+1} y_{i}-x_{1} y_{n} |\]Parameters: variantID (str) – identifier of the variant, see variantIDs
for a list of all generated variants.Returns: dict – dict with the area of each layer
-
cost
(*variants, concrete_price, fill_price, unit_price=None, output='variant')[source]¶ Compute the cost per meter for each variant
Method to compute the cost of each generated variant, the cost is computed per meter
Parameters: - *variants (str) – IDs of the variants to plot, see
variantIDs
for a list of all generated variants. If ‘all’ is in the arguments, all variants will be plotted. - concrete_price (float) – price of concrete per m³
- fill_price (float) – price of the fill material per m³
- unit_price (float, optional, default: None) – the cost of an armour unit per m³, required if the armour layer of the foundation is made out of armour units
- output ({variant, layer, average}) – format of the output dict, variant returns the total cost of each variant, layer the cost of each layer for each variant and average returns the average cost.
Returns: dict – the cost
Raises: RockGradingError – if no pricing is included in the given RockGrading
- *variants (str) – IDs of the variants to plot, see
-
dry_dock
(investment, length)[source]¶ Add the investment cost of a dry dock to the concept
This method adds the investment required to rent a dry dock to the concept. The investment cost is added to the concept by dividing the investment trough the length of the breakwater to get the required investment per running meter.
Parameters: - investment (float) – the investment required to rent a dry dock
- length (float) – length of the breakwater [m]
-
get_variant
(variantID)[source]¶ Get the dimensions for the specified variant
Parameters: variantID (str) – identifier of the variant, see variantIDs
for a list of all generated variants.Returns: dict – Parameters and values of the caisson (B, Rc) and the foundation layer (Dn50, Rock class) for one variant. Raises: KeyError – If there is no variant with the given identifier
-
plot
(*variants, wlev=None, save_name=None)[source]¶ Plot the cross section of the specified breakwater(s)
Parameters: - *variants (str) – IDs of the variants to plot, see
variantIDs
for a list of all generated variants. If ‘all’ is in the arguments, all variants will be plotted. - wlev (str, optional, default: None) – label of the
LimitState
from which the water level will be plotted. If no value is specified the water level from the normative limit state is used, which is the normative LimitState from the crest freeboard computation. - save_name (str, optional, default: None) – if given the cross section is not shown but saved with the given name
Raises: - InputError – If no variants are specified or if the label of wlev is not
a valid label of a
LimitState
- KeyError – If there is no variant with the given identifier
- *variants (str) – IDs of the variants to plot, see
-
plot_pressure
()[source]¶ Plot pressure distribution computed extended Goda formula
Plots the pressure distribution computed with the extended Goda formula (Takahasi, 2002) together with the dimensions of the monolithic breakwater.
Warning
Do not read the dimensions of the monolithic breakwater from the axes of the figure. The correct dimensions of the monolithic breakwater are depicted in the figure, or use
get_variant()
orprint_variant()
.
-
print_logger
(level='warnings')[source]¶ Print messages and warnings in the logger
Parameters: msg_level ({'info', 'warnings'}, optional, default: 'warnings') – specify print level, highest level is warnings and lowest level is info. Note that the info level will also print all warnings
-
print_variant
(*variants, decimals=3)[source]¶ Print the details for the specified variant(s)
This method will print the details of the structure for the specified variant(s). It prints the dimensions of the caisson (B, Rc) and the dimensions of the foundation layer (Dn50, rock class). Furthermore, from the table the normative LimitState for the design can be read.
Parameters: - *variants (str) – IDs of the variants to plot, see
variantIDs
for a list of all generated variants. If ‘all’ is in the arguments, all variants will be plotted. - decimals (int, optional, default: 3) – number of decimal places to round to
Raises: - InputError – If no arguments are specified
- KeyError – If there is no variant with the given identifier
- *variants (str) – IDs of the variants to plot, see