# How to fix unused argument in a function

I`m writing a code calibration to calculate the partial safety factors. The Error here is **DS unused argument.** I can`t discover the error here,

``````Codecal <- function(S,DS,CM,Beta,X){
# COMPUTE PARTIAL SAFETY FACTORS FOR CODE CALIBRATION
#
# INPUT
#
# X     = [n x 1] Ratios of Design points according to the given mean ratio
# S     = [n x 1] Standard Deviation OF DISTRIBUTION OF X
# DS    = [n x 1] DISTRIBUTION TYPE [1 = Normal, 2 = Lognorm, 3 = Gumbel TypeI]
# CM    = [n X n] CORRELATION MATRIX IF ANY CORRELATION EXISTS
# Beta  = [1 x 1] RELIABILITY INDEX TARGET
#
# OUTPUT
#gaa  = [n x 1] DESIGN FACTORS
#==========================================================================
#
M <- X
nMax = 100  # NUMBER OF ITERATIONS
tol= 1e-3 # TOLERANCE ON GAMMA
CHK <- F # STOPPING CONDITION
nVr <- length(X) # NUMBER OF RANDOM VARIABLES
Sz = S; # INITIALIZE VECTOR OF STANDARD DEVIATION
Mz = M; # INITIALIZE VECTOR OF MEAN
ga= Inf
#  TRANSFORM Z = (X - M)/S => X = M + S*Z
itr <- 0
while(!CHK){
# COMPUTE
#This additional part OF Rakwitz-Fiessler if the distribution is NOT normal
for(i1 in seq(1:nVr)){ # NORM
# IF NORM VARIABLE Mz AND Sz REMAIN THE SAME
if(DS[i1] == 2){ # LOGNORM
S0 <- sqrt(log(1 + (S[i1]/M[i1])^2))
M0 <- log(M[i1]) - 0.5*S0^2
Sz[i1] <- (1/dlnorm(x = X[i1],meanlog = M0,sdlog = S0)) * dnorm(x = qnorm(p = plnorm(q = X[i1],meanlog = M0, sdlog = S0),mean = 0,sd = 1),mean = 0,sd = 1)
Mz[i1] <- X[i1] - Sz[i1]*qnorm(p = plnorm(q = X[i1],meanlog = M0, sdlog = S0),mean = 0,sd = 1)
}else if(DS[i1] == 3){ # GUMBEL TYPE I
S0 = sqrt(pi^2 / (6*S[i1]^2))
M0 = M[i1] - 0.5772/S0
Fx <- exp(-exp(-S0*(X[i1]-M0)))
fx <- S0 * (exp(-S0*(X[i1]-M0)))*Fx
Sz[i1] <- (1/fx) * dnorm(x = qnorm(p = Fx))
Mz[i1] <- X[i1] - Sz[i1]*qnorm(p = Fx)
}
}
Dummy <- LimitStateFun(X,Sz)
Z = (Dummy\$Xp - Mz)/Sz
ga0 <-ga*Dummy\$Gr / as.numeric(sqrt(Dummy\$Gr %*% Dummy\$Gr))
if(abs(ga0-ga) <= tol || itr == nMax){
CHK <- T
}
itr <- itr + 1
ga <- ga0
Z <- Beta * Dummy\$Gr
X <- Mz + Z * Sz
ga=X/Mz
}
Out <- list(ga=ga)

#
#' Limit State Function
#
LimitStateFun <- function(X,S){
# COMPUTE X(n) FROM LIMITE STATE FUNCTION OF X[1]...X(n-1)
# INPUT
#
# X      = INITIAL DESIGN POINT
# S      = STANDARD DEVIATION OF NORMALIZED VARIATES OF Z
# P      = VECTOR OF PARAMETERS
#
Grd <- rep(0,length(X))
Grd = P*S; Grd[1] = -Grd[1];
# G(Z) = P[1]*X[1] - P[1]*X[2] - P[2]*X[3] =0
X[1] = X[2]+X[3]
Grd[1] = -S[1]
Grd[2] = S[2]
Grd[3] = S[3]
}
Out <- data.frame(Gr = Grd)
Out
}

``````

Should this be

``````LimitStateFun <- function(X,S,P){
``````

Hi,
I tried to put this coefficient P, and it didn't work tho

Then check

``````    Dummy <- LimitStateFun(X,Sz)

``````

Same error

``DS unused argument``

Itâ€™s being called with only two arguments, it expects three

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.