fosanalysis
A framework to evaluate distributed fiber optic sensor data
Loading...
Searching...
No Matches
fosanalysis.crackmonitoring.strainprofile.StrainProfile Class Reference

Hold the strain data and methods to identify cracks and calculate the crack widths. More...

Inheritance diagram for fosanalysis.crackmonitoring.strainprofile.StrainProfile:

Public Member Functions

 __init__ (self, np.array x, np.array strain, np.array strain_inst=None, crackfinder=None, integrator=None, lengthsplitter=None, str name="", shrink_compensator=None, bool suppress_compression=True, ts_compensator=None, *args, **kwargs)
 Constructs a strain profile object.
 
 add_cracks (self, *tuple cracks_tuple, bool recalculate=True)
 Use this function to manually add a crack to crack_list at the closest measuring point to x after an intial crack identification.
 
cracks.CrackList calculate_crack_widths (self, bool clean=True)
 Returns the crack widths.
 
np.array calculate_tension_stiffening (self)
 Compensates for the strain, that does not contribute to a crack, but is located in the uncracked concrete.
 
 clean_data (self)
 Resetting several attributes to it's original state before any calculations.
 
np.array compensate_shrink (self, *args, **kwargs)
 Calculate the shrink influence of the concrete and store it in shrink_calibration_values.
 
list delete_cracks (self, *tuple cracks_tuple, bool recalculate=True)
 Use this function to manually delete cracks from crack_list, that were wrongfully identified automatically by find_cracks().
 
 find_cracks (self)
 Identify cracks, settings are stored in crackfinder.
 
list set_lt (self)
 Estimate transfer length to crack_list, settings are stored in lengthsplitter.
 
- Public Member Functions inherited from fosanalysis.utils.base.Workflow
 __init__ (self, *args, **kwargs)
 
- Public Member Functions inherited from fosanalysis.utils.base.Base
 __init__ (self, *args, **kwargs)
 Construct the object and warn about unused/unknown arguments.
 

Public Attributes

 crack_list = cracks.CrackList()
 List of cracks, see cracks.Crack for documentation.
 
 crackfinder = crackfinder if crackfinder is not None else finding.CrackFinder()
 finding.CrackFinder object, wich holds the settings for peak identification.
 
 integrator = integrator if integrator is not None else utils.integration.Integrator()
 utils.integration.Integrator object used to integrate the strain data to estimate the crack widths.
 
 lengthsplitter = lengthsplitter if lengthsplitter is not None else separation.CrackLengths()
 separation.CrackLengths object used to assign the cracks their respective effective lengths.
 
 name = name
 Name of the strain profile, defaults to "".
 
 shrink_calibration_values = None
 Array of calibration values for the shrinking in the measurement area.
 
 shrink_compensator = shrink_compensator
 compensation.shrinking.ShrinkCompensator object to compensate the strain values for concrete shrinking and creep.
 
 strain = strain
 Strain data in the measurement area in accordance to x.
 
 strain_inst = strain_inst
 Strain data (y-axis) for the initial load experiment.
 
 suppress_compression = suppress_compression
 Switch, whether compression (negative strains) should be suppressed, defaults to True.
 
 tension_stiffening_values = None
 Array of the tension stiffening.
 
 ts_compensator = ts_compensator
 compensation.tensionstiffening.TensionStiffeningCompensator object used to substract out the influence of tension stiffening on the crack width.
 
 x = x
 Location data of the measurement area in accordance to strain.
 

Protected Attributes

np.array _strain_compensated = None
 Strain, from which the crack widths are calculated.
 

Detailed Description

Hold the strain data and methods to identify cracks and calculate the crack widths.

The crack widths are calculated with the general equation:

\[ w_{\mathrm{cr},i} = \int_{l_{\mathrm{eff,l},i}}^{l_{\mathrm{eff,r},i}} \varepsilon^{\mathrm{DOFS}}(x) - \varepsilon^{\mathrm{ts}}(x) - \varepsilon^{\mathrm{shrink}}(x) \mathrm{d}x \]

With

Definition at line 20 of file strainprofile.py.

Constructor & Destructor Documentation

◆ __init__()

fosanalysis.crackmonitoring.strainprofile.StrainProfile.__init__ ( self,
np.array x,
np.array strain,
np.array strain_inst = None,
crackfinder = None,
integrator = None,
lengthsplitter = None,
str name = "",
shrink_compensator = None,
bool suppress_compression = True,
ts_compensator = None,
* args,
** kwargs )

Constructs a strain profile object.

Parameters
xLocation data of the measurement area in accordance to strain. For more, see x.
strainStrain data in the measurement area in accordance to x. For more, see strain.
strain_instStrain data (y-axis) for the initial load experiment. For more, see strain_inst.
crackfinderfinding.CrackFinder object, wich holds the settings for peak identification. For more, see crackfinder.
integratorutils.integration.Integrator object used to integrate the strain data to estimate the crack widths. For more, see integrator.
lengthsplitterseparation.CrackLengths object used to assign the cracks their respective effective lengths. For more, see lengthsplitter.
nameName of the strain profile, defaults to "". For more, see name.
shrink_compensatorcompensation.shrinking.ShrinkCompensator object to compensate the strain values for concrete shrinking and creep. For more, see shrink_compensator.
suppress_compressionSwitch, whether compression (negative strains) should be suppressed, defaults to True. For more, see suppress_compression.
ts_compensatorcompensation.tensionstiffening.TensionStiffeningCompensator object used to substract out the influence of tension stiffening on the crack width. For more, see ts_compensator.
*argsAdditional positional arguments, will be passed to the superconstructor.
**kwargsAdditional keyword arguments, will be passed to the superconstructor.

Definition at line 37 of file strainprofile.py.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ add_cracks()

fosanalysis.crackmonitoring.strainprofile.StrainProfile.add_cracks ( self,
*tuple cracks_tuple,
bool recalculate = True )

Use this function to manually add a crack to crack_list at the closest measuring point to x after an intial crack identification.

It assumes, that find_cracks() is run beforehand at least once. Afterwards, set_lt() and calculate_crack_widths() is run, if recalculate is set to True.

Parameters
cracks_tupleAny number of cracks.Crack objects or numbers (mix is allowed). In case of a number, it is assumed to be the (approximate) position of the crack. The added cracks.Crack object will be put at the closest entry of x. In case of a cracks.Crack object (e.g. imported from another StrainProfile), a copy is placed at the closest measuring of x to cracks.Crack.location.
recalculateSwitch, whether all crack should be updated after the insertion, defaults to True. Set to False, if you want to suppress a recalculation, until you are finished with modifying crack_list.

Definition at line 201 of file strainprofile.py.

Here is the call graph for this function:

◆ calculate_crack_widths()

cracks.CrackList fosanalysis.crackmonitoring.strainprofile.StrainProfile.calculate_crack_widths ( self,
bool clean = True )

Returns the crack widths.

The following is done:

  1. Find the crack positions, see find_cracks().
  2. Find the effective lengths of the crack, see set_lt().
  3. Shrinking/creep is taken into account, see compensate_shrink().
  4. Taking tension stiffening (subtraction of triangular areas) into account, see calculate_tension_stiffening().
  5. For each crack segment, the crack width is calculated by integrating the strain using fosdata.integrate_segment().
Parameters
cleanSwitch, whether the all data should be cleaned using clean_data() before carrying out any calculation. Defaults to True.
Returns
Returns a cracks.CrackList.

Definition at line 119 of file strainprofile.py.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calculate_tension_stiffening()

np.array fosanalysis.crackmonitoring.strainprofile.StrainProfile.calculate_tension_stiffening ( self)

Compensates for the strain, that does not contribute to a crack, but is located in the uncracked concrete.

Returns
An array with the compensation values for each measuring point is returned.

Definition at line 188 of file strainprofile.py.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ clean_data()

fosanalysis.crackmonitoring.strainprofile.StrainProfile.clean_data ( self)

Resetting several attributes to it's original state before any calculations.

Clears:

Definition at line 108 of file strainprofile.py.

Here is the caller graph for this function:

◆ compensate_shrink()

np.array fosanalysis.crackmonitoring.strainprofile.StrainProfile.compensate_shrink ( self,
* args,
** kwargs )

Calculate the shrink influence of the concrete and store it in shrink_calibration_values.

It is required to provide the following attributes:

Definition at line 173 of file strainprofile.py.

Here is the caller graph for this function:

◆ delete_cracks()

list fosanalysis.crackmonitoring.strainprofile.StrainProfile.delete_cracks ( self,
*tuple cracks_tuple,
bool recalculate = True )

Use this function to manually delete cracks from crack_list, that were wrongfully identified automatically by find_cracks().

After the deletion, set_lt() and calculate_crack_widths() is run, if recalculate is set to True.

Parameters
cracks_tupleAny number of integers (list indexes) of the cracks that should be deleted.
recalculateSwitch, whether all crack should be updated after the insertion, defaults to True.
Returns
Returns a cracks.CrackList of the deleted cracks.Crack objects.

Definition at line 236 of file strainprofile.py.

Here is the call graph for this function:

◆ find_cracks()

fosanalysis.crackmonitoring.strainprofile.StrainProfile.find_cracks ( self)

Identify cracks, settings are stored in crackfinder.

Definition at line 158 of file strainprofile.py.

Here is the caller graph for this function:

◆ set_lt()

list fosanalysis.crackmonitoring.strainprofile.StrainProfile.set_lt ( self)

Estimate transfer length to crack_list, settings are stored in lengthsplitter.

If crack_list is empty, find_cracks() is carried out beforehand.

Definition at line 164 of file strainprofile.py.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ _strain_compensated

np.array fosanalysis.crackmonitoring.strainprofile.StrainProfile._strain_compensated = None
protected

Strain, from which the crack widths are calculated.

It is reset to strain in calculate_crack_widths(). It is only for inspection/debugging purposes.

Definition at line 74 of file strainprofile.py.

◆ crack_list

fosanalysis.crackmonitoring.strainprofile.StrainProfile.crack_list = cracks.CrackList()

List of cracks, see cracks.Crack for documentation.

To restart the calculation again, set to run clean_data() and run calculate_crack_widths() afterwards.

Definition at line 87 of file strainprofile.py.

◆ crackfinder

fosanalysis.crackmonitoring.strainprofile.StrainProfile.crackfinder = crackfinder if crackfinder is not None else finding.CrackFinder()

finding.CrackFinder object, wich holds the settings for peak identification.

Defaults to the default configuration of finding.CrackFinder.

Definition at line 93 of file strainprofile.py.

◆ integrator

fosanalysis.crackmonitoring.strainprofile.StrainProfile.integrator = integrator if integrator is not None else utils.integration.Integrator()

utils.integration.Integrator object used to integrate the strain data to estimate the crack widths.

Defaults to the default configuration of utils.integration.Integrator.

Definition at line 102 of file strainprofile.py.

◆ lengthsplitter

fosanalysis.crackmonitoring.strainprofile.StrainProfile.lengthsplitter = lengthsplitter if lengthsplitter is not None else separation.CrackLengths()

separation.CrackLengths object used to assign the cracks their respective effective lengths.

Defaults to the default configuration of separation.CrackLengths.

Definition at line 96 of file strainprofile.py.

◆ name

fosanalysis.crackmonitoring.strainprofile.StrainProfile.name = name

Name of the strain profile, defaults to "".

Definition at line 104 of file strainprofile.py.

◆ shrink_calibration_values

fosanalysis.crackmonitoring.strainprofile.StrainProfile.shrink_calibration_values = None

Array of calibration values for the shrinking in the measurement area.

If shrink_compensator is not None, it is calculated by compensate_shrink(). Else, it defaults to np.zeros of the same length as strain.

Definition at line 81 of file strainprofile.py.

◆ shrink_compensator

fosanalysis.crackmonitoring.strainprofile.StrainProfile.shrink_compensator = shrink_compensator

compensation.shrinking.ShrinkCompensator object to compensate the strain values for concrete shrinking and creep.

Defaults to None, which is equivalent to no compensation.

Definition at line 90 of file strainprofile.py.

◆ strain

fosanalysis.crackmonitoring.strainprofile.StrainProfile.strain = strain

Strain data in the measurement area in accordance to x.

This data is assumed to be already preprocessed, see preprocessing.Preprocessing.

Definition at line 70 of file strainprofile.py.

◆ strain_inst

fosanalysis.crackmonitoring.strainprofile.StrainProfile.strain_inst = strain_inst

Strain data (y-axis) for the initial load experiment.

This data is assumed to be already preprocessed, see preprocessing.Preprocessing.

Definition at line 77 of file strainprofile.py.

◆ suppress_compression

fosanalysis.crackmonitoring.strainprofile.StrainProfile.suppress_compression = suppress_compression

Switch, whether compression (negative strains) should be suppressed, defaults to True.

Suppression is done after compensation for shrinking and tension stiffening.

Definition at line 107 of file strainprofile.py.

◆ tension_stiffening_values

fosanalysis.crackmonitoring.strainprofile.StrainProfile.tension_stiffening_values = None

Array of the tension stiffening.

While integrating the crack width, it is subtracted from the strain values.

Definition at line 84 of file strainprofile.py.

◆ ts_compensator

fosanalysis.crackmonitoring.strainprofile.StrainProfile.ts_compensator = ts_compensator

compensation.tensionstiffening.TensionStiffeningCompensator object used to substract out the influence of tension stiffening on the crack width.

Defaults to None, which is equivalent to no compensation.

Definition at line 99 of file strainprofile.py.

◆ x

fosanalysis.crackmonitoring.strainprofile.StrainProfile.x = x

Location data of the measurement area in accordance to strain.

This data is assumed to be already preprocessed, see preprocessing.Preprocessing.

Definition at line 67 of file strainprofile.py.


The documentation for this class was generated from the following file: