Test

From Medusa: Coordinate Free Mehless Method implementation
Jump to: navigation, search

mesh-free ,plasticity ,non-linear ,isotropic hardening ,von Mises model ,RBF-FD ,plane stress


Introduction

Speaking very broadly, a deformation of a solid body can be broken down into two main sub-categories: elastic and plastic deformation. It is said, that the deformation is elastic, if the body returns to its original shape after the applied load had been released, while plastic deformation occurs when any part of a solid body undergoes a non-reversible change of shape due to sufficiently large load applied (Fung and Tong 2001). Generally, the material response beyond the elastic-plastic tipping point, commonly referred to as yielding criterion, is non-linear (Souza Neto, Peric, and Owen 2008), thus numerical treatment of partial differential equations is required (Souza Neto, Peric, and Owen 2008).

Traditionally, such problems are solved with the finite elements method (FEM) (Bartels, Mielke, and Roubíček 2012; Schröder and Kuhl 2015; Roostaei and Jahed 2018; Amouzou and Soulaïmani 2021). In this work, however, we employ meshless methods that have proven to be a good alternative as they can operate on nodes contrary to mesh-based methods that require meshes (Belytschko et al. 1996). An often used variant of the meshless methods is the radial basis function-generated finite differences (RBF-FD) (Victor Bayona et al. 2017), which has already been employed to obtain solutions to elasticity (Depolli and Trobec 2019; Slak and Kosec 2019a) and plasticity (Jankowska 2018; Jiang et al. 2021) problems.

We present our implementation of a von Mises plasticity model with non-linear isotropic hardening limited to small strains in a plane stress example. The implementation was done using our in-house developed MEDUSA C++ library (Slak and Kosec 2021) supporting all the required meshless procedures. The original FEM formulation of the solution procedure provided by the de Souza et al. (Souza Neto, Peric, and Owen 2008) is adapted to employ RBF-FD and used to solve a simple plane stress problem.

Numerical treatment of partial differential equations in the context of mesh-free methods

Due to advanced mathematical modelling considering evermore details about the natural phenomena under consideration, most systems of PDEs are so complex that they cannot be analytically solved. This is particularly true for realistic problems, such as elastic-plastic deformation of a solid body. When a solution to such problems is still required, the systems is treated numerically in several steps obtaining a numerical solution in the process. In the first step, the domain is discretized. In the context of mesh-free methods, the domain is discretized by positioning the nodes on the domain boundary and its interior. In the second step, linear differential operators in each computational node are approximated before, in the third step, the system of PDEs is discretized and assembled into a large sparse linear system. Finally, the sparse system is solved and a numerical solution Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \widehat{u}} is obtained.

Domain discretization

Discretizing the domain for the purpose of numerical treatment with mesh-free methods is significantly simplified compared to using the mesh-based methods. While mesh-based methods require the computational nodes structured into polyhedrons covering the entire domain of interest, no internodal connectivity is required for operation of mesh-free methods. This seemingly small difference notably simplifies the discretization of complex 3D domains, where building mesh is often the most cumbersome and time-consuming step in the solution procedure.

Several dedicated node positioning algorithms have been proposed in the mesh-free community. We choose a dimension-independent node generation algorithm proposed by our team (Slak and Kosec 2019b), which was just recently parallelized for faster execution (Depolli, Slak, and Kosec 2022) and generalised to discretise parametric surfaces (Duh, Kosec, and Slak 2021). An example of domain discretization using scattered nodes is shown in Figure 1.

Interested readers are referred to the original paper (Slak and Kosec 2019b) for more details on the node generation algorithm or its stand-alone C++ implementation in the Medusa library (Slak and Kosec 2021).

RBF-FD approximation of differential operators

After the computational nodes have been positioned, linear differential operators appearing in our governing system of PDEs are approximated. Any linear differential operator is approximated over a set of nearby nodes, commonly referred to as stencil nodes. Despite different stencil node selection strategies proposed (Davydov and Oanh 2011; Davydov, Oanh, and Tuong 2022), researchers often choose a cloud of closest Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle n} nodes according to the Eucledian distance. The latter approach is also used in this paper.

To derive the approximation, assume a linear differential operator Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathcal{L}} in central point Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \boldsymbol{x}_c \in \Omega} and its stencil nodes Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \left \{ \boldsymbol{x}_i \right\}_{i=1}^n = \mathcal{N}} . The approximation is then sough using an ansatz Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq:ansatz} (\mathcal{L}u)(\boldsymbol{x}_c) \approx \sum_{i=1}^n w_iu(\boldsymbol{x}_i),} for any function Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle u} and unknown weights Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \boldsymbol{w}} . Note that the form of the right hand side is very desireable, as the sum can be compactly written with a dot product between the vector of yet to be determined weights Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \boldsymbol{w}} and field values Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \boldsymbol u} .

The weights Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \boldsymbol{w}} are obtained by enforcing the equality of approximation [eq:ansatz] for a chosen set of basis functions. In this work, polyharmonic splines augmented with monomials are used, effectively resulting in a RBF-FD mesh-free variant, commonly used by the meshless community. Other common RBF choices include Hardy’s multiquadrics or Gaussians. However, these depend on a shape parameter which can have a notable effect on the accuracy of the numerical solution and on the stability of the solution procedure (Victor Bayona et al. 2017; Perko, Sarler, et al. 2007; Wang and Liu 2002). Therefore, by choosing PHS defined as Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle f(r) = \begin{cases}r^k, & k \text{ odd} \\ r^k\log r, & k \text{ even}\end{cases}} for Eucledian distance Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle r} , the dependency on the shape parameter is eliminated and fine-tuning the results is also prevented.

Generally speaking, the PHSs are generated by a function Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle f:[0, \infty)\rightarrow \mathbb{R}} cantered at the stencil nodes Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathcal N} of Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \boldsymbol{x}_c} . Therefore, each basis function can be written as Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle f_j = f(\left \| \boldsymbol{x}- \boldsymbol{x}_j \right \|)=f(r_j),} for stencil node index Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle j} . Following the approximation [eq:ansatz], each index Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle j} corresponds to a linear equation Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \sum_{i=1}^nw_if_j(\boldsymbol{x}_i)=(\mathcal{L}f_j)(\boldsymbol{x}_c).} Gathering all Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle n} equations for a given stencil, we write a compact matrix form Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq:system_rbf} \boldsymbol F\boldsymbol{w}=\ell _f, \qquad \boldsymbol F = \begin{bmatrix} f(\left\| \boldsymbol{x}_1 - \boldsymbol{x}_1\right\|) & \cdots & f(\left\| \boldsymbol{x}_n - \boldsymbol{x}_1\right\|) \\ \vdots & \ddots & \vdots \\ f(\left\| \boldsymbol{x}_1 - \boldsymbol{x}_n\right\|) & \cdots & f(\left\| \boldsymbol{x}_n - \boldsymbol{x}_n\right\|) \\ \end{bmatrix}} for matrix Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \boldsymbol F} of evaluated basis functions and vector Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \boldsymbol\ell_f} vector of values assembled by applying the considered operator Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathcal{L}} to the RBFs evaluated at Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \boldsymbol{x}_c} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \ell_f^i = \Big(\mathcal{L}f_i(\boldsymbol{x})\Big)\Big|_{ \boldsymbol x = \boldsymbol x_c}.}

However, it has already been observed that using only PHS as basis functions does not guarantee convergent behaviour or solvability (Wendland 2004). Fortunately, assuring convergent behaviour and conditional positive definiteness can be assured if the approximation [eq:ansatz] is expanded with monomials (Vı́ctor Bayona 2019; Wendland 2004; Flyer et al. 2016a). Therefore, the system [eq:system_rbf] is augmented with Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle N_p} monomials Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle p} with orders up to and including degree Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle m} , yielding an overdetermined system of equations commonly treated as a constrained optimization problem (Flyer et al. 2016b). In practice, the optimal solution is expressed as a solution to Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq:rbf-system-aug} \begin{bmatrix} \boldsymbol F & \boldsymbol P \\ \boldsymbol P^\mathsf{T}& \boldsymbol 0 \end{bmatrix} \begin{bmatrix} \boldsymbol w \\ \boldsymbol\lambda \end{bmatrix} = \begin{bmatrix} \boldsymbol\ell_f \\ \boldsymbol\ell_p \end{bmatrix},} with the matrix Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \boldsymbol P} of the evaluated monomials and Lagrangian multipliers Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \boldsymbol\lambda} . The weights are obtained by solving the system, while Lagrangian multipliers are discarded.

Theory of plastic deformation

In materials science, plastic deformation, also known as plasticity, is the ability of a solid material to undergo permanent changes in shape as a response to the applied forces. This type of deformation is non-reversible and occurs when the material’s internal structure is altered.

The transition from elastic to plastic behaviour is known as yielding, and is a crucial concept in the design and development of materials. The ability to predict and control plastic deformation is important for the engineering of structures and components that are subjected to various loads exposed to different conditions. The study of plastic deformation also plays a vital role in the understanding of the mechanical properties of materials, making it even more crucial to understand for the engineers and scientists.

Stress-strain relationship

Typically, uniaxial tension test is performed to obtain knowledge about the material behaviour when exposed to load. This work is limited to study of rate-independent materials where the deformation of the material under consideration does not depend on the rate of applied loads. Such test with a ductile metal typically yields behaviour that is commonly referred to as a stress-strain curve as sketched in Figure 2 for example.

In the first segment, the material undergoes elastic deformation. Since the stress-strain relation in that segment is linear, researchers often refer to it as linear elastic deformation, where the slope of the curve is the elastic Young’s modulus. If the applied load is released before the yield stress is achieved, the material returns to its original state without any permanent deformation. However, beyond the yielding point the total deformation has plastic and elastic contributions.

The stress-strain relation beyond the yielding point is also known as the hardening curve. If the material under consideration is unloaded in that segment, the material no longer returns to its original, instead at least some parts of it stay (plastically) deformed. Generally speaking, different materials yield different hardening curves. For the simplification purposes, ideal plasticity, defined when the stress is independent of the strain and equals yield stress, is commonly used. Another common approach is to employ linear hardening. In practice, the hardening is represented as a curve fitted to experimental data as sketched in Figure 2 let that be a piecewise linear fit or something more complicated. Nevertheless, if the applied load is increased even further, the material at some point brakes and the uniaxial test is finished.

Our research is limited to isotropic hardening, where the evolution of yield stress surface corresponds to a uniform (isotropic) expansion of the initial yield surface. Other types of hardening hve also been proposed. Description of other commonly used hardening types can be found in (Souza Neto, Peric, and Owen 2008).

Elastic-plastic problem formulation

In the following subsections, the theoretical background of plastic deformation — largely based on the workings of de Souza et.al. (Souza Neto, Peric, and Owen 2008) — is presented.

Input: The problem, nodal density, function Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle h} , stencil size Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle n} , linear differential operators Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathcal{L}} , approximation basis Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \xi} , material properties, storage Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \Pi} , load steps Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle N_{\text{load}}} , load Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \sigma_{\text{load}}} .
Output: Deformation field.

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \Omega \gets \Call{discretise}{\Omega, h}} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \Pi \gets \Call{aproximate}{\mathcal{L}, \xi}} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \delta \boldsymbol u = 0} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \delta \boldsymbol F = 0}
Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \delta \boldsymbol u \gets \Call{solve}{\text{problem}, \Pi, \delta \boldsymbol F}} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \boldsymbol u = \boldsymbol u + \delta \boldsymbol u} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \varepsilon, \sigma \gets \Call{process}{\boldsymbol u}}
Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \sigma (\boldsymbol p), \varepsilon(\boldsymbol p) \gets \Call{return\_mapping}{I_{\text{max}}, \varepsilon_{\text{tol}}}} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \delta \boldsymbol F \gets \Call{compute\_residuum}{\sigma}} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \varepsilon, \sigma, \boldsymbol u}


Linear elasticity

The assumption in linear elasticity is that, when subjected to external forces, bodies deform linearly, obeying Hooke’s law. Thus one can define the stress tensor Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \bm{\sigma}} as the product of elasticity tensor Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathrm{D}^e} and the strain tensor Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \bm{\varepsilon}} : Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: stress} \bm{\sigma} = \mathrm{D}^e \bm{\varepsilon}.} Here we are using the matrix-vector notation, so in three dimensions Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \bm{\sigma} = \left(\sigma_{xx}, \sigma_{yy}, \sigma_{zz}, \sigma_{xy}, \sigma_{yz}, \sigma_{xz}\right)^\intercal} , and Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \bm{\varepsilon} = \left(\varepsilon_{xx}, \varepsilon_{yy}, \varepsilon_{zz}, \varepsilon_{xy}, \varepsilon_{yz}, \varepsilon_{xz}\right)^\intercal} . Additionally, the elasticity tensor can be written as: Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: de} \mathrm{D}^e = 2\mu\mathrm{I}_S + \lambda\mathbf{i}\mathbf{i}^\intercal,} where Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathrm{I}_S} is the symmetric identity tensor, and Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathbf{i}} is the array representation of the identity matrix. Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \lambda} , and Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mu} are the first, and second Lamé parameters, respectively. In terms of Young’s modulus Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle E} , and Poisson’s ratio Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \nu} , these are defined as: Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: lame} \begin{aligned} \lambda & = \frac{E \nu}{\left(1 - 2\nu\right)\left(1 + \nu\right)} \\ \mu & = \frac{E}{2 \left(1 + \nu\right)}. \end{aligned}} When considering problems with the small-strain constraint Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \varepsilon} is linked with the displacement vector Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathbf{u}} via the following expression: Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: strain} \bm{\varepsilon} = \frac{\nabla \mathbf{u} + (\nabla \mathbf{u})^{\intercal}}{2}.} Finally, the internal force density Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathbf{f}^i} can be computed as the divergence of the stress tensor: Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: frc den} \mathbf{f}^i = \nabla \cdot \bm{\sigma}.}

Let us assume an external force acting on a body, and its force density being Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathbf{f}^e} . At equilibrium the sum of internal and external forces is zero, therefore Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \mathbf{f}^e + \mathbf{f}^i = \mathbf{0}} . Inserting, and combining [eq: stress], [eq: de], [eq: strain], and [eq: frc den] into this equilibrium expression, one arrives to the Navier-Cauchy equation: Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: navier-cauchy} \left(\lambda + \mu\right) \nabla (\nabla \cdot \mathbf{u}) + \mu \nabla^2 \mathbf{u} + \mathbf{f}^e = \mathbf{0}.} The Navier-Cauchy equation needs to be solved in linear-elasticity problems to find the stress, strain, and displacement distributions in solid bodies.

Elasto-plasticity

Materials can also deform elasto-plastically, i.e. when subjected to an external force they deform linearly, following the equations described in the previous section, but once a threshold stress (yield stress Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \sigma_y} ) is reached in the material, they start deforming plastically. Plastic deformation is, unlike elastic, irreversible. Therefore part of the deformation in the material is due to the elastic strain Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \bm{\varepsilon}^e} , and another due plastic strain Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \bm{\varepsilon}^p} . The sum of the two gives the total strain Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \bm{\varepsilon}} : Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: tot strain} \bm{\varepsilon} = \bm{\varepsilon}^e + \bm{\varepsilon}^p.} Consequently the model for solving elasto-plastic deformations needs to be modified. One approach to solving such problems is by applying partial loads to the modeled body (Souza Neto, Peric, and Owen 2008; Yarushina, Dabrowski, and Podladchikov 2010). These partial loads should add-up to the total applied load. Each time a partial load is applied to the body, the solution is first predicted by solving [eq: navier-cauchy], which yields a vector field of displacement increments Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \Delta\mathbf{u}} . At load step Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle n} one thus obtains the following set of predictions: Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: pred} \begin{aligned} \mathbf{u}_{n} & = \mathbf{u}_{n - 1} + \Delta\mathbf{u} \\ \Delta\bm{\varepsilon} & = \frac{\nabla \left(\Delta\mathbf{u}\right) + (\nabla \left(\Delta\mathbf{u}\right))^{\intercal}}{2} \\ \bm{\varepsilon}^e_{n} & = \bm{\varepsilon}^e_{n - 1} + \Delta\bm{\varepsilon} \\ \bm{\varepsilon}^p_{n} & = \bm{\varepsilon}^p_{n - 1} \\ \varepsilon^p_n & = \varepsilon^p_{n - 1} \\ \bm{\sigma}_n & = \mathrm{D}^e \bm{\varepsilon}^e_n. \end{aligned}} Note that the stress tensor is calculated only from the elastic strain. As [eq: navier-cauchy] is only valid in the elastic region of the body, its validity needs to be assessed. This can be done in several ways, in this paper, however, we focus on the von Mises yield criterion, and von Mises plastic flow rule. First step in validity assessment is to compute the scalar von Mises stress Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \sigma_{VM}} : Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: vms} \sigma_{VM} = \sqrt{\frac{\left(\sigma_{xx} - \sigma_{yy}\right)^2 + \left(\sigma_{yy} - \sigma_{zz}\right)^2 + \left(\sigma_{zz} - \sigma_{xx}\right)^2 + 6 \left(\sigma_{xy}^2 + \sigma_{yz}^2 + \sigma_{xz}^2\right)}{2}}.} Assuming that the yield stress is a function of the scalar equivalent plastic strain Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \varepsilon^p} , Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \sigma_{VM}} is then compared to Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \sigma_y(\varepsilon^p)} by computing the yield function Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \Phi} : Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: y funct} \Phi = \sigma_{VMn} - \sigma_y(\varepsilon^p_n).} If Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \Phi \leq 0} , the solution is valid, otherwise the prediction needs to be adjusted according to a return mapping procedure. In this work we use the single-equation return mapping scheme, as it is described in (Souza Neto, Peric, and Owen 2008). For this purpose we introduce the incremental plastic multiplier Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \Delta\gamma} . The target of the return mapping procedure is: Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: rm goal} \Phi = \sigma_{VMn} - 3 \mu \Delta\gamma - \sigma_y(\varepsilon^p_n + \Delta\gamma) = 0.}

Yield criteria

Numerical examples

In this section we present three scenarios of a pressurized thick-walled cylinder expansion: linear-elastic case, perfectly plastic elasto-plastic case, and elasto-plastic case with linear hardening. The cylinder dimensions, and material properties were inspired by (Souza Neto, Peric, and Owen 2008). Fig. 4 ...

Linear-elastic case

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: analytical l-elastic} \begin{aligned} \sigma_r & = -p \left(\frac{\frac{b^2}{r^2} - 1}{\frac{b^2}{a^2} - 1}\right) \\ \sigma_{\theta} & = p \left(\frac{\frac{b^2}{r^2} + 1}{\frac{b^2}{a^2} - 1}\right) \\ \sigma_z & = \frac{2 \nu p}{\frac{b^2}{a^2} - 1} \\ u_r & = \frac{p}{E} \frac{\left(1 + \nu\right)\left(1 - 2\nu\right) r + \left(1 + \nu\right) \frac{b^2}{r}}{\frac{b^2}{a^2} - 1}. \end{aligned}}

Perfectly-plastic yielding of an internally pressurized thick-walled cylinder

Analytical solutions for the principal stresses and the displacement are given in (Hill 1998; Chakrabarty 1987). Hill in their derivation of the analytical solution assumes the Tresca yielding criterion, but argues that by modifying it slightly it can make a fair approximation for a case using the von Mises yielding criterion (Hill 1998). Provided that the cylinder has started yielding, and the position of the plastic-elastic interface within the cylinder is Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle c} , these analytical approximations read as follows: Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: analytical tresca} \begin{aligned}[c] \left. \begin{aligned} \sigma_r & = -\frac{2 \sigma_y c^2}{\sqrt{3} b^2} \left(\frac{b^2}{r^2} - 1\right) \\ \sigma_{\theta} & = \frac{2 \sigma_y c^2}{\sqrt{3} b^2} \left(\frac{b^2}{r^2} + 1\right) \\ \sigma_z & = \frac{4 \nu \sigma_y c^2}{\sqrt{3} b^2} \end{aligned} \right\} c \leq r \leq b, \\ \left. \begin{aligned} \sigma_r & = -\frac{2 \sigma_y}{\sqrt{3}} \left(1 - \frac{c^2}{b^2} + \ln \frac{c^2}{r^2}\right) \\ \sigma_{\theta} & = \frac{2 \sigma_y}{\sqrt{3}} \left(1 + \frac{c^2}{b^2} + \ln \frac{c^2}{r^2}\right) \\ \sigma_z & = \frac{4 \nu \sigma_y c^2}{\sqrt{3}} \left(\frac{c^2}{b^2} - \ln \frac{c^2}{r^2}\right) \end{aligned} \right\} a \leq r \leq c, \\ \left. u_r = \left(1 - \nu\right) \frac{2 \sigma_y c^2}{\sqrt{3} G r} + \left(1 - 2 \nu\right) \frac{\sigma_r r}{2 G}, \right. \ a \leq r \leq b. \end{aligned}}

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle c} is determined from its relation to the cylinder’s internal pressure Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle p} : Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\displaystyle \label{eq: c determine} p = \frac{2 \sigma_y}{\sqrt{3}} \left(1 - \frac{c^2}{b^2} + \ln \frac{c^2}{a^2}\right).}

Results of the perfect plastic case - von Mises stress, and displacement magnitude at inner and outer surfaces, and position of the elastic-plastic interface. Under “current” results we present the highest density discretization with 25 load steps vs FEM vs analytical approximation. *Average for all nodes on the edge. **Determined by fitting lines through points that are in the plastic zone (Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \varepsilon^p > 0} ), and points that are outside it (Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \varepsilon^p = 0} ), and finding the intersection between the two fits. ***Presumed von Mises stress in an ideal solution.
Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \sigma_{VM}} [GPa] Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle |\mathbf{u}|} [mm] Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle c} [mm]
Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle r = a} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle r = b} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle r = a} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle r = b}
Current 0.24000* 0.14380* 0.23660* 0.14021* 153.49**
FEM 0.24000 0.14380 0.23677 0.14022 153.48**
Analytical 0.24000*** 0.14334 0.23620 0.13976 152.57


Linearly-hardening-plastic yielding of an internally pressurized thick-walled cylinder

Results of the linear-hardening plastic case - von Mises stress, and displacement magnitude at inner and outer surfaces, and position of the elastic-plastic interface. Under “current” results we present the highest density discretization with 25 load steps vs FEM. *Average for all nodes on the edge. **Determined by fitting lines through points that are in the plastic zone (Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \varepsilon^p > 0} ), and points that are outside it (Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \varepsilon^p = 0} ), and finding the intersection between the two fits.
Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle \sigma_{VM}} [GPa] Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle |\mathbf{u}|} [mm] Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle c} [mm]
Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle r = a} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle r = b} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle r = a} Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): {\textstyle r = b}
Current 0.25589* 0.13635* 0.22212* 0.13295* 149.42**
FEM 0.25592 0.13634 0.22224 0.13294 149.40**


Benchmark problem

Conclusions

Amouzou, Gildas Yaovi, and Azzeddine Soulaïmani. 2021. “Numerical Algorithms for Elastoplacity: Finite Elements Code Development and Implementation of the Mohr–Coulomb Law.” Applied Sciences 11 (10). https://doi.org/10.3390/app11104637.


Bartels, Sören, Alexander Mielke, and Tomáš Roubíček. 2012. “Quasi-Static Small-Strain Plasticity in the Limit of Vanishing Hardening and Its Numerical Approximation.” SIAM J. Numer. Anal. 50: 951–76.


Bayona, Victor, Natasha Flyer, Bengt Fornberg, and Gregory A Barnett. 2017. “On the Role of Polynomials in RBF-FD Approximations: II. Numerical Solution of Elliptic PDEs.” Journal of Computational Physics 332: 257–73.


Bayona, Vı́ctor. 2019. “An Insight into RBF-FD Approximations Augmented with Polynomials.” Computers & Mathematics with Applications 77 (9): 2337–53.


Belytschko, Ted, Yury Krongauz, Daniel Organ, Mark Fleming, and Petr Krysl. 1996. “Meshless Methods: An Overview and Recent Developments.” Computer Methods in Applied Mechanics and Engineering 139 (1-4): 3–47.


Chakrabarty, J. 1987. Theory of Plasticity. McGraw-Hill International Editions. Engineering Mechanics Series. McGraw-Hill.


Davydov, Oleg, and Dang Thi Oanh. 2011. “Adaptive Meshless Centres and RBF Stencils for Poisson Equation.” Journal of Computational Physics 230 (2): 287–304.


Davydov, Oleg, Dang Thi Oanh, and Ngo Manh Tuong. 2022. “Improved Stencil Selection for Meshless Finite Difference Methods in 3d.” arXiv Preprint arXiv:2202.06426.


Depolli, Matjaž, Jure Slak, and Gregor Kosec. 2022. “Parallel Domain Discretization Algorithm for RBF-FD and Other Meshless Numerical Methods for Solving PDEs.” Computers & Structures 264: 106773.


Depolli, Matjaž, and Roman Trobec. 2019. “Computational Efficiency of Linear System Construction for MLPG Method on a Multicore Computer.” In 2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), 200–205. https://doi.org/10.23919/MIPRO.2019.8757104.


Duh, Urban, Gregor Kosec, and Jure Slak. 2021. “Fast Variable Density Node Generation on Parametric Surfaces with Application to Mesh-Free Methods.” SIAM Journal on Scientific Computing 43 (2): A980–1000.


Flyer, Natasha, Bengt Fornberg, Victor Bayona, and Gregory A Barnett. 2016a. “On the Role of Polynomials in RBF-FD Approximations: I. Interpolation and Accuracy.” Journal of Computational Physics 321: 21–38.


Flyer, Natasha, Bengt Fornberg, Victor Bayona, and Gregory A. Barnett. 2016b. “On the Role of Polynomials in RBF-FD Approximations: I. Interpolation and Accuracy.” Journal of Computational Physics 321: 21–38. https://doi.org/https://doi.org/10.1016/j.jcp.2016.05.026.


Fung, Y., and P. Tong. 2001. Classical and Computational Solid Mechanics. Advanced Series in Engineering Science. World Scientific. https://books.google.si/books?id=hmyiIiiv4FUC.


Hill, R. 1998. The Mathematical Theory of Plasticity. Oxford Classic Texts in the Physical Sciences. Clarendon Press.


Jankowska, Malgorzata A. 2018. “On Elastoplastic Analysis of Some Plane Stress Problems with Meshless Methods and Successive Approximations Method.” Engineering Analysis with Boundary Elements 95: 12–24. https://doi.org/https://doi.org/10.1016/j.enganabound.2018.06.013.


Jiang, Pengfei, Hui Zheng, Jingang Xiong, and Pihua Wen. 2021. “Nonlinear Elastic-Plastic Analysis of Reinforced Concrete Column-Steel Beam Connection by RBF-FD Method.” Engineering Analysis with Boundary Elements 128: 188–94.


Perko, Janez, B Sarler, et al. 2007. “Weight Function Shape Parameter Optimization in Meshless Methods for Non-Uniform Grids.” Computer Modeling in Engineering and Sciences 19 (1): 55.


Roostaei, Ali A., and Hamid Jahed. 2018. “A Cyclic Small-Strain Plasticity Model for Wrought Mg Alloys Under Multiaxial Loading: Numerical Implementation and Validation.” International Journal of Mechanical Sciences.


Schröder, Bettina, and Detlef Kuhl. 2015. “Small Strain Plasticity: Classical Versus Multifield Formulation.” Archive of Applied Mechanics 85: 1127–45.


Slak, Jure, and Gregor Kosec. 2019a. “Adaptive Radial Basis Function-Generated Finite Differences Method for Contact Problems.” International Journal for Numerical Methods in Engineering 119 (7): 661–86. https://doi.org/https://doi.org/10.1002/nme.6067.


———. 2019b. “On Generation of Node Distributions for Meshless PDE Discretizations.” SIAM Journal on Scientific Computing 41 (5): A3202–29. https://doi.org/10.1137/18M1231456.


———. 2021. “Medusa: A c++ Library for Solving Pdes Using Strong Form Mesh-Free Methods.” ACM Transactions on Mathematical Software (TOMS) 47 (3): 1–25.


Souza Neto, E. A. de, D. Peric, and D. R. J. Owen. 2008. Computational Methods for Plasticity: Theory and Applications. Wiley.


Wang, JG, and GRs Liu. 2002. “On the Optimal Shape Parameters of Radial Basis Functions Used for 2-d Meshless Methods.” Computer Methods in Applied Mechanics and Engineering 191 (23-24): 2611–30.


Wendland, Holger. 2004. Scattered Data Approximation. Vol. 17. Cambridge university press.


Yarushina, V. M., M. Dabrowski, and Y. Y. Podladchikov. 2010. “An Analytical Benchmark with Combined Pressure and Shear Loading for Elastoplastic Numerical Models.” Geochemistry, Geophysics, Geosystems 11 (8). https://doi.org/https://doi.org/10.1029/2010GC003130.