瀏覽代碼

spell

tags/CANDIDATE
gtheler 7 年之前
父節點
當前提交
38bf199d0a
共有 1 個檔案被更改,包括 30 行新增27 行删除
  1. +30
    -27
      nafems4.md

+ 30
- 27
nafems4.md 查看文件

@@ -20,11 +20,11 @@ A simple pendulum from college physics courses and a real-life pendulum. Hint: t
An infinitely-long pressurised thick pipe as taught in college and an isometric drawing of a section of a real-life piping system.
:::::

Whether you are a student or a seasoned engineer with many years of experience, you might recall from first year physics courses the introduction of the [simple pendulum](https://en.wikipedia.org/wiki/Pendulum) as case study\ ([@fig:simple]). You learned that the period does not depend on the hanging mass because the weight and the inertia exactly cancelled each other. Also, that Galileo said (and [Newton proved](https://www.seamplex.com/wasora/realbook/real-012-mechanics.html)) that for small oscillations the period does not even depend on the amplitude. Someone showed you why it worked this way: because if\ $\sin \theta \approx \theta$ then the motion equations converge to an [harmonic oscillator](https://en.wikipedia.org/wiki/Harmonic_oscillator). It might have been a difficult subject for you back in those days when you were learning physics and calculus at the same time. You might later study the [Lagrangian](https://en.wikipedia.org/wiki/Lagrangian_mechanics) and even the [Hamiltonian](https://en.wikipedia.org/wiki/Hamiltonian_mechanics) formulations, added a [parametric excitation](https://en.wikipedia.org/wiki/Parametric_oscillator) and studied the [chaotic double pendulum](https://www.seamplex.com/wasora/realbook/real-017-double-pendulum.html). But it was probably after college, say when you took your first son to a swing on a windy day\ ([@fig:hamaca]), that you were faced with a real pendulum worth your full attention. Ok, this is my personal story but could easily be yours as well. My point is that the very same distance between what I imagined as a student what studying a pendulum was and what I saw that day at the swing (namely that the period does depend on the hanging mass) is the same distance between the mechanical problems studied in college and the actual cases encountered during a professional engineer’s lifetime. In this regard, I am referring only to technical issues. The part of dealing with clients, colleagues, bosses, etc. which is definitely not taught in engineering schools (you can get a heads up in business schools, but again it would be a theoretical pendulum) is way beyond the scope of both this article and my own capacities.
Whether you are a student or a seasoned engineer with many years of experience, you might recall from first year physics courses the introduction of the [simple pendulum](https://en.wikipedia.org/wiki/Pendulum) as case study\ ([@fig:simple]). You learned that the period does not depend on the hanging mass because the weight and the inertia exactly cancelled each other. Also, that Galileo said (and [Newton proved](https://www.seamplex.com/wasora/realbook/real-012-mechanics.html)) that for small oscillations the period does not even depend on the amplitude. Someone showed you why it worked this way: because if\ $\sin \theta \approx \theta$ then the motion equations converge to an [harmonic oscillator](https://en.wikipedia.org/wiki/Harmonic_oscillator). It might have been a difficult subject for you back in those days when you were learning physics and calculus at the same time. You might later study the [Lagrangian](https://en.wikipedia.org/wiki/Lagrangian_mechanics) and even the [Hamiltonian](https://en.wikipedia.org/wiki/Hamiltonian_mechanics) formulations, added a [parametric excitation](https://en.wikipedia.org/wiki/Parametric_oscillator) and studied the [chaotic double pendulum](https://www.seamplex.com/wasora/realbook/real-017-double-pendulum.html). But it was probably after college, say when you took your first son to a swing on a windy day\ ([@fig:hamaca]), that you were faced with a real pendulum worth your full attention. Yes, this is my personal story but could easily be yours as well. My point is that the very same distance between what I imagined as a student what studying a pendulum was and what I saw that day at the swing (namely that the period does depend on the hanging mass) is the same distance between the mechanical problems studied in college and the actual cases encountered during a professional engineer’s lifetime. In this regard, I am referring only to technical issues. The part of dealing with clients, colleagues, bosses, etc. which is definitely not taught in engineering schools (you can get a heads up in business schools, but again it would be a theoretical pendulum) is way beyond the scope of both this article and my own capacities.

Like the pendulums above, we will be swinging back and forth between a case study about fatigue analysis in piping systems of a nuclear power plant and more generic and even romantic topics related to finite elements and computational mechanics. These latter regressions will not remain just as abstract theoretical ideas. Not only will they be directly applicable to the development of the main case, but they will also apply to a great deal of other engineering problems tackled with the finite element method.

Finite elements are like magic to me. I mean, I can follow the whole derivation of the equations, from the strong, weak and variational formulations of the equilibrium equations for the mechanical problem (or the energy conservation for heat transfer) down to the algebraic multigrid preconditioner for the inversion of the stiffness matrix passing through Sobolev spaces and the grid generation. Then I can sit down and program all these steps into a computer, including the shape functions and its derivatives, the assembly of the discretised stiffness matrix assembly, the numerical solution of the system of equations and the computation of the gradient of the solution. Yet, the fact that all these a-priori unconnected steps once gets a pretty picture that resembles reality is still astonishing to me.
Finite elements are like magic to me. I mean, I can follow the whole derivation of the equations, from the strong, weak and variational formulations of the equilibrium equations for the mechanical problem (or the energy conservation for heat transfer) down to the [algebraic multigrid](https://en.wikipedia.org/wiki/Multigrid_method) [preconditioner](https://en.wikipedia.org/wiki/Preconditioner) for the inversion of the [stiffness matrix](https://en.wikipedia.org/wiki/Stiffness_matrix) passing through [Sobolev spaces](https://en.wikipedia.org/wiki/Sobolev_space) and the [grid generation](https://en.wikipedia.org/wiki/Mesh_generation). Then I can sit down and program all these steps into a computer, including the shape functions and its derivatives, the assembly of the discretised stiffness matrix assembly, the numerical solution of the system of equations and the computation of the gradient of the solution. Yet, the fact that all these a-priori unconnected steps once gets a pretty picture that resembles reality is still astonishing to me.


Again, take all this information as coming from a fellow that has already taken such a journey from college’s pencil and paper to real engineering cases involving complex numerical calculations. And developing, in the meantime, both an actual working finite-element [back-end](https://www.seamplex.com/fino) and [front-end](https://www.caeplex.com) from scratch (the dean of the engineering school I attended used to say “It is not the same to read than to write manuals, and we should aim at writing.”).
@@ -212,7 +212,7 @@ Figure [-@fig:grids] illustrates how the same domain can be discretised using th
![Structured grid](dominio-estructurado.svg){#fig:structured width=30%}\
![Unstructured grid](dominio-no-estructurado.svg){#fig:unstructured width=30%}

Discretization of a spatial domain
Discretisation of a spatial domain
:::::


@@ -447,7 +447,7 @@ The material interface in the system from [@fig:real-life] is configured by an o

## Seismic loads {#sec:seismic}

Before considering the actual mechanical problem that will give us the stress tensor at the SCLs and besides needing to solve the transient thermal problem to get the temperature distributions, we need to address the loads that arise due to a postulated earthquake during a certain part of the operational transients. The full computation of a mechanical transient problem using the earthquake time-dependent displacements is off the table for two reasons. First, because the computation would take more time than we might have to deliver the report. And secondly and more importantly, because civil engineers do not compute earthquakes in the time domain but in the frequency domain using the [response spectrum method](https://en.wikipedia.org/wiki/Response_spectrum). Time to revisit our [Laplace transform](https://en.wikipedia.org/wiki/Laplace_transform) exercises from undergraduate math courses.
Before considering the actual mechanical problem that will give us the stress tensor at the SCLs and besides needing to solve the transient thermal problem to get the temperature distributions, we need to address the loads that arise due to a postulated earthquake during a certain part of the operational transients. The full computation of a mechanical transient problem using the earthquake time-dependent displacements is off the table for two reasons. First, because the computation would take more time than we might have to deliver the report. And secondly and more importantly, because civil engineers do not compute earthquakes in the time domain but in the frequency domain using the [response spectrum method](https://en.wikipedia.org/wiki/Response_spectrum). Time to revisit our [Laplace transform](https://en.wikipedia.org/wiki/Laplace_transform) exercises from undergraduate maths courses.

### Earthquake spectra

@@ -505,9 +505,9 @@ The ASME code says that these accelerations (depicted in [@fig:acceleration]) ar

Even though we did not yet discuss it in detail, we want to solve an elastic problem subject to an internal pressure condition, with a non-uniform temperature distribution that leads to both thermal stresses and variations in the mechanical properties of the materials. And as if this was not enough, we want to add at some instants a statically-equivalent distributed load that comes from a design earthquake. This last point means that at the transient instant where the stresses (from the fatigue’s point of view) are maximum we have to add the distributed loads that we computed from the seismic spectra to the other thermal and pressure loads. But we have a linear elastic problem (well, we still do not have it but we will in\ [@sec:break]), so we might be tempted exploit the problem’s linearity and compute all the effects separately and them sum them up to obtain the whole combination. We may thus compute just the stresses due to the seismic loads and then add them up to the stresses of any instant of the transient, in particular to the one with the highest ones. After all, in linear problems the result of the sum of two cases is the results of the sum of the cases, right? Wrong.

Let us jump out of our nuclear piping problem and step back into the general finite-element theory ground for a moment (remember we were going to jump back and forth). Assume you want to know how much your dog weights. One thing you can do is weight yourself (let us say you weight 81.2\ kg), then grab your dog and weight yourself and your dog (let us say you and your dog weight 87.3\ kg). Do you swear your dog weights 6.1\ kg plus/minus the scale’s uncertainty? I can tell you that the weight of two individual protons and two individual neutrons in not the same as the weight of an\ [$\alpha$ particle](Alpha_particle). Will not there be a master-pet interaction that renders the weighting problem non-linear?
Let us jump out of our nuclear piping problem and step back into the general finite-element theory ground for a moment (remember we were going to jump back and forth). Assume you want to know how much your dog weights. One thing you can do is weight yourself (let us say you weight 81.2\ kg), then grab your dog and weight yourself and your dog (let us say you and your dog weight 87.3\ kg). Do you swear your dog weights 6.1\ kg plus/minus the scale’s uncertainty? I can tell you that the weight of two individual protons and two individual neutrons in not the same as the weight of an\ [$\alpha$ particle](https://en.wikipedia.org/wiki/Alpha_particle). Will not there be a master-pet interaction that renders the weighting problem non-linear?

Let us both (i.e. you and me) make an experiment. Grab your favourite FEM programfor the first time (remember mine is [CAEplex](https://caeplex.com)) and load a 1mm $\times$ 1mm $\times$ 1mm cube. Set any values for the Young Modulus and Poisson ratio as you want. I chose\ $E=200$MPa and\ $\nu=0.28$. Restrict the three faces pointing to the negative axes to their planes, i.e.
Let us both (i.e. you and me) make an experiment. Grab your favourite FEM program for the first time (remember mine is [CAEplex](https://caeplex.com)) and load a 1mm $\times$ 1mm $\times$ 1mm cube. Set any values for the Young Modulus and Poisson ratio as you want. I chose\ $E=200$MPa and\ $\nu=0.28$. Restrict the three faces pointing to the negative axes to their planes, i.e.

* in face “left” ($x<0$), set null displacement in the $x$ direction ($u=0$),
* in face “front” ($y<0$), set null displacement in the $y$ direction ($v=0$),
@@ -664,7 +664,7 @@ ans =
5.767255
```

Did I convince you? More or less, right? The third eigenvalue seems to fit. Let us not throw all of our beloved linearity away and dig in further into the subject. There are still two important issues to discuss which can be easily addressed using fresh-year linear algebra (remember, do not fear maths!). First of all, even though principal stresses are not linear with respect to the sum they are linear with respect to pure multiplication. Once more, think what happens to the the eigenvalues and eigenvectors of a single stress tensor as all its elements are scaled up or down by a real scalar. They are the same! So, for example, the [Von\ Mises stress](https://en.wikipedia.org/wiki/Von_Mises_yield_criterion) (which is a combination of the principal stresses) of a beam loaded with a force\ $\alpha \cdot \mathbf{F}$ is\ $\alpha$ times the stress of the beam loaded with a force\ $\mathbf{F}$. Please test this hypothesis by playing with your favorite FEM solver an play. Or even better, take a look at the stress invariants $I_1$, $I_2$ and $I_3$ (you can search online or peek into the source code of [Fino](https://www.seamplex.com/fino) and grep for the routine called `fino_compute_principal_stress()`) and see (using paper and pencil!) how they scale up if the individual elements of the stress tensor are scaled by a real factor\ $\alpha$.
Did I convince you? More or less, right? The third eigenvalue seems to fit. Let us not throw all of our beloved linearity away and dig in further into the subject. There are still two important issues to discuss which can be easily addressed using fresh-year linear algebra (remember, do not fear maths!). First of all, even though principal stresses are not linear with respect to the sum they are linear with respect to pure multiplication. Once more, think what happens to the the eigenvalues and eigenvectors of a single stress tensor as all its elements are scaled up or down by a real scalar. They are the same! So, for example, the [Von\ Mises stress](https://en.wikipedia.org/wiki/Von_Mises_yield_criterion) (which is a combination of the principal stresses) of a beam loaded with a force\ $\alpha \cdot \mathbf{F}$ is\ $\alpha$ times the stress of the beam loaded with a force\ $\mathbf{F}$. Please test this hypothesis by playing with your favourite FEM solver an play. Or even better, take a look at the stress invariants $I_1$, $I_2$ and $I_3$ (you can search online or peek into the source code of [Fino](https://www.seamplex.com/fino) and grep for the routine called `fino_compute_principal_stress()`) and see (using paper and pencil!) how they scale up if the individual elements of the stress tensor are scaled by a real factor\ $\alpha$.

The other issue is that even though in general the eigenvalues of the sum of two matrices are not the same as the eigenvalues of the matrix sum, there are some cases when they are. In effect, if two matrices\ $A$ and\ $B$ commute, i.e. their product is commutative

@@ -686,14 +686,14 @@ The computation of these membrane and bending stresses are called [“stress lin

**figures**

So what about the SCLs? Well, the ASME standard says that they are lines that go through a wall of the ipe (or vessel or pump, which is what the ASME code is for) from the inside to the outside and ought to be normal to the iso-stress curves. Stop. Picture yourself a stress field, draw the iso-stress curves (those would be the lines that have the same color in your picture) and then imagine a set of lines that travel in a perpendicular direction to them. Finally, choose the one that seems the prettiest (which most of the time is the one that seems the easiest). There you go! You have an SCL. But there is a catch. So far, we have referred to a generic concept of “stress.” Which of the several stresses out there should you picture? One of the three normals, the three shear, Von\ Mises, Tresca? Well, actually you will have to imagine tensors instead of scalars. And there might not be such a thing as “iso-stress” curves, let alone normal directions. So pick any radial straight line through the pipe wall at a location that seems relevant and now you are done. In our case study, there will be a few different locations around the material interfaces where high stresses due to differential thermal expansion are expected to occur.
So what about the SCLs? Well, the ASME standard says that they are lines that go through a wall of the pipe (or vessel or pump, which is what the ASME code is for) from the inside to the outside and ought to be normal to the iso-stress curves. Stop. Picture yourself a stress field, draw the iso-stress curves (those would be the lines that have the same colour in your picture) and then imagine a set of lines that travel in a perpendicular direction to them. Finally, choose the one that seems the prettiest (which most of the time is the one that seems the easiest). There you go! You have an SCL. But there is a catch. So far, we have referred to a generic concept of “stress.” Which of the several stresses out there should you picture? One of the three normals, the three shear, Von\ Mises, Tresca? Well, actually you will have to imagine tensors instead of scalars. And there might not be such a thing as “iso-stress” curves, let alone normal directions. So pick any radial straight line through the pipe wall at a location that seems relevant and now you are done. In our case study, there will be a few different locations around the material interfaces where high stresses due to differential thermal expansion are expected to occur.

If you cannot wait to know, the expression for computing the $i$-$j$-th element of the membrane tensor is

$$
\text{M}_{ij} = \frac{1}{t} \cdot \int_0^t \sigma_{ij}(t^\prime) \, dt^\prime
$$
where $t$ is the length and $t^\prime$ is a parametrization of the SCL. The other linearised stress, namely the _membrane plus bending_ stress tensor \text{MB} again according to ASME VIII Annex 5-A is
where $t$ is the length and $t^\prime$ is a parametrisation of the SCL. The other linearised stress, namely the _membrane plus bending_ stress tensor \text{MB} again according to ASME VIII Annex 5-A is

$$
\text{MB}_{ij} = \text{M}_{ij} \pm \frac{6}{t^2} \cdot \int_0^t \sigma_{ij}(t^\prime) \cdot \left( \frac{t}{2}-t^\prime\right) \, dt^\prime
@@ -772,7 +772,7 @@ To fix ideas, let us stick to a linear elastic FEM problem. The CPU time needed

### Meshing

The effort needed to compute a discretization of a continuous domain depends on the meshing algorithm. But nearly all meshers first put nodes on the edges (1D), then on the surfaces (2D) and finally on the volumes. Afterwards, they join the nodes to create the elements. Depending on the topology (i.e. tetrahedra, hexahedra, pyramids, etc) and the order (i.e. linear, quadratic, etc.) this last step will vary, but the main driver here is the number of nodes. Try measuring the time needed to obtain grids of different sizes and kinds with your mesher.
The effort needed to compute a discretisation of a continuous domain depends on the meshing algorithm. But nearly all meshers first put nodes on the edges (1D), then on the surfaces (2D) and finally on the volumes. Afterwards, they join the nodes to create the elements. Depending on the topology (i.e. tetrahedra, hexahedra, pyramids, etc) and the order (i.e. linear, quadratic, etc.) this last step will vary, but the main driver here is the number of nodes. Try measuring the time needed to obtain grids of different sizes and kinds with your mesher.

### Building

@@ -969,7 +969,7 @@ One further detail: it is always a sane check to try to explain the numerical re

A fellow mechanical engineer who went to the same high school I did, who went to the same engineering school I did and who worked at the same company I did, but who earned a PhD in Norway once told me two interesting things about finite-elements graduate courses. First, that in Trondheim the classes were taught by faculty from the the mathematics department rather than from the mechanical engineering department. It made complete sense to me, as I always have thought finite elements mainly a maths subject. And even though engineers might know some maths, it is nothing compared to actual mathematicians. Secondly, that they called the thermal, natural oscillations and elastic problems as the rhyming trio “bake, shake and break” (they also had “wake” for fluids, but that is a different story) which are just the three problems listed in section\ [@sec:piping-nuclear] that we need to solve in our nuclear power plant.

So here we are again with the case study where we have to compute the linearised stresses at certain SCLs located near the interface between two different kinds of steels during operational and incidental transients of the plant. The first part is then to “bake” the pipes, modeling a thermal transient with time-dependent temperature or convection (it depends on the system) boundary conditions. This steps gives a time and space-dependent temperature\ $T(x,y,z,t)$.
So here we are again with the case study where we have to compute the linearised stresses at certain SCLs located near the interface between two different kinds of steels during operational and incidental transients of the plant. The first part is then to “bake” the pipes, modelling a thermal transient with time-dependent temperature or convection (it depends on the system) boundary conditions. This steps gives a time and space-dependent temperature\ $T(x,y,z,t)$.

Then we proceed to “shake” the pipes, i.e. to compute the natural frequencies and associated oscillations modes. Employing the floor response spectra and combining the individual contributions with the SRSS method discussed in section\ [@sec:seismic], we obtain a distributed load vector\ $\mathbf{f}(x,y,z)$ which is statically equivalent to the design earthquake.

@@ -983,7 +983,7 @@ Finally we attempt to “break” the pipes successively solving many steady-sta
6. The earthquake-equivalent volumetric force\ $\mathbf{f}(x,y,z)$ should only be applied at the time\ $t$ where the maximum stresses occur. Note that due to the discussion from\ [@sec:linearity] we cannot compute the stresses raised just by\ $\mathbf{f}(x,y,z)$ and then add them to the main stresses. The force has to be included into the “break” step. An educated guess of the time where the maximum stress occur is usually enough. Anyway, it might be necessary a trial and error scheme to find the sweet spot.
7. According to ASME\ III, the seismic load has to be applied during two seconds with the two possible signs. That is to say, apply $\mathbf{f}(x,y,z)$ during two seconds and then $-\mathbf{f}(x,y,z)$ during two further seconds when the main stresses are maximums.
8. A number of stress classification lines have to be defined. The locations were previously accorded with the plant owner and/or the regulator.
9. The stress linearisation has to be performed individually for each principal stress\ $\sigma_1$, $\sigma_2$ and $\sigma_3$ to fulfill the requirements ASME\ III\ NB-3126 (see [@sec:in-air] below).
9. The stress linearisation has to be performed individually for each principal stress\ $\sigma_1$, $\sigma_2$ and $\sigma_3$ to fulfil the requirements ASME\ III\ NB-3126 (see [@sec:in-air] below).
10. This “break” step is linear.

[Surely you’re joking, Mr.\ Theler!](https://en.wikipedia.org/wiki/Surely_You're_Joking%2C_Mr._Feynman!) Linear problems are simple and almost useless. How can this extremely complex problem be linear? Well, let us see. First, there are two main kinds of non-linearities in FEM:
@@ -1001,19 +1001,19 @@ What changes with temperature is the slope of\ $\sigma$ with respect to\ $\epsil

$$ K\big[E\left(T(\mathbf{x})\right), \mathbf{x}\big] \cdot \mathbf{u}(\mathbf{x}) = \mathbf{b}(\mathbf{x})$$

If you notice, the complex dependence of the stiffnes matrix\ $K$ can be reduced to just the spatial vector\ $\mathbf{x}$:
If you notice, the complex dependence of the stiffness matrix\ $K$ can be reduced to just the spatial vector\ $\mathbf{x}$:

$$ K(\mathbf{x}) \cdot \mathbf{u}(\mathbf{x}) = \mathbf{b}(\mathbf{x})$$

And this last equation is linear in\ $\mathbf{u}$. In effect, the discretization step means to integrate over\ $\mathbf{x}$. As\ $K$, $\mathbf{u}$ and\ $\mathbf{b}$ depend only on\ $\mathbf{x}$, then after integration one gets just numbers with the matrix representation of\ [@eq:kub]. Again, you can either trust me, ask a teacher or go through with the maths.
And this last equation is linear in\ $\mathbf{u}$. In effect, the discretisation step means to integrate over\ $\mathbf{x}$. As\ $K$, $\mathbf{u}$ and\ $\mathbf{b}$ depend only on\ $\mathbf{x}$, then after integration one gets just numbers with the matrix representation of\ [@eq:kub]. Again, you can either trust me, ask a teacher or go through with the maths.


::::: {#fig:case-cad}
![General view. Carbon steel is gray and stainless steel is green.](case-cad1.png){#fig:case-cad1 width=90%}
![General view. Carbon steel is grey and stainless steel is green.](case-cad1.png){#fig:case-cad1 width=90%}

![Detail of the orifice plate.](case-cad2.png){#fig:case-cad2 width=90%}

Three-dimensional\ CAD model of a section of the piping system between aproppriate supports.
Three-dimensional\ CAD model of a section of the piping system between appropriate supports.
:::::

::::: {#fig:case-mesh}
@@ -1092,7 +1092,7 @@ A pretty nice list of steps, which definitely I would not have been able to tack

# Cumulative usage factors {#sec:usage}

Strictly speaking, finite-elements are not needed anymore at this point of the analysis. But even though we are (or wannabe) FEM experts, we have to understand that if the objective of a work is to evaluate fatigue (or fracture mechanics or whatever), finite elements are just a mean and not and end. If we just mastered FEM and nothing else, our field of work would be highly reduced. We need to use all of our computational knowledge to perform actually engineering tasks and tell our bosses and clients whether the pipe would fail or not. This tip is induced in college but it is definitely reinforced afterward after working with real clients and bosses.
Strictly speaking, finite-elements are not needed anymore at this point of the analysis. But even though we are (or wannabe) FEM experts, we have to understand that if the objective of a work is to evaluate fatigue (or fracture mechanics or whatever), finite elements are just a mean and not and end. If we just mastered FEM and nothing else, our field of work would be highly reduced. We need to use all of our computational knowledge to perform actually engineering tasks and tell our bosses and clients whether the pipe would fail or not. This tip is induced in college but it is definitely reinforced afterwards after working with real clients and bosses.

Another comment I would like to add is that I had to learn fatigue practically from scratch when faced with this problem for the first time in my engineering career. I remembered some basics from college (like the general introduction from [@sec:fatigue]), but I lacked the skills to perform a real computation by myself. Luckily there still exist books, there are a lot of interesting online resources (not to mention Wikipedia) and, even more luckily, there are plenty of other fellow engineers that are more than eager to help. My second tip is: when faced to a new challenging problem, read, learn and ask for help to real people to see if you read and learned it right.

@@ -1121,9 +1121,9 @@ If the extrema of the partial stress amplitude correspond to different transient

This cryptic paragraph can be better explained by using a clearer example. To avoid using actual sensitive data from a real power plant, let us use the same test case used by both the NRC (in its report NUREG/CR-6909) and EPRI (report 1025823) called “EAF (Environmentally-Assisted Fatigue) Sample Problem 2-Rev.\ 2 (10/21/2011)”.

![A low-alloy steel vessel nozzle (blue) welded to a stainless steel pipe (gray).](axi-inches-3d.png){#fig:axi-inches-3d width=60%}
![A low-alloy steel vessel nozzle (blue) welded to a stainless steel pipe (grey).](axi-inches-3d.png){#fig:axi-inches-3d width=60%}

It consists of a typical vessel (NB-3200) nozzle with attached piping (NB-3600) as illustrated in\ [@fig:axi-inches-3d]. These components are subject to four transients\ $k=1,2,3,4$ that give rise to linearized stress histories (slightly modified according to NB-3216.2) which are given as individual stress values juxtaposed so as to span a time range of about 36,000 seconds ([@fig:nureg1]). As the time steps is not constant, each stress value has an integer index\ $i$ that uniquely identifies it:
It consists of a typical vessel (NB-3200) nozzle with attached piping (NB-3600) as illustrated in\ [@fig:axi-inches-3d]. These components are subject to four transients\ $k=1,2,3,4$ that give rise to linearised stress histories (slightly modified according to NB-3216.2) which are given as individual stress values juxtaposed so as to span a time range of about 36,000 seconds ([@fig:nureg1]). As the time steps is not constant, each stress value has an integer index\ $i$ that uniquely identifies it:

| Transient number\ $k$ | Time range [s] | Index range | Number of cycles\ $n_k$ |
|:---------------------:|:--------------:|:-----------:|:-----------------------:|
@@ -1149,7 +1149,7 @@ To compute the global usage factor, we first need to find all the combinations o
$$
S_{\text{alt},j} = \frac{1}{2} \cdot k_{e,j} \cdot \left| MB^\prime_{i_{1,j}} - MB^\prime_{i_{2,j}} \right| \cdot \frac{E_\text{SN}}{E(T_{\text{max}_j})}
$$
where $k_e$ is a plastic correction factor for large loads (NB-3228.5), $E_\text{SN}$ is the Young Modulus used to creat the $S$-$N$ curve (provided in the ASME fatigue curves) and\ $E(T_{\text{max}_j})$ is the material’s Young Modulus at the maximum temperature within the\ $j$-th interval.
where $k_e$ is a plastic correction factor for large loads (NB-3228.5), $E_\text{SN}$ is the Young Modulus used to create the $S$-$N$ curve (provided in the ASME fatigue curves) and\ $E(T_{\text{max}_j})$ is the material’s Young Modulus at the maximum temperature within the\ $j$-th interval.

We now need to comply with ASME’s obscure note about the number of cycles to assign a proper value of\ $n_j$. Back to the largest pair 447-694, we see that 447 belongs to transient\ #1 which has $n_1=20$ and 694 belongs to the earthquake with\ $n_e=5$. Therefore\ $n_1=5$, and the cycles associated to each index are decreased in five. So $i=694$ disappears and the number of cycles associated to $i=447$ are decreased from 20 to 15. The second largest pair is now 447-699, with 15 (because we just spent 5 in the first pair) and 50 cycles respectively. Now $n_2=15$, point\ 447 disappears and 699 remains with 35 cycles. The next pair is 699-1020, with number of cycles 35 and 20 so $n_3=20$, point 1020 disappears and 699 remains with 15 cycles. And so on, down to the last pair.

@@ -1165,7 +1165,7 @@ Why all these details? Not because I want to teach you how to perform fatigue ev

## In water (NRC’s extension)

The fatigue curves and ASME’s (both\ III and VIII) methodology to analyse cyclic operations assume the parts under study are in contact with air, which is not the case of nuclear reactor pipes. Insteado of building a brand new body of knowledge to replace ASME, the NRC decided to modify the former adding environmentally-assisted fatigue multipliers to the traditional usage factors, defined as
The fatigue curves and ASME’s (both\ III and VIII) methodology to analyse cyclic operations assume the parts under study are in contact with air, which is not the case of nuclear reactor pipes. Instead of building a brand new body of knowledge to replace ASME, the NRC decided to modify the former adding environmentally-assisted fatigue multipliers to the traditional usage factors, formally defined as

$$F_\text{en} = \frac{N_\text{air}}{N_\text{water}} \geq 1$$

@@ -1176,7 +1176,7 @@ and the global cumulative usage factor in water is the sum of these partial cont

$$\text{CUF}_\text{en} = U_1 \cdot F_{\text{en},1} + U_2 \cdot F_{\text{en},2} + \dots + U_j \cdot F_{\text{en},j} + \dots$${#eq:cufen}

In EPRI words:
In EPRI’s words:

> The general steps for performing an EAF analysis are as follows:
>
@@ -1188,24 +1188,25 @@ transient pair ($U_j$), to determine the $\text{CUF}_\text{en}$, using\ [@eq:cuf

Again, if $\text{CUF}_\text{en} < 1$, then the system under study can withstand the assumed cyclic loads. Note that as\ $F_{\text{en},j}$, we can have $\text{CUF} < 1$ and $\text{CUF}_\text{en} > 1$ at the same time.

\medskip

The NRC has performed a comprehensive set of theoretical and experimental tests to study and analyse the nature and dependence of the non-dimensional correction factors\ $F_\text{en}$. They found that, for a given material, they depend on:

a. the concentration\ $O(t)$ of dissolved oxygen in the water,
b. the temperature\ $T(t)$ of the pipe,
c. the strain rate\ $\dot{\epsilon}(t)$, and
d. the content of sulfur\ $S(t)$ in the pipes (only for carbon or low-allow steels).
d. the content of sulphur\ $S(t)$ in the pipes (only for carbon or low-allow steels).

Apparently it makes no difference whether the environment if composed of either light or heavy water. There are somewhat different sets of non-dimensional analytical expressions that give the value of\ $F_{\text{en}}(t)$, both in the few revisions of NUREG/6909 and in EPRI’s report \#1025823. Although they are not important now, the actual expressions should be defined and agreed with the plant owner and the regulator. The main result is that\ $F_{\text{en}}(t)=1$ if\ $\dot{\epsilon}(t)\leq0$, i.e. there are no environmental effects during the time intervals where the pipe is being compressed.
Apparently it makes no difference whether the environment if composed of either light or heavy water. There are somewhat different sets of non-dimensional analytical expressions that estimate the value of\ $F_{\text{en}}(t)$ as a function of\ $O(t)$, $T(t)$, $\dot{\epsilon}(t)$ and $S(t)$, both in the few revisions of NUREG/CR-6909 and in EPRI’s report \#1025823. Although they are not important now, the actual expressions should be defined and agreed with the plant owner and the regulator. The main result to take into account is that\ $F_{\text{en}}(t)=1$ if\ $\dot{\epsilon}(t)\leq0$, i.e. there are no environmental effects during the time intervals where the material is being compressed.

Once we have the instantaneous factor\ $F_{\text{en}}(t)$, we need to obtain an average value\ $F_{\text{en},j}$ which should be applied to the\ $j$-th load pair. Again, there are a few different ways of lumping the time-dependent\ $F_{\text{en}}(t)$ into a single $F_{\text{en},j}$ for each interval. Both NRC and EPRI give simple equations that depend on particular time discretization of the stress histories that, in my view, are all ill-defined. My guess is that they underestimated they audience and feared readers would not understand the slightly-more complex mathematics needed to correctly define the problem. The result is that they introduced a lot of ambiguities (and even technical errors) just not to offend the maths illiterate. A decision I do not share, and a another reason to keep on learning and practising math.
Once we have the instantaneous factor\ $F_{\text{en}}(t)$, we need to obtain an average value\ $F_{\text{en},j}$ which should be applied to the\ $j$-th load pair. Again, there are a few different ways of lumping the time-dependent\ $F_{\text{en}}(t)$ into a single $F_{\text{en},j}$ for each interval. Both NRC and EPRI give simple equations that depend on particular time discretisation of the stress histories that, in my view, are all ill-defined. My guess is that they underestimated they audience and feared readers would not understand the slightly-more complex mathematics needed to correctly define the problem. The result is that they introduced a lot of ambiguities (and even technical errors) just not to offend the maths illiterate. A decision I do not share, and a another reason to keep on learning and practising math.

Back in the case study, I have come up with a weighting method that I claim is less ill-defined (it still is for border-line cases) and which the plain owner accepted as valid. [@Fig:cufen] shows the reference results of the problem and the ones obtained with the proposed method (based on computing two correction factors and then taking the maximum). Note how in\ [@fig:cufen-nrc], pairs 694-447 and 699-447 have the same\ $F_\text{en}$ even though they are (marginally) different. The results from\ [@fig:cufen-seamplex] give two (marginally) different correction factors.

::::: {#fig:cufen}
![Results according to the author of NUREG/6909 corresponding to the latest draft of the document.](cufen-nrc.png){#fig:cufen-nrc width=100%}
![Results according to the author of NUREG/CR-6909 corresponding to the latest draft of the document.](cufen-nrc.png){#fig:cufen-nrc width=80%}

![Results reproduced by the author using his own weighting scheme.](cufen-seamplex.png){#fig:cufen-seamplex width=100%}
![Results reproduced by the author using his own weighting scheme.](cufen-seamplex.png){#fig:cufen-seamplex width=80%}

Tables of individual environmental correction and usage factors for the NRC/EPRI “EAF Sample Problem 2-Rev.\ 2 (10/21/2011).” The reference method assigns the same\ $F_\text{en}$ to the first two rows whilst the proposed lumping scheme does show a difference.
:::::
@@ -1254,6 +1255,7 @@ experimento de millikan
* learn to write scripts to post-process FEM results (from a script-friendly FEM program)
* clone the [environmental fatigue sample problem repository](https://bitbucket.org/seamplex/) and run the scripts to solve the NRC/EPRI [@sec:parametric] were built and expand them to cover “we might go on...” bullets

divert(-1)
# Referenced works

## Books
@@ -1271,3 +1273,4 @@ esyscmd([[lynx -dump -listonly nafems4.html | grep http | awk '{print $2}' | sor
## Wikipedia

esyscmd([[lynx -dump -listonly nafems4.html | grep http | awk '{print $2}' | sort -u | uniq | grep wikipedia | awk '{printf(" * <%s>\n", $1)}']])
divert(0)

Loading…
取消
儲存