5. Material¶
The most important construction materials for breakwaters are quarry stone and concrete, as this is the material used in the armour layer. Both types can be used for designing breakwaters, the rock grading is defined in the first section, whereafter the concrete armour units are defined.
5.1. Rock¶
-
class
breakwater.material.
RockGrading
(grading=None, rho=2650, y_NLL=0.06, y_NUL=0.9)[source]¶ Standard rock grading of the standard NEN-EN 13383-1 (2002)
Create a Rock Grading to determine the rock class in
RockRubbleMound
,ConcreteRubbleMound
,RubbleMound
orCaisson
. By default the standard rock grading of the NEN-EN 13383-1 (2002) is used. However, it is possible to change the grading to a user defined custom grading by giving one in the arguments.Parameters: - grading (dict, optional, default: None) – If specified the custom grading will replace the default rock grading of the NEN-EN 13383-1. The custom grading must be formatted as {str: {‘M50’: [float, float], ‘NLL’: float, ‘NUL’: float}}, with str the rock class and a lower and upper bound for M50. Furthermore, the NLL and NUL mass must be specified.
- rho (float, optional, default: 2650) – density of the armourstone [kg/m³]
- y_NLL (float, optional, default: 0.06) – the fraction passing at the nominal lower limit mass (NLL) of a grading
- y_NUL (float, optional, default: 0.9) – the fraction passing at the nominal upper limit mass (NUL) of a grading
-
grading
¶ dictionary of the chosen rock grading
Type: dict
-
rho
¶ density of the armourstone
Type: float
-
y_NLL
¶ the fraction passing at the nominal lower limit mass (NLL)
Type: float
-
y_NUL
¶ the fraction passing at the nominal upper limit mass (NUL)
Type: float
-
add_cost
(cost)[source]¶ Add cost per m³ of each Rock Class
Add the cost per m³ of each Rock Class to the
grading
Parameters: cost (dict) – cost of each Rock Class, keys must be identical to the name of the rock class
Raises: - KeyError – if a rock class of the given cost is not in the grading
- InputError – if a rock class of the
grading
has no price
-
get_class
(Dn50)[source]¶ Get the rock class for a given Dn50
Parameters: Dn50 (float) – nominal diameter of the armourstone [m] Returns: str – Rock class Raises: RockGradingError – If the computed Dn50 of the armour layer is out of range for the specified rock grading
-
get_class_dn50
(class_)[source]¶ Get the average Dn50 of a rock class
Parameters: class (str) – Rock class Returns: Dn50 (float) – nominal diameter of the armourstone [m] Raises: KeyError – If the specified rock class is not in the rock grading
-
plot_rosin_rammler
(class_)[source]¶ plot the Rosin-Rammler curve for an idealised gradings
Parameters: class (str) – Rock class Raises: KeyError – If the specified rock class is not in the rock grading
-
rosin_rammler
(class_, y)[source]¶ Compute the Rosin-Rammler curve for an idealised gradings
The Rosin-Rammler curve can be used to interpolate between the limits of standard gradings (CIRIA, CUR, CETMEF, 2007). Given that two fixed point on the curve are known, for instance the NLL and NUL limits, M50 and the uniformity coefficient, n_RRM, can be computed. These values are subsequently used to compute My.
\[M_{y} = M_{50} \left(\frac{\ln{(1 - y)}}{\ln{(0.5)}} \right)^{1/n_{RRM}}\]Parameters: - class (str) – Rock class
- y (float) – the fraction passing value
Returns: My (float) – the mass corresponding to that value using a percentage subscript to express that fraction [kg]
Raises: KeyError – If the specified rock class is not in the rock grading
5.2. Concrete Armour Units¶
The availability of rock is limited. Furthermore, natural blocks weighing more than 10 tons are very rare. However, sometimes a block larger than 10 tons is needed or a breakwater is constructed in an area with limited availability of rock. In these cases artificial blocks, made of concrete, are used.
Several types of concrete armour units have been developed over the years.
Currently only Xbloc and XblocPlus from Delta Marine Consultants have been
incorporated in the package. However, it is possible to define another type
of concrete armour unit by using ConcreteArmour
.
5.2.1. General¶
-
class
breakwater.material.
ConcreteArmour
(kd, units, name=None, rho=2400)[source]¶ Define concrete armour units
Define a type of concrete armour unit,
Xbloc
andXblocPlus
have been predefined.Parameters: - kd (int) – Stability coefficient [-]
- units (dict) – Dictionary of the defined concrete armour units. Format must be {V: dict}, where V is the volume of the armour unit (float) and dict = {‘D’: float, ‘h’: float, ‘Vc’: float} in which D is the diameter, h is the thickness of the armour layers and Vc is the volume of concrete.
- name (str, optional, default: None) – name of the ArmourUnit, by default the name of the armour unit is derived from the name of the class.
- rho (float, optional, default: 2400) – density of the concrete used to make the armour units [kg/m³]
-
kd
¶ Stability coefficient [-]
Type: int
-
units
¶ Dictionary of the defined concrete armour units. Format must be {V: dict}, where V is the volume of the armour unit (float) and dict = {‘D’: float, ‘h’: float, ‘Vc’: float} in which D is the diameter, h is the thickness of the armour layers and Vc is the volume of concrete.
Type: dict
-
rho
¶ density of the concrete used to make the armour units [kg/m³]
Type: float, optional, default: 2400
5.2.2. Predefined types¶
-
class
breakwater.material.
Xbloc
(rho=2400)[source]¶ Xbloc concrete armour units
Xbloc is an armour unit developed by Delta Marine Consultants (DMC). All units have been predefined in
units
, with the values from table 1 from Delta Marine Consultants (2018).Parameters: rho (float, optional, default: 2400) – density of the concrete used to make the armour units -
kd
¶ Stability coefficient [-]
Type: int
-
units
¶ Dictionary of the defined concrete armour units. Format is {V: dict}, where V is the volume of the Xbloc (float) and dict = {‘D’: float, ‘h’: float, ‘Vc’: float} in which D is the diameter, h is the thickness of the armour layers and Vc is the volume of concrete.
Type: dict
-
rho
¶ density of the concrete used to make the armour units [kg/m³]
Type: float, optional, default: 2400
-
correction_factor
(Hs, h, Rc, occurrence_hs, slope, slope_foreshore, permeability, logger=None, **kwargs)[source]¶ Determine correction factor for Xbloc
Correction factors for phenomena which require an increase in the Xbloc unit sizes. For the conceptual design of structures the correction factor must be multiplied with the volume (Delta Marine Consultants, 2018).
Parameters: - Hs (float) – significant wave height [m]
- h (float) – water depth [m]
- Rc (float) – Crest freeboard [m]
- occurrence_hs (bool) – True if frequent occurrence of the near-design wave height during the lifetime of the structure. False if no frequent occurrence
- slope (float) – slope of the armour layer [rad]
- slope_foreshore (float) – slope of the foreshore [rad]
- permeability ({'permeable', 'low', 'impermeable'}) – Permeability of the core
- logger (dict, optional, default: None) – dict to log messages, must have keys ‘INFO’ and ‘WARNINGS’
Returns: float – The correction factor to be applied on the volume. Returns 1 if no correction factor is needed.
-
get_class
(d)¶ Get the volume of a standard concrete armour unit
Parameters: d (float) – minimal required diameter [m] Returns: float – Volume of a standard armour unit Raises: ArmourUnitsError – If the computed Dn of the armour layer is out of range for the specified armour units
-
-
class
breakwater.material.
XblocPlus
(rho=2400)[source]¶ XblocPlus concrete armour units
XblocPlus is an armour unit developed by Delta Marine Consultants (DMC). All units have been predefined in
units
, with the values from table 2 from Delta Marine Consultants (2018).Parameters: rho (float, optional, default: 2400) – density of the concrete used to make the armour units -
kd
¶ Stability coefficient [-]
Type: int
-
units
¶ Dictionary of the defined concrete armour units. Format is {V: dict}, where V is the volume of the XblocPlus unit (float) and dict = {‘L1’: float, ‘L2’: float, ‘L3’: float, ‘h’: float ‘Vc’: float} in which L1, L2 and L3 are the dimensions, h is the thickness of the armour layers and Vc is the volume of concrete.
Type: dict
-
rho
¶ density of the concrete used to make the armour units [kg/m³]
Type: float, optional, default: 2400
-
correction_factor
(Hs, Rc, slope_foreshore, permeability, logger=None, **kwargs)[source]¶ Determine correction factor for XblocPlus
Correction factors for phenomena which require an increase in the XblocPlus unit sizes. For the conceptual design of structures the correction factor must be multiplied with the volume (Delta Marine Consultants, 2018).
Parameters: - Hs (float) – significant wave height [m]
- Rc (float) – Crest freeboard [m]
- slope_foreshore (float) – slope of the foreshore [rad]
- permeability (str) – Permeability of the core {‘permeable’, ‘low’, ‘impermeable’}
- logger (dict, optional, default: None) – dict to log messages, must have keys ‘INFO’ and ‘WARNINGS’
Returns: float – The correction factor to be applied on the volume. Returns 1 if no correction factor is needed.
-
get_class
(d)¶ Get the volume of a standard concrete armour unit
Parameters: d (float) – minimal required diameter [m] Returns: float – Volume of a standard armour unit Raises: ArmourUnitsError – If the computed Dn of the armour layer is out of range for the specified armour units
-
5.2.3. User defined Armour Unit¶
As mentioned at the start of this section it is possible to define another type
of Armour Unit by using the general class
bw.ConcreteArmour
. In this
subsection an example is given how to define a custom armour unit, which can
be used in bw.ConcreteRubbleMound
to design a breakwater. The following code must be used to define the custom
armour unit:
# define class of the armour unit which inherits from bw.ConcreteArmour
class CustomArmourUnit(bw.ConcreteArmour):
""" Custom Armour Unit class """
# define the init method, note that it is not required to give a
# keyword argument.
def __init__(self, rho=2400):
""" See help(CustomArmourUnit) for more info """
# define the armour units in the init method
units = {
1: {'D': 1, 'h': 1, 'Vc': 1},
2: {'D': 2, 'h': 2, 'Vc': 2},
3: {'D': 3, 'h': 3, 'Vc': 3},
4: {'D': 4, 'h': 4, 'Vc': 4},
}
# call the init method of bw.ConcreteArmour with super and pass
# the following arguments: kd factor for Hudson formula, name of
# the armour unit for overtopping and rho for the density
super().__init__(kd=10, units=units, name='CustomArmourUnit', rho=rho)
# this is an optional step. It is possible to define a method
# to compute a correction factor to be applied on the computed
# required nominal diameter. Method must allow for kwargs input
# as several parameters are passed to the method, it is not
# necessary to use all of the passed parameters
def correction_factor(self, h, Hs, Rc, **kwargs):
# it is then possible to build logic in order to determine the
# correction factor, for example:
# define list to store more correction factors
correction = []
# check for water depth wave height relation
if h > 2.5*Hs:
correction.append(1.3)
else:
pass
# check for low crested structure
if Rc/Hs < 1:
correction.append(1.5)
else:
pass
# check if any correction factors have been added
if any(correction):
# return maximum value
return max(correction)
else:
# return 1, in other words, no correction factor
# make sure a correction_factor is always returned
return 1
Warning
When using one of the design classes, the supported armour units are limited to the armour units for which an influence factor for the permeability and roughness of the slope has been determined.
Note
It is not required to add a method to compute a correction factor, the design classes do raise an exception if there is no method to compute a correction factor. However, in case you want to define a method to compute a correction factor the following kwargs can be used to determine the correction factor:
Argument | Type | Description |
---|---|---|
h | float | water depth |
Hs | float | significant wave height |
Rc | float | crest freeboard |
occurrence_hs | bool | frequent occurrence of the near-design wave height during the
during the lifetime of the structure
|
slope | float | slope of the armour layer in radians |
slope_foreshore | float | slope of the foreshore in radians |
permeability | str | permeability of the core {permeable, low, impermeable} |
Dn | float | nominal diameter of the armour units in the armour layer |
layers | int | number of layers in the armour layer |
B | float | crest width |
beta | float | angle between direction of wave approach and a line normal to
the breakwater in degrees
|