Procházet zdrojové kódy

cosas

tags/CANDIDATE
gtheler před 6 roky
rodič
revize
e7bdc36485
1 změnil soubory, kde provedl 29 přidání a 34 odebrání
  1. +29
    -34
      nafems4.md

+ 29
- 34
nafems4.md Zobrazit soubor





::::: {#fig:pendulum} ::::: {#fig:pendulum}
![Simple pendulum](simple.svg){#fig:simple width=35%}
![Simple pendulum](simple.svg){#fig:simple width=35%}\
![Real pendulum](hamaca.jpg){#fig:hamaca width=60%} ![Real pendulum](hamaca.jpg){#fig:hamaca width=60%}


A simple pendulum from college physics courses and a real-life pendulum. The same difference exists between theoretical FEM courses and actual engineering problems. Hint: the swing’s period _does_ depend on the hanging mass. See the [actual video](hamaca.webm). A simple pendulum from college physics courses and a real-life pendulum. The same difference exists between theoretical FEM courses and actual engineering problems. Hint: the swing’s period _does_ depend on the hanging mass. See the [actual video](hamaca.webm).
::::: :::::


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. You learned that the period does not depend on the hanging mass because the weight and the inertia exactly canceled each other. Also, that Galileo said 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. It also might seem a very simple case for you today. But it is _after_ college that you **xxxxxxxxxxxxxxxx**
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 canceled 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.


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




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, we should aim at writing.”]
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, we should aim at writing.”).




## Tips and tricks ## Tips and tricks
There are some useful tricks that come handy when trying to solve a mechanical problem. Throughout this text, I will try to tell you some of them. There are some useful tricks that come handy when trying to solve a mechanical problem. Throughout this text, I will try to tell you some of them.




One of the most important ones is using your _imagination_. You will need a lot of imagination to “see“ what it is actually going on when analysing an engineering problem. This skill comes from my background in nuclear engineering where I had not choice but to imagine a [positron-electron annihilation](https://en.wikipedia.org/wiki/Electron%E2%80%93positron_annihilation) or an [Spontaneous fission](https://en.wikipedia.org/wiki/Spontaneous_fission). But in mechanical engineering, it is likewise important to be able to imagine how the loads “press” one element with the other, how the material reacts depending on its properties, how the nodal displacements generate stresses (both normal and shear), how results converge, etc. And what these results actually mean besides the pretty-coloured figures.^[A former boss once told me “I need the CFD” when I handed in some results. I replied that I did not do computational fluid-dynamics but computed the neutron flux kinetics within a nuclear reactor core. He joked “I know, what I need are the _Colors For Directors_, those pretty coloured figures along with your actual results.”]
One of the most important ones is using your _imagination_. You will need a lot of imagination to “see“ what it is actually going on when analysing an engineering problem. This skill comes from my background in nuclear engineering where I had not choice but to imagine a [positron-electron annihilation](https://en.wikipedia.org/wiki/Electron%E2%80%93positron_annihilation) or an [Spontaneous fission](https://en.wikipedia.org/wiki/Spontaneous_fission). But in mechanical engineering, it is likewise important to be able to imagine how the loads “press” one element with the other, how the material reacts depending on its properties, how the nodal displacements generate stresses (both normal and shear), how results converge, etc. And what these results actually mean besides the pretty-coloured figures (a former boss once told me “I need the CFD” when I handed in some results. I replied that I did not do computational fluid-dynamics but computed the neutron flux kinetics within a nuclear reactor core. He joked “I know, what I need are the _Colors For Directors_, those pretty coloured figures along with your actual results.”).
This journey will definitely need your imagination. We will see equations, numbers, plots, schematics, 3D geometries, interactive 3D views, etc. Still, when the theory says “thermal expansion produces linear stresses” you have to picture in your head three little arrows pulling away from the same point in three directions, or whatever mental picture you have about what you understand are thermally-induced stresses. What comes to your mind when someone says that out of the nine elements of the stress tensors there are only six that are independent? Whatever it is, try to practice that kind of graphical thoughts with every concept. This journey will definitely need your imagination. We will see equations, numbers, plots, schematics, 3D geometries, interactive 3D views, etc. Still, when the theory says “thermal expansion produces linear stresses” you have to picture in your head three little arrows pulling away from the same point in three directions, or whatever mental picture you have about what you understand are thermally-induced stresses. What comes to your mind when someone says that out of the nine elements of the stress tensors there are only six that are independent? Whatever it is, try to practice that kind of graphical thoughts with every concept.


Another heads up is that we will dig into some math. Probably it would be be simple and you would deal with it very easily. But probably you do not like equations. No problem! Just ignore them for now. Read the text skipping them, it should work. Another heads up is that we will dig into some math. Probably it would be be simple and you would deal with it very easily. But probably you do not like equations. No problem! Just ignore them for now. Read the text skipping them, it should work.
Lukaz says [you do not need to know math to perform finite-element analysis](https://enterfea.com/math-behind-fea/). And he is right, in the sense that you do not need to know thermodynamics to drive a car. It is fine to ignore math for now.
Łukasz Skotny says [you do not need to know math to perform finite-element analysis](https://enterfea.com/math-behind-fea/). And he is right, in the sense that you do not need to know thermodynamics to drive a car. It is fine to ignore math for now.
But, eventually, a time will come in which it cannot (or should not) be avoided. If you want to go to space, you will definitely have to learn thermodynamics. But, eventually, a time will come in which it cannot (or should not) be avoided. If you want to go to space, you will definitely have to learn thermodynamics.


So here comes another experience tip: do not fear mathematics. Even more, keep exercising. You have used differences of squares in high school. You know (or at least knew) how to integrate by parts. Remember what Laplace transforms are used for? Once in a while, perform a division of polynomials using [Ruffini’s rule](https://en.wikipedia.org/wiki/Ruffini's_rule). Or compute the second derivative of the quotient of two functions. Whatever. It should be like doing crosswords on the newspaper. Grab those old physics college books and read the exercises at the end of each chapter. It will pay off later on. So here comes another experience tip: do not fear mathematics. Even more, keep exercising. You have used differences of squares in high school. You know (or at least knew) how to integrate by parts. Remember what Laplace transforms are used for? Once in a while, perform a division of polynomials using [Ruffini’s rule](https://en.wikipedia.org/wiki/Ruffini's_rule). Or compute the second derivative of the quotient of two functions. Whatever. It should be like doing crosswords on the newspaper. Grab those old physics college books and read the exercises at the end of each chapter. It will pay off later on.


Throught the text I will be referring to “your favourite FEM program.” I bet you do have one. We will be using it to perform some tests and play a little bit. And we will 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: nuclear reactors, pressurised pipes and fatigue {#sec:case}


Figure [-@fig:grids] illustrates how the same domain can be discretized using these two kind of grids. In the first case, we could identify any single cell by using just two indexes. We could even tell which nodes define each cell just from these indexes. In the second case, we need an explicit list first to know how many cells there are. Even more, there is no way to link the nodes with the cells (back and forth) other than having a list of nodes and cells. Again, there are pros and cons for each of the grid types such as simplicity, flexibility, etc. In general, unstructured grids and better represent a certain geometry with the same number of cells. Structured grids suffer the so-called “staircase effect” that makes the unusable for discretizing mechanical parts. Figure [-@fig:grids] illustrates how the same domain can be discretized using these two kind of grids. In the first case, we could identify any single cell by using just two indexes. We could even tell which nodes define each cell just from these indexes. In the second case, we need an explicit list first to know how many cells there are. Even more, there is no way to link the nodes with the cells (back and forth) other than having a list of nodes and cells. Again, there are pros and cons for each of the grid types such as simplicity, flexibility, etc. In general, unstructured grids and better represent a certain geometry with the same number of cells. Structured grids suffer the so-called “staircase effect” that makes the unusable for discretizing mechanical parts.


::::: {#fig:grids} ::::: {#fig:grids}
![Continuous domain](dominio-continuo.svg){#fig:continuous width=30%}
![Structured grid](dominio-estructurado.svg){#fig:structured width=30%}
![Continuous domain](dominio-continuo.svg){#fig:continuous width=30%}\
![Structured grid](dominio-estructurado.svg){#fig:structured width=30%}\
![Unstructured grid](dominio-no-estructurado.svg){#fig:unstructured width=30%} ![Unstructured grid](dominio-no-estructurado.svg){#fig:unstructured width=30%}


Discretization of a spatial domain Discretization of a spatial domain
b. heat transients, and b. heat transients, and
c. seismic loads. c. seismic loads.


As I wanted to illustrate in [@sec:five], it is very important to decide what kind of problem (actually problems) we should be dealing with. As a nuclear engineer, I learned (theoretically in college but practically after college) that there are some models that let you see some effects and some that let you see other effects.^[Please [say “modeling” not “simulation.”](https://www.seamplex.com/blog/say-modeling-not-simulation.html)] And even if, in principle, it is true that more complex models should let you see more stuff, they definitely might show you nothing at all if the model is so big and complex that it does not fit into a computer (say because it needs hundreds of gigabytes of RAM to run) or because it takes more time to compute than you may have before the final report is expected.
As I wanted to illustrate in [@sec:five], it is very important to decide what kind of problem (actually problems) we should be dealing with. As a nuclear engineer, I learned (theoretically in college but practically after college) that there are some models that let you see some effects and some that let you see other effects (please [say “modeling” not “simulation.”](https://www.seamplex.com/blog/say-modeling-not-simulation.html)]). And even if, in principle, it is true that more complex models should let you see more stuff, they definitely might show you nothing at all if the model is so big and complex that it does not fit into a computer (say because it needs hundreds of gigabytes of RAM to run) or because it takes more time to compute than you may have before the final report is expected.


First of all, we should note that we need to solve First of all, we should note that we need to solve


A real continuous solid has infinite modes of oscillation. A discretized one (using the most common and efficient FEM formulation, the [displacement-based formulation](http://web.mit.edu/kjb/www/Books/FEP_2nd_Edition_4th_Printing.pdf)) has three times the number of nodes modes of oscillation. In any case, one is usually interested only in a few of them, namely those with the lower frequencies because they take most of the energy with them. Each mode has two associated parameters called modal mass and excitation parameter that reflect how “important” the mode is regarding the absorption of energy from an external oscillatory source. Usually a couple of dozens of modes are enough to take up more than 90% of the earthquake energy. Figure\ [-@fig:modes] shows the first six natural modes of a sample piping section. A real continuous solid has infinite modes of oscillation. A discretized one (using the most common and efficient FEM formulation, the [displacement-based formulation](http://web.mit.edu/kjb/www/Books/FEP_2nd_Edition_4th_Printing.pdf)) has three times the number of nodes modes of oscillation. In any case, one is usually interested only in a few of them, namely those with the lower frequencies because they take most of the energy with them. Each mode has two associated parameters called modal mass and excitation parameter that reflect how “important” the mode is regarding the absorption of energy from an external oscillatory source. Usually a couple of dozens of modes are enough to take up more than 90% of the earthquake energy. Figure\ [-@fig:modes] shows the first six natural modes of a sample piping section.


::::: {#fig:modes} ::::: {#fig:modes}
![$i=1$](mode1.png){width=50%}
![$i=2$](mode2.png){width=50%}
![$i=1$](mode1.png){width=48%}\
![$i=2$](mode2.png){width=48%}


![$i=3$](mode3.png){width=50%}
![$i=4$](mode4.png){width=50%}
![$i=3$](mode3.png){width=48%}\
![$i=4$](mode4.png){width=48%}


![$i=5$](mode5.png){width=50%}
![$i=6$](mode6.png){width=50%}
![$i=5$](mode5.png){width=48%}\
![$i=6$](mode6.png){width=50%}


First six natural oscillation modes for a piping section. First six natural oscillation modes for a piping section.
::::: :::::




::::: {#fig:cube} ::::: {#fig:cube}
![Case B, pure-shear loads](cube-shear.png){#fig:cube-shear width=48%}
![Case B, pure-shear loads](cube-shear.png){#fig:cube-shear width=48%}\
![Case C, normal plus shear loads](cube-full.png){#fig:cube-full width=48%} ![Case C, normal plus shear loads](cube-full.png){#fig:cube-full width=48%}


Spatial distribution of principal stress\ 3 for cases\ B and\ C. If linearity applied, case\ C would be equal to case\ B plus an constant. Spatial distribution of principal stress\ 3 for cases\ B and\ C. If linearity applied, case\ C would be equal to case\ B plus an constant.
10. etc. 10. etc.


::::: {#fig:quarter} ::::: {#fig:quarter}
![Structured second-order incomplete hexahedra](quarter-struct.png){#fig:cube-struct width=48%}
![Structured second-order incomplete hexahedra](quarter-struct.png){#fig:cube-struct width=48%}\
![Unstructured second-order tetrahedra](quarter-caeplex.png){#fig:quarter-caeplex width=48%} ![Unstructured second-order tetrahedra](quarter-caeplex.png){#fig:quarter-caeplex width=48%}


Two of the hundreds of different ways the infinite pressurized pipe can be solved using FEM Two of the hundreds of different ways the infinite pressurized pipe can be solved using FEM
::::: :::::




You can get both the exponential nature of each added bullet and how easily we can add new further choices to solve a FEM problem. And each of these choices will reveal you something about the nature of either the mechanical problem or the numerical solution. It is not possible to teach any possible lesson from every outcome in college, so you will have to learn them by yourself getting hands at them. I have already tried to address the particular case of the infinite pipe in a [recent report](https://www.seamplex.com/fino/doc/pipe-linearized/)^[<https://www.seamplex.com/fino/doc/pipe-linearized/>] that is worth reading before carrying on with this article. The conclusions of the report are:
You can get both the exponential nature of each added bullet and how easily we can add new further choices to solve a FEM problem. And each of these choices will reveal you something about the nature of either the mechanical problem or the numerical solution. It is not possible to teach any possible lesson from every outcome in college, so you will have to learn them by yourself getting hands at them. I have already tried to address the particular case of the infinite pipe in a [recent report](https://www.seamplex.com/fino/doc/pipe-linearized/) that is worth reading before carrying on with this article. The conclusions of the report are:


* Engineering problems ought not to be solved using black-boxes (i.e. privative software whose source code is not freely available)---more on the subject below in\ [@sec:two-materials]. * Engineering problems ought not to be solved using black-boxes (i.e. privative software whose source code is not freely available)---more on the subject below in\ [@sec:two-materials].
* The pressurized infinite pipe has only one independent variable (the radius $r$) and one primary dependent variable (the radial displacement $u_r$). * The pressurized infinite pipe has only one independent variable (the radius $r$) and one primary dependent variable (the radial displacement $u_r$).
* The error with respect to the analytical solutions as a function of the CPU time needed to compute the membrane stress is similar for both first and second-order grids. But for the computation of the membrane plus bending stress ([@fig:error-MB-vs-cpu]), first-order grids give very poor results compared to second-order grids for the same CPU time. * The error with respect to the analytical solutions as a function of the CPU time needed to compute the membrane stress is similar for both first and second-order grids. But for the computation of the membrane plus bending stress ([@fig:error-MB-vs-cpu]), first-order grids give very poor results compared to second-order grids for the same CPU time.


::::: {#fig:error-vs-cpu} ::::: {#fig:error-vs-cpu}
![Membrane $\text{M}$](error-M-vs-cpu.svg){#fig:error-M-vs-cpu width=48%}
![Membrane $\text{M}$](error-M-vs-cpu.svg){#fig:error-M-vs-cpu width=48%}\
![Membrane plus bending $\text{MB}$](error-MB-vs-cpu.svg){#fig:error-MB-vs-cpu width=48%} ![Membrane plus bending $\text{MB}$](error-MB-vs-cpu.svg){#fig:error-MB-vs-cpu width=48%}


Error in the computation of the linearised stresses vs. CPU time needed to solve the problem using FEM Error in the computation of the linearised stresses vs. CPU time needed to solve the problem using FEM
So the question is... how hard is to solve a sparse linear problem? Well, the number of iterations needed to attain convergence depends on the [spectral radius](https://en.wikipedia.org/wiki/Spectral_radius) of the stiffness matrix\ $K$, which in turns depend on the elements themselves, which depend mainly on the parameters of the elastic problem. But it also depends on how sparse\ $K$ is, which changes with the element topology and order. [@Fig:test] shows the structure of two stiffness matrices for the same linear elastic problem discretized using exactly the same number of nodes with first and second-order elements. The matrices have the same size (because the number of nodes is the same) but the former is more sparse than the latter. Hence, it would be harder (in computational terms of CPU and RAM) to solve the second-order case. So the question is... how hard is to solve a sparse linear problem? Well, the number of iterations needed to attain convergence depends on the [spectral radius](https://en.wikipedia.org/wiki/Spectral_radius) of the stiffness matrix\ $K$, which in turns depend on the elements themselves, which depend mainly on the parameters of the elastic problem. But it also depends on how sparse\ $K$ is, which changes with the element topology and order. [@Fig:test] shows the structure of two stiffness matrices for the same linear elastic problem discretized using exactly the same number of nodes with first and second-order elements. The matrices have the same size (because the number of nodes is the same) but the former is more sparse than the latter. Hence, it would be harder (in computational terms of CPU and RAM) to solve the second-order case.


::::: {#fig:test} ::::: {#fig:test}
![42k first-order elements](test1.png){#fig:test1 width=48%}
![42k first-order elements](test1.png){#fig:test1 width=48%}\
![15k second-order elements](test2.png){#fig:test2 width=48%} ![15k second-order elements](test2.png){#fig:test2 width=48%}


Structure of the stiffness matrices for the same FEM problem with 10k nodes. Blue (red) are positive (negative) elements. Structure of the stiffness matrices for the same FEM problem with 10k nodes. Blue (red) are positive (negative) elements.
The main issue with fatigue in nuclear piping during operational transients is that at the welds between two materials with different thermal expansion coefficients there can appear potentially-high stresses during temperature changes. If these transients are repeated cyclically, fatigue may occur. We already have risen a warning flag about stresses at material interfaces. Besides all the open questions about computing stresses at nodes, this case also adds the fact that the material properties (say the Young Modulus\ $E$) is different in the elements that are at each side of the interface. The main issue with fatigue in nuclear piping during operational transients is that at the welds between two materials with different thermal expansion coefficients there can appear potentially-high stresses during temperature changes. If these transients are repeated cyclically, fatigue may occur. We already have risen a warning flag about stresses at material interfaces. Besides all the open questions about computing stresses at nodes, this case also adds the fact that the material properties (say the Young Modulus\ $E$) is different in the elements that are at each side of the interface.


::::: {#fig:two-cubes} ::::: {#fig:two-cubes}
![Surface grid showing the fixed face (magenta), the load face (green) and the shared face in the middle.](two-cubes2.png){#fig:two-cubes2 width=48%}
![Surface grid showing the fixed face (magenta), the load face (green) and the shared face in the middle.](two-cubes2.png){#fig:two-cubes2 width=48%}\
![Warped displacements and Von Mises stresses.](two-cubes4.png){#fig:two-cubes4 width=48%} ![Warped displacements and Von Mises stresses.](two-cubes4.png){#fig:two-cubes4 width=48%}


Two cubes of different materials (the one in the left soft, the one in the right hard) share a face and a pressure is applied at the right-most face. Two cubes of different materials (the one in the left soft, the one in the right hard) share a face and a pressure is applied at the right-most face.
e. ... e. ...




You can still add a lot of questions that you should be having right now. After you do, add another one:

* Do you believe the manual?

If you cannot get a clear answer for at least one of them, then start to be worried. Maybe it is time to change your favourite FEM program?

What we as fully cognizant engineers that have to sign a report stating that a nuclear power plant will not collapse due to fatigue in its pipes is to fully understand what is going on with our stresses. [Richard Stallman](https://en.wikipedia.org/wiki/Richard_Stallman) says that the best way to solve a problem is to avoid it in the first place. In this case, we should avoid having to trust to a written manual and rely on software whose [source code](https://en.wikipedia.org/wiki/Source_code) is available. What we need is the capacity (RMS calls it _freedom_) to be able to see the detailed steps performed by the program so we can answer any question we (or other people) might have.
You can still add a lot of questions that you should be having right now. If you cannot get a clear answer for at least one of them, then start to be worried. After you do, add the following question:


Without resorting into philosophical digressions about the difference between [free and open-source software](https://en.wikipedia.org/wiki/Free_and_open-source_software) (not because it is not worth it but because it would take a whole book), the programs that make their source code available for their users are called [open-source software](https://en.wikipedia.org/wiki/Open-source_software). If the users can also modify and re-distribute the modified versions are called
> Do you believe your favourite FEM program’s manual?


So you do not how to program and th
What we as responsible engineers who have to sign a report stating that a nuclear power plant will not collapse due to fatigue in its pipes is to fully understand what is going on with our stresses. [Richard Stallman](https://en.wikipedia.org/wiki/Richard_Stallman) says that the best way to solve a problem is to avoid it in the first place. In this case, we should avoid having to trust to a written manual and rely on software whose [source code](https://en.wikipedia.org/wiki/Source_code) is available. What we need is the capacity (RMS calls it _freedom_) to be able to see the detailed steps performed by the program so we can answer any question we (or other people) might have.


open source! not about price, free $\neq$ gratis, it is about freedom in spanish this would be easier
Without resorting into philosophical digressions about the difference between [free and open-source software](https://en.wikipedia.org/wiki/Free_and_open-source_software) (not because it is not worth it but because it would take a whole book), the programs that make their source code available for their users are called [open-source software](https://en.wikipedia.org/wiki/Open-source_software). If the users can also modify and re-distribute the modified versions are called [free software](https://www.fsf.org/about/what-is-free-software). Note that the important concept here is freedom, not price. In Spanish (my native language) it would have been easier because there are two separate words for free as in freedom (“libre”) and for free as in price (“gratis”).


que hacen los programas? NADIE SABE
In effect, a couple of years ago Angus Ramsay noted [a weird behaviour](https://www.ramsay-maunder.co.uk/knowledge-base/technical-notes/asmeansys-potential-issue-with-thermal-expansion-calculations/) in one commercial [non-free](https://en.wikipedia.org/wiki/Proprietary_software) FEA software regarding the handling of expansion coefficients from ASME data. To understand what was going on, we had to guess what the program was doing to [reproduce the allegedly weird results](https://www.seamplex.com/docs/SP-WA-17-TN-F38B-A.pdf). Finally, it was a [matter of input data](https://www.ramsay-maunder.co.uk/knowledge-base/technical-notes/accuracy-of-thermal-expansion-properties-in-asme-bpv-code/) rather than a programming flaw. Nevertheless, we were lucky our guesses lead us to a reasonable answer. If we had access to the program’s source code, we could have thoroughly analysed the issue in a more efficient way. Sure, we might not have the same programming skills the original authors of the software have, but if it had been [free software](https://en.wikipedia.org/wiki/Free_software) we would have had the _freedom_ to hire a programmer to help us out. That is what _free_ means. In [Eric Raymond](https://en.wikipedia.org/wiki/Eric_S._Raymond)’s words, “given enough eyeballs, all bugs are shallow.” This is rather important in engineering software where [verification and validation](https://en.wikipedia.org/wiki/Software_verification_and_validation) is a must, especially in regulated fields like the nuclear industry. First, think how can a piece of software be verified if the source code is not available for independent analysis. And then, ask yourself another question:


con angus tuvimos que adivinar, por suerte le pegamos pero sino estábamos atados de pies y manos. si hubiese sido open-source podíamos investigar o al menos tener la posibilidad de contratar a alguien
> Do you trust your favourite FEM program?


todo esto es para una interfaz abrupta, en realidad hay HAZ, cambio de estructura, etc
SCLs a una distancia (engineering)
Back to the two-material interface, all the discussion above about non-continuous derivatives applies to a sharp abrupt interface. In the study case the junctions are welded so there is a heat-affected zone with changes in the material microstructure. Therefore, there exist a smooth transition from the mechanical properties of one material to the other one in a way that is very hard to predict and to model. In principle, the assumption of a sharp interface is conservative (in the sense of\ [@sec:kinds]). There cannot be an SCL exactly on a material interface so there should be at least two SCLs, one at each side of the junction as\ [@fig:weldolet-scls;@fig:valve-scls1] illustrate. The actual distance would have to be determined first as an educated guess, then with trial and error and finally in accordance with the regulator.


## A parametric tee ## A parametric tee



Načítá se…
Zrušit
Uložit