Quellcode durchsuchen

figs in pdf & epub

tags/CANDIDATE
gtheler vor 6 Jahren
Ursprung
Commit
1b644a4f1d
5 geänderte Dateien mit 105 neuen und 33 gelöschten Zeilen
  1. +2
    -1
      meta.yaml
  2. +21
    -17
      nafems4.md
  3. BIN
      real-temp.png
  4. +69
    -0
      simple.epub
  5. +13
    -15
      simple.tex

+ 2
- 1
meta.yaml Datei anzeigen

@@ -15,6 +15,7 @@ mathspec: true
formats: html tex pdf epub
listings: true
template: simple
documentclass: article
classoption: twoside
geometry: "a5paper, left=15mm, right=15mm, bottom=25mm, top=20mm, foot=15mm, head=10mm"
geometry: "a5paper, left=15mm, right=15mm, bottom=25mm, top=20mm, foot=15mm, head=15mm"
...

+ 21
- 17
nafems4.md Datei anzeigen

@@ -47,7 +47,7 @@ So here comes another experience tip: do not fear equations. Even more, keep exe
One final comment: throughout the text I will be referring to “your favourite FEM program.” I bet you do have one. Mine is [CAEplex](https://caeplex.com) (it works on top of [Fino](https://www.seamplex.com/fino)). We will be using it to perform some tests and play a little bit. And we will also use it to think about what it means to use a FEM program to generate results that will eventually end up in a written project with your signature. Keep that in mind.


# Case study: nuclear reactors, pressurised pipes and fatigue {#sec:case}
# Case study: reactors, pipes and fatigue {#sec:case}

Piping systems in sensitive industries like nuclear or oil & gas should be designed and analysed following the recommendations of an appropriate set of codes and norms, such as the [ASME\ Boiler and Pressure Vessel Code](https://en.wikipedia.org/wiki/ASME_Boiler_and_Pressure_Vessel_Code).
This code of practice was born during the late\ XIX century, before finite-element methods for solving partial differential equations were even developed. And much longer before they were available for the general engineering community. Therefore, much of the code assumes design and verification is not necessarily performed numerically but with paper and pencil (yes, like in college). However, it still provides genuine guidance in order to ensure pressurised systems behave safely and properly without needing to resort to computational tools. Combining finite-element analysis with the ASME code gives the cognisant engineer a unique combination of tools to tackle the problem of designing and/or verifying pressurised piping systems.
@@ -186,7 +186,7 @@ That is all what we can say about an infinite pipe with uniform material propert



# Finite elements, or solving an actual engineering problem
# Finite elements, or solving actual problems

Besides infinite pipes (both thin and thick), spheres and a couple of other geometries, there are not other cases for which we can obtain analytical expressions for the elements of the stress tensor. To get results for a solid with real engineering interest, we need to use numerical methods to solve the equilibrium equations. It is not that the equations are hard _per se_. It is that the mechanical parts we engineers like to design (which are of course better than cylinders and spheres) are so intricate that render simple equations into monsters which are unsolvable with pencil and paper. Hence, finite elements enter into the scene.

@@ -385,7 +385,7 @@ CAD model of a piping system with a 3/4-inch weldolet-type fork (stainless steel


::::: {#fig:weldolet-mesh}
![Overall view](weldolet-mesh1.png){#fig:weldolet-mesh1 width=65%}
![Overall view](weldolet-mesh1.png){#fig:weldolet-mesh1 width=55%}

![Detail of the grid around the junction, showing mesh refinement around the material interface (purple and green elements).](weldolet-mesh2.png){#fig:weldolet-mesh2}

@@ -409,11 +409,11 @@ dnl 33300 02-D-3-4


::::: {#fig:valve}
![Full CAD model.](valve-cad1.png){#fig:valve-cad1 width=80%}
![Full CAD model.](valve-cad1.png){#fig:valve-cad1 width=75%}

![Full mesh, approximately 220k nodes.](valve-mesh1.png){#fig:valve-mesh1 width=80%}
![Full mesh, approximately 220k nodes.](valve-mesh1.png){#fig:valve-mesh1 width=75%}

![The SCLs are located at both sides of the material interface in the vertical plane both at the top and at the bottom of the pipe.](valve-scls1.png){#fig:valve-scls1 width=75%}
![The SCLs are located at both sides of the material interface in the vertical plane both at the top and at the bottom of the pipe.](valve-scls1.png){#fig:valve-scls1 width=70%}

An example case where the SCLs are located around the junction between stainless-steel valves and carbon steel pipes
:::::
@@ -425,7 +425,7 @@ As an example, let us consider the system depicted in\ [@fig:valve] where there
::::: {#fig:valve-temp-gen}
![Reduced mesh around the valve refined around the interface where the transient heat conduction problem is solved.](valve-temp.png){#fig:valve-temp width=80%}

![Generalisation of the resulting temperature to the original mesh from figure [@fig:valve-mesh1]](valve-gen.png){#fig:valve-gen}
![Generalisation of the resulting temperature to the original mesh from figure [@fig:valve-mesh1]](valve-gen.png){#fig:valve-gen width=95%}

Computation of the thermal problem in a reduced mesh and generalisation of the result to the full original 3D mesh of figure\ [@fig:valve-mesh1]
:::::
@@ -436,11 +436,11 @@ Please note that there is no need to have a one-to-one correspondence between th
dnl 33410 10-12D-24

::::: {#fig:real}
![Original full 3D mesh, carbon steel is magenta, stainless steel is green.](real-mesh2.png){#fig:real-mesh2 width=75%}
![Original full 3D mesh, carbon steel is magenta, stainless steel is green.](real-mesh2.png){#fig:real-mesh2 width=70%}

![Temperature distribution for a certain time within the transient computed on a reduced two-dimensional axi-symmetric mesh modelling half the orifice plate and a length of the carbon pipe.](real-temp.png){#fig:real-temp width=100%}

![Generalisation of the temperature from the reduced mesh to the full three-dimensional grid.](real-gen.png){#fig:real-gen width=80%}
![Generalisation of the temperature from the reduced mesh to the full three-dimensional grid.](real-gen.png){#fig:real-gen width=75%}

The material interface in the system from [@fig:real-life] is configured by an orifice plate made of stainless steel welded to a carbon-steel pipe
:::::
@@ -508,7 +508,9 @@ Even though we did not yet discuss it in detail, we want to solve an elastic pro

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 to weight yourself (let us say you weight 81.2\ kg), then to grab your dog and to 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). Would not there be a master-pet interaction that renders the weighting problem non-linear?

Let us now 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 create a 1mm $\times$ 1mm $\times$ 1mm cube. Set any values for the Young Modulus and Poisson ratio as you want. I chose\ $E=200$\ GPa and\ $\nu=0.28$. Restrict the three faces pointing to the negative axes to their planes, i.e.
\medskip

Time for both of us to make an experiment. Grab your favourite FEM program for the first time (remember mine is [CAEplex](https://caeplex.com)) and create a 1mm $\times$ 1mm $\times$ 1mm cube. Set any values for the Young Modulus and Poisson ratio as you want. I chose\ $E=200$\ GPa 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$),
@@ -633,6 +635,8 @@ Spatial distribution of principal stress\ 3 for cases\ B and\ C. If linearity ap
In the second case, the principal stresses are not uniform and have a non-trivial distribution. Indeed, the distribution of\ $\sigma_3$ obtained by [CAEplex](https://www.caeplex.com) is shown in\ [@fig:cube-shear].
Now, if we indeed were facing a fully linear problem then the results of the sum of two inputs would be equal to the sum of the individual inputs. And\ [@fig:cube-full], which shows the principal stress\ 3 of case\ C is not the result from case\ B plus any of the three constants from case\ A. Had it been, the colour distribution would be _exactly_ the same as the scale goes automatically from the most negative value in blue to the most positive value in red. And 7+30\ $\neq$ 33. Alas, it seems that there exists some kind of unexpected non-linearity (the feared master-pet interaction?) that prevents us from from fully splitting the problem into simpler chunks.

\medskip

So what is the source of this unexpected non-linear effect in an otherwise nice and friendly linear formulation? Well, probably you already know it because after all it is almost high-school mathematics. But I learned long after college, when I had to fac a real engineering problem and not just back-of-the-envelope pencil-and-paper trivial exercises.

Recall that principal stresses are the eigenvalues of the stress tensor. And the fact that in a linear elastic formulation the stress tensor of case\ C above is the sum of the individual stress tensors from cases\ A and B does not mean that their eigenvalues can be summed (think about it!). Again, imagine the eigenvalues and eigenvectors of cases A & B. Got it? Good. Now imagine the eigenvalues and eigenvectors for case\ C. Should they sum up? No, they should not! Let us make another experiment, this time with matrices using [Octave](https://www.gnu.org/software/octave/) or whatever other matrix-friendly program you want (try to avoid black boxes as explained in\ [@sec:two-materials]).
@@ -1027,9 +1031,9 @@ And this last equation is linear in\ $\mathbf{u}$. In effect, the discretisation


::::: {#fig:case-cad}
![General view. Carbon steel is grey 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=75%}

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

Three-dimensional\ CAD model of a section of the piping system between appropriate supports
:::::
@@ -1153,11 +1157,11 @@ It consists of a typical vessel (NB-3200) nozzle with attached piping (NB-3600)
A design-basis earthquake was assumed to occur briefly during one second at around\ $t=3470$\ seconds, and it is assigned a number of cycles\ $n_e=5$. The detailed stress history for one of the SCLs including both the principal and lineariased stresses, which are already offset following NB-3216.2 so as to have a maximum stress equal to zero, can be found as an appendix in NRC's NUREG/CR-6909 report.

::::: {#fig:nureg}
![Full time range of the juxtaposed transients spanning $\approx$ 36,000 seconds](nureg1.svg){#fig:nureg1 width=80%}
![Full time range of the juxtaposed transients spanning $\approx$ 36,000 seconds](nureg1.svg){#fig:nureg1 width=75%}

![Detail of transients showing the ids of some extrema](nureg2.svg){#fig:nureg2 width=80%}
![Detail of transients showing the ids of some extrema](nureg2.svg){#fig:nureg2 width=75%}

![Detail of the earthquake (it does not follow the ASME two-second rule)](nureg3.svg){#fig:nureg3 width=80%}
![Detail of the earthquake (it does not follow the ASME two-second rule)](nureg3.svg){#fig:nureg3 width=75%}

Linearised stress\ $\text{MB}_{31}$ time history of the example problem from NRC and EPRI. The indexes\ $i$ of the extrema are shown in green (minimums) and red (maximums).
:::::
@@ -1222,9 +1226,9 @@ Once we have the instantaneous factor\ $F_{\text{en}}(t)$, we need to obtain an
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/CR-6909 corresponding to the latest draft of the document.](cufen-nrc.png){#fig:cufen-nrc width=80%}
![Results according to the author of NUREG/CR-6909 corresponding to the latest draft of the document.](cufen-nrc.png){#fig:cufen-nrc width=75%}

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

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.
:::::

BIN
real-temp.png Datei anzeigen

Vorher Nachher
Breite: 2396  |  Höhe: 533  |  Größe: 27KB Breite: 2396  |  Höhe: 533  |  Größe: 28KB

+ 69
- 0
simple.epub Datei anzeigen

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops"$if(lang)$ xml:lang="$lang$"$endif$>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<title>$pagetitle$</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
$if(quotes)$
q { quotes: "“" "”" "‘" "’"; }
$endif$
</style>
$if(highlighting-css)$
<style>
$highlighting-css$
</style>
$endif$
$for(css)$
<link rel="stylesheet" href="$css$" />
$endfor$
$for(header-includes)$
$header-includes$
$endfor$
</head>
<body$if(coverpage)$ id="cover"$endif$$if(body-type)$ epub:type="$body-type$"$endif$>
$if(titlepage)$
<section epub:type="titlepage" class="titlepage">
$for(title)$
$if(title.type)$
<h1 class="$title.type$">$title.text$</h1>
$else$
<h1 class="title">$title$</h1>
$endif$
$endfor$
$if(subtitle)$
<p class="subtitle">$subtitle$</p>
$endif$
$for(author)$
<p class="author">$author$</p>
$endfor$
$for(creator)$
<p class="$creator.role$">$creator.text$</p>
$endfor$
$if(publisher)$
<p class="publisher">$publisher$</p>
$endif$
$if(date)$
<p class="date">$date$$if(rev)$&mdash;rev.&nbsp;$rev$$endif$$if(hash)$&mdash;<code>$hash$</code>$endif$</p>
$endif$
$if(rights)$
<div class="rights">$rights$</div>
$endif$
</section>
$else$
$for(include-before)$
$include-before$
$endfor$
$body$
$for(include-after)$
$include-after$
$endfor$
$endif$
</body>
</html>


+ 13
- 15
simple.tex Datei anzeigen

@@ -193,21 +193,12 @@ $endif$
\usepackage{lastpage}
\usepackage{fancyhdr}
\pagestyle{fancy}
% \fancyhf{} % clear all header and footer fields
% \lfoot{\scriptsize{$if(date)$ $date$ $endif$ / $if(hash)$ \texttt{$hash$} $endif$}}
% \rfoot{\thepage/\pageref{LastPage}}
% \rhead{\includegraphics[height=10pt]{logo}}
% \renewcommand{\headrulewidth}{0.0pt}
% \renewcommand{\footrulewidth}{0.4pt}

% \fancypagestyle{plain}{%
% \fancyhf{} % clear all header and footer fields
% $if(hash)$
% % \lhead{\scriptsize{\texttt{$hash$}}}
% \rfoot{\scriptsize{\texttt{$hash$}}}
% $endif$
% \renewcommand{\headrulewidth}{0pt}
% \renewcommand{\footrulewidth}{0pt}}
\fancyhf{} % clear all header and footer fields
\renewcommand{\headrulewidth}{0.0pt}
\fancyhead[RO]{\slshape \rightmark}
\fancyhead[LE]{\slshape \leftmark}
\fancyfoot[LE,RO]{\scriptsize{$if(date)$ $date$ $endif$ / $if(hash)$ \texttt{$hash$} $endif$}}
\fancyfoot[C]{\thepage}

$if(links-as-notes)$
% Make links footnotes instead of hotlinks:
@@ -331,6 +322,13 @@ $endif$
% vectors done right
\renewcommand{\vec}[1]{\ensuremath\mathbf{#1}}

\setcounter{topnumber}{2}
\setcounter{bottomnumber}{2}
\setcounter{totalnumber}{4}
\renewcommand{\topfraction}{0.85}
\renewcommand{\bottomfraction}{0.85}
\renewcommand{\textfraction}{0.15}
\renewcommand{\floatpagefraction}{0.7}
$body$

$if(natbib)$

Laden…
Abbrechen
Speichern