Package {FCGR}


Title: Fatigue Crack Growth in Reliability
Version: 1.2-0
Description: Fatigue Crack Growth in Reliability estimates the distribution of material lifetime due to mechanical fatigue efforts. The 'FCGR' package provides simultaneous crack growth curves fitting to different specimens in materials under mechanical stress efforts. Linear mixed-effects models with smoothing B-Splines and the linearized Paris-Erdogan law are applied. Once defined the fail for a determined crack length, the distribution function of failure times to fatigue is obtained. The density function is estimated by applying nonparametric binned kernel density estimate ('bkde') and the kernel estimator of the distribution function ('kde'). The results of Pinheiro and Bates method based on nonlinear mixed-effects regression ('nlme') can be also retrieved. The package contains the crack.growth(), PLOT.cg(), IB.F(), and Alea.A (database) functions.
License: GPL-2 | GPL-3 [expanded from: GPL (≥ 2)]
Encoding: UTF-8
Depends: R (≥ 4.5.0), kerdiest, KernSmooth, nlme, parallel
Imports: MASS, mgcv, pspline, sfsmisc
LazyData: true
Config/roxygen2/version: 8.0.0
NeedsCompilation: no
Packaged: 2026-09-17 15:42:54 UTC; ANTONIO
Author: Antonio Meneses [aut, cre], Salvador Naya [ctb], Javier Tarrio-Saavedra [ctb], Ignacio Lopez-Ullibarri [ctb]
Maintainer: Antonio Meneses <antoniomenesesfreire@hotmail.com>
Repository: CRAN
Date/Publication: 2026-09-28 08:20:08 UTC

Crack growth of aluminum A-alloy due mechanical fatigue efforts

Description

Crack growth of aluminum A-alloy due mechanical fatigue efforts. Alea.A is a data frame composed of 262 rows y 3 columns.

Usage

data(Alea.A)

Format

This data frame is composed of the following columns:

cycles

21 vectors with times or cycles corresponding to each specimen (overall 262 cycles).

cracks

21 vectors with the crack lengths corresponding to each specimen.

sample

21 different specimens, each one repeated the number of elements of "cycles" or "cracks".

Details

Alea.A is composed of the crack length growth and number of cycles of 21 different specimens. It is detailed in Hudak et al. (1978) and referred by Meeker and Escobar (1998) in table C.14.

Source

Meeker, W., Escobar, L. (1998) Statistical Methods for Reliability Data. John Wiley & Sons, Inc. New York.


Bootstrap confidence bands for fatigue lifetime

Description

It performs bootstrap confidence bands for fatigue lifetime. The lifetime matrix is calculated by bootstrap resampling by means the above mentioned methodologies (see craks.growth). The confidence bands are estimated by the quantile based method.

Usage

IB.F(
  z,
  nB,
  alpha = 0.05,
  method = c("SEP-lme_bkde", "SEP-lme_kde", "PB-nlme"),
  seed = NULL,
  ncores = min(2L, max(1L, parallel::detectCores() - 1L))
)

Arguments

z

cracks.growth object.

nB

Number of bootstrap resampling.

alpha

Confidence level.

method

Character string showing the distribution estimates method: "SEP-lme_bkde", "SEP-lme_kde" or "PB-nlme.

seed

Seed for reproducibility.

ncores

Controls how many R processes are launched in parallel.

Details

IB.F is performed from the output of cracks.growth function.

Value

Return the following values:

Mat.F.B

Matrix that contents the fatigue lifetimes corresponding to each bootstrap resampling.

I.Bootstrap

Data frame that contents the bootstrap confidence bands for lifetime distribution, at a confidence level of 95 percent (by default). It is composed by two columns corresponding to the bands limits: low, up.

Author(s)

Antonio Meneses antoniomenesesfreire@hotmail.com, Salvador Naya salva@udc.es, Javier Tarrio-Saavedra jtarrio@udc.es, Ignacio Lopez-Ullibarri ilu@udc.es

References

Meeker, W., Escobar, L. (1998) Statistical Methods for Reliability Data. John Wiley & Sons, Inc. New York.

Pinheiro JC., Bates DM. (2000) Mixed-effects models in S ans S-plus. Statistics and Computing. Springer-Verlang. New York.

Paris, P.C. and Erdogan, F. (1963) A critical analysis of crack propagation laws. J. Basic Eng., 85, 528.

Examples


## Using the Alea.A dataset
data(Alea.A)
x <- Alea.A
## Critical crack length
aF <- 1.6
## Censoring time
T_c <- 0.12
## cracks.growth function applied to Alea.A data
cg <- cracks.growth (x, aF, T_c, method = c("SEP-lme_bkde", "SEP-lme_kde",
                    "PB-nlme"), nBKDE = 1000, nKDE = 1000, nMC = 5000)
## z is a cracks.growth object
z <- cg
## Number of bootstrap resamplings
nB <- 100
## Application of IB.F function to cg object
ic.b <- IB.F(z, nB, alpha = 0.05, method = c("SEP-lme_bkde", "SEP-lme_kde",
                                             "PB-nlme"))
## ic.b values obtainde by the "SEP-lme_bkde" model
names(ic.b)
# [1] "Mat.F.B"     "I.Bootstrap"
## Chart with the empirical and estimated distribution functions,
## with bootstrap confidence bands at 95
# Observations from which the distribution function is estimated
F1.F <- z$F.est[,2]
plot( ic.b$I.Bootstrap$low,F1.F, col=2, type="l", lty=2, lwd=2,
      xlim=c(0.05,0.18),
      main="Plot: distributions of failure times\n  confidence intervals",
      xlab="million cycles",  ylab="probability",  cex.lab=1.7,
      cex.main=2, las=1)
lines(ic.b$I.Bootstrap$up, F1.F, col=2, lty=2, lwd=2)
points(z$F.est, pch=20)
points(z$F.emp, col=4, pch=20, cex=1.5)
legend("topleft", c("Empirical", "Estimated","Bootstrap (95 percent)"),
       col=c("blue","black","red"),  lty=c(1,1,1), pch=c(20,20,20),
       cex=1.5, bty="n")
## Graph with confidence bands
matplot(ic.b$Mat.F.B, F1.F,  main="Bootstrap resampling lines",
        type="l", lwd=2, xlim=c(0.05,0.18), xlab="million cycles",
        ylab="probability", cex.lab=1.7,  cex.main=2, las=1)

Fatigue Crack Growth in Reliability plots

Description

It provides graphical outputs composed of the trends corresponding to the crack length growth due to mechanical fatigue, the crack length estimates by the models, crack length predictions, and lifetime distribution estimates.

Usage

PLOT.cg(x)

Arguments

x

cracks.growth object.

Details

Specifically, the following graphs are provided: exploratory dataset graph, plot with the crack length estimates and predictions, residuals graph, empirical and estimated lifetime distribution plot obtained by SEP-lme_bkde, SEP-lme_kde or PB-nlme methods.

Value

Return the following values:

plot.data

Exploratory chart.

plot.pred

Plot for fatigue lifetimes estimates and predictions.

plot.F

Plot for the empirical distribution and lifetimes distribution estimates of fatigue lifetimes.

plot.resid

Residuals chart.

Author(s)

Antonio Meneses antoniomenesesfreire@hotmail.com, Salvador Naya salva@udc.es, Javier Tarrio-Saavedra jtarrio@udc.es, Ignacio Lopez-Ullibarri ilu@udc.es

References

Meeker, W., Escobar, L. (1998) Statistical Methods for Reliability Data. John Wiley & Sons, Inc. New York.

Pinheiro JC., Bates DM. (2000) Mixed-effects models in S ans S-plus. Statistics and Computing. Springer-Verlang. New York.

Paris, P.C. and Erdogan, F. (1963) A critical analysis of crack propagation laws. J. Basic Eng., 85, 528.

Examples


## Using the Alea.A dataset
data(Alea.A)
x <- Alea.A
## Critical crack length
aF <- 1.6
## Censoring time
T_c <- 0.12
## cracks.growth function applied to Alea.A data
cg <- cracks.growth(x, aF, T_c,
                   method = c("SEP-lme_bkde", "SEP-lme_kde", "PB-nlme"),
                   nBKDE = 1000, nKDE = 1000, nMC = 5000)
## PLOT.cg applied to cg object.
PLOT <- PLOT.cg(cg)
names(PLOT)
## [1]  "plot.data"  "plot.pred"  "plot.F"     "plot.resid"
## Exploratory chart for the Alea.A dataset
PLOT$plot.data(main = "Plot:  crack growth", xlab = "million cycles",
               ylab = "cracks(inches)",  cex.lab=1.8,
               cex.main = 2)
text(0.02, aF + 0.05, "Failure", cex = 1.8)
text(0.095, 0.95, "Censoring time->", cex = 1.5)
## Plot for fatigue lifetimes estimates and predictions.
PLOT$plot.pred(xlab = "million cycles", ylab = "cracks(inches)",
               main = "Plot: crack growth, estimation and prediction\n failure times (red)",
               cex.lab = 1.8, cex.main = 1.5)
text(0.02,aF+0.05, "Failure", cex = 1.8)
text(0.085,0.95, "Censoring time->", cex = 1.5)
## Plot for the empirical distribution and lifetimes distribution estimates
## of  fatigue lifetimes
PLOT$plot.F(main = "Plot: distributions of failure times",
            xlab = "million cycles", ylab = "probability",
            cex.lab = 1.7, cex.main=2)
text(0.14, 0.1, "<-Censoring time", cex = 1.5)
legend("topleft", c("Empirical", "Estimated"), col = c("blue","black"),
       pch=c(20,20), cex=1.5, bty="n")
## Residuals chart.
PLOT$plot.resid(main = "Plot: residual", xlab = "fitted", ylab = "residuals",
                cex = 1.5, col = "blue", cex.lab = 1.7, cex.main = 2)

Fatigue crack growth in reliability analysis

Description

It provides the lifetime distribution of metallic materials that fail due to the crack growth produced by mechanical fatigue efforts. The crack growth trends are fitted by linear or nonlinear mixed effects regression models in order to make predictions about the material lifetime. The lifetime is defined as the time passed before the material does not meet the specification requirements and it is conditioned by a critical crack length that induces the material failure. Three different methods can be applied to estimate the fatigue lifetime distribution: "SEP-lme_bkde" and "SEP-lme_kde" are nonparametric while "PB-nlme" corresponds to the parametric approach proposed by Pinheiro and Bates (2000).

Usage

cracks.growth(
  x,
  aF,
  T_c,
  method = c("SEP-lme_bkde", "SEP-lme_kde", "PB-nlme"),
  nMC = 5000,
  nBKDE = 1000,
  nKDE = 1000,
  seed = NULL
)

Arguments

x

Matrix or data frame composed of three columns: times or number of cycles, crack lengths and specimen number.

aF

Critical crack length for which the material failure is produced.

T_c

Censoring time or frequency.

method

A string of characters: "SEP-lme_bkde" (default methodology) indicates that a mixed effects linear regression model is applied to crack growth data and the lifetime density is estimated by bkde method. "SEP-lme_kde" indicates that a mixed effects linear regression model is applied to crack growth data and the lifetime distribution is estimated by kde method. "PB-nlme" indicates that a mixed effects nonlinear regression model is applied to crack growth data and the lifetime the parameters are estimated maximum likelihood methodologies, and the lifetime distribution by Monte Carlo.

nMC

Number of Monte Carlo estimates, by default 5000.

nBKDE

Number of bkde estimates, by default 5000.

nKDE

Number of kde estimates, by default 5000.

seed

Seed for reproducibility.

Details

This function provides a simultaneous fitting of crack growth data corresponding to different specimens when these are subjected to mechanical fatigue efforts. For this purpose, mixed effects linear models (lme) with B-spline smoothing are applied. Since the failure is defined at a specific critical crack length, predictions of material lifetime are obtained assuming the linearized Paris-Erdogan law and the material lifetime distribution is estimated. There are available three different techniques to estimate the lifetime distribution: the binned kernel density estimate (bkde), the kernel estimator for the distribution function (kde) computed by Quintela del Rio and Estevez-Perez (2012), and in addition the parametric method proposed by Pinheiro and Bates (2000) based on mixed effects nonlinear regression (nlme), maximum likelihood and Monte Carlo simulation.

Value

data

Data frame with the data corresponding to number of cycles, crack length, and sample.

a.F

Critical crack length.

Tc

Censoring time.

param

Data frame with the estimates of Paris law parameters: C and m

crack.est

Data frame with time, crack growth estimates, and corresponding sample or specimen.

sigma

Residual standard deviation.

residuals

Residuals resulting from the crack length fitting.

crack.pred

Data frame with time, crack growth predictions out of the experimental time interval, and corresponding sample or specimen.

F.emp

Data frame with the empirical lifetime distribution and the corresponding time: time, Fe.

bw

Bandwidth used in bkde and kde methods.

F.est

Data frame with the estimated lifetime distribution and the corresponding time: time, F.

nBKDE

Number of bkde estimates.

nKDE

Number of kde estimates.

nMC

Number of Monte Carlo estimates.

Author(s)

Antonio Meneses antoniomenesesfreire@hotmail.com, Salvador Naya salva@udc.es, Javier Tarrio-Saavedra jtarrio@udc.es, Ignacio Lopez-Ullibarri ilu@udc.es

References

Meeker, W., Escobar, L. (1998) Statistical Methods for Reliability Data. John Wiley & Sons, Inc. New York.

Pinheiro JC., Bates DM. (2000) Mixed-effects models in S ans S-plus. Statistics and Computing. Springer-Verlang. New York.

Examples


## Using the Alea.A dataset
data(Alea.A)
x <-  Alea.A
## Critical crack length
aF <- 1.6
## Censoring time
T_c <- 0.12
## cracks.growth function applied to Alea.A data
cg <- cracks.growth (x, aF, T_c, method = c("SEP-lme_bkde", "SEP-lme_kde",
                    "PB-nlme"), nBKDE = 1000, nKDE = 1000, nMC = 5000)
## cracks.growth values using the "SEP-lme_bkde" by default method.
names(cg)
# [1]	 "data"       "a.F"        "Tc"         "param"      "crack.est"
# [6] 	"sigma"      "residuals"  "crack.pred" "F.emp"      "bw"
#[11]	 "F.est"      "nBKDE"