diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index dfea21bda..929ea0562 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-07-24T05:50:50","documenter_version":"1.5.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.10.4","generation_timestamp":"2024-07-24T07:41:55","documenter_version":"1.5.0"}} \ No newline at end of file diff --git a/dev/Articles/How-corporate-IT-is-killing-innovation/index.html b/dev/Articles/How-corporate-IT-is-killing-innovation/index.html index 64b45bf61..7d7928fda 100644 --- a/dev/Articles/How-corporate-IT-is-killing-innovation/index.html +++ b/dev/Articles/How-corporate-IT-is-killing-innovation/index.html @@ -1,2 +1,2 @@ -How corporate IT is killing innovation · WallyToolbox.jl

How corporate IT is killing innovation

For the past decade I have constantly worked with innovation. That's all I know to do with my life. A day without creating is mostly not worth it. Whether it was in academic or corporate settings, I generally got along with teammates and most stakeholders. But no matter where I go I am followed by a constant ghost , the enemy, the corporate IT. I known I don't fit in, I don't belong in the system, I don't fall into the listen-pray-obey-loop-herd, but that is not the reason why I should be guilty of how bad my interactions with corporate IT (not specifically with IT people, I have met very nice people there) have been for more than one decade.

So far, my words might seem harsh and full of anger to the uneager reader. As I scientist I am prompt to expect hateful reactions from the conservatives and religiously aligned corporate people. But as a scientist I shall recur to the reason and argumentation to expose, solely based on observations, my conclusions on the matter. Time to end the vague wording, let's get to the anecdotes.

Installing a compiler, but you no admin

Early in my PhD days I was told I should model some chemically reacting flows to better understand some processes I was studying. As usual, you start that by a literature review cause you are told so or because you are not dumb enough to think you can reinvent the wheel.

After some reading I realized there was nothing to add to that field under my research scope and it was time to use the numbers that were already available in the literature. Yay, time to code! Well, not so fun... In fact, that nothing-moment is when PhD students realize how humble they have to be in face of existing knowledge. It is also often the point where the cracks appear in the system, the small spots where they can make a small contribution.

My lab was a standard Windows-only environment, although later on I discovered that there were more exceptions than rules in the system. I was actually in the wrong side of the building, most students in the other wing had everything I dreamt of. Since the libraries I was aiming to use at the time were not portable from Nix, I had to start my crusade to show IT I was not the standard user and that I was worth Baloo048 (Baloo048 was the name of my workstation once I got authorized a CentOS 5 system)!

Security above obscurity (and overall)

Here I am not making a reference to security through obscurity and I will actually cite several unrelated events that I have seen so far.

IT has always been considered guilty of major failures in security systems. Nonetheless, trespassers often get inside by errors committed by standard network users. Keep that repeating for more than 40 years and you've got what we have today: an overprotective IT mother. – You don't know how to use a computer! You are an irresponsible m-word! – And the list goes on... so a monster was born. All because of repeated wrong root-cause analysis.

With the rise of social networks, machine learning, and everything that dominated the web since 2010, IT gained power in major corporations and in some situations their choices come above technical or commercial ones. Naturally, the overly repressed IT people raised their concerns about every living and digital thing and started locking all paths to standard users.

What companies forgot is how that building walls also block your views to the outside world. Innovation has always been a matter of who copies the best part of what others are doing. Mankind never created a single thing, we copied from nature, and then, putting bricks together, we copied from one another with varying levels of complexity. That to say, every single patent is somehow dishonest. But we keep protecting them, they are the status quo basis of competition. That's the case probably because we are less intelligent than we think we are.

The moment IT obfuscates the view of technical people, the copy-edit-paste cycle is broken: innovation is, at least, strongly hurt. And there is no lack of examples of how this actually happens.

I will stick to what concerns my technical field of expertise.

  • In numerical simulation it is fundamental to sandbox everything, especially systems. Creativity comes with destruction, it's always oblivion. Numerical people like hard access to perform their best (and sometimes even to perform at all). Working with containers or, even worse, the cloud, are nightmarish. In our world a sandbox is nothing more than a good old workstation without company network access. We make magic there. Every single time an engineer has to beat themselves to have the right to work their best, they get damaged. Some withstand for years, some simply get aligned, what is even worse than quiet quitting. Give us sandboxes to play!
  • In an average corporation (not talking about sizes here!), there are just a few people working on cutting edge technologies. Sometimes they go beyond the academic state-of-the-art (what is often the situation in semi-conductor industry, for instance). Because they are a minority, they get statistically forgotten by IT as standard users. Needless to say, these are also the people who know what they are doing with a computer. Based on what I said before, you get that we enter an infinite recursion here: you user no know how to use computer, but me user statistical minority, and so on...

The open-source battles till the end of the world

We have found this great startup selling dreams

Non-technical project managers everywhere

Too-much governance and too little governance leading to no governance at all.

+How corporate IT is killing innovation · WallyToolbox.jl

How corporate IT is killing innovation

For the past decade I have constantly worked with innovation. That's all I know to do with my life. A day without creating is mostly not worth it. Whether it was in academic or corporate settings, I generally got along with teammates and most stakeholders. But no matter where I go I am followed by a constant ghost , the enemy, the corporate IT. I known I don't fit in, I don't belong in the system, I don't fall into the listen-pray-obey-loop-herd, but that is not the reason why I should be guilty of how bad my interactions with corporate IT (not specifically with IT people, I have met very nice people there) have been for more than one decade.

So far, my words might seem harsh and full of anger to the uneager reader. As I scientist I am prompt to expect hateful reactions from the conservatives and religiously aligned corporate people. But as a scientist I shall recur to the reason and argumentation to expose, solely based on observations, my conclusions on the matter. Time to end the vague wording, let's get to the anecdotes.

Installing a compiler, but you no admin

Early in my PhD days I was told I should model some chemically reacting flows to better understand some processes I was studying. As usual, you start that by a literature review cause you are told so or because you are not dumb enough to think you can reinvent the wheel.

After some reading I realized there was nothing to add to that field under my research scope and it was time to use the numbers that were already available in the literature. Yay, time to code! Well, not so fun... In fact, that nothing-moment is when PhD students realize how humble they have to be in face of existing knowledge. It is also often the point where the cracks appear in the system, the small spots where they can make a small contribution.

My lab was a standard Windows-only environment, although later on I discovered that there were more exceptions than rules in the system. I was actually in the wrong side of the building, most students in the other wing had everything I dreamt of. Since the libraries I was aiming to use at the time were not portable from Nix, I had to start my crusade to show IT I was not the standard user and that I was worth Baloo048 (Baloo048 was the name of my workstation once I got authorized a CentOS 5 system)!

Security above obscurity (and overall)

Here I am not making a reference to security through obscurity and I will actually cite several unrelated events that I have seen so far.

IT has always been considered guilty of major failures in security systems. Nonetheless, trespassers often get inside by errors committed by standard network users. Keep that repeating for more than 40 years and you've got what we have today: an overprotective IT mother. – You don't know how to use a computer! You are an irresponsible m-word! – And the list goes on... so a monster was born. All because of repeated wrong root-cause analysis.

With the rise of social networks, machine learning, and everything that dominated the web since 2010, IT gained power in major corporations and in some situations their choices come above technical or commercial ones. Naturally, the overly repressed IT people raised their concerns about every living and digital thing and started locking all paths to standard users.

What companies forgot is how that building walls also block your views to the outside world. Innovation has always been a matter of who copies the best part of what others are doing. Mankind never created a single thing, we copied from nature, and then, putting bricks together, we copied from one another with varying levels of complexity. That to say, every single patent is somehow dishonest. But we keep protecting them, they are the status quo basis of competition. That's the case probably because we are less intelligent than we think we are.

The moment IT obfuscates the view of technical people, the copy-edit-paste cycle is broken: innovation is, at least, strongly hurt. And there is no lack of examples of how this actually happens.

I will stick to what concerns my technical field of expertise.

  • In numerical simulation it is fundamental to sandbox everything, especially systems. Creativity comes with destruction, it's always oblivion. Numerical people like hard access to perform their best (and sometimes even to perform at all). Working with containers or, even worse, the cloud, are nightmarish. In our world a sandbox is nothing more than a good old workstation without company network access. We make magic there. Every single time an engineer has to beat themselves to have the right to work their best, they get damaged. Some withstand for years, some simply get aligned, what is even worse than quiet quitting. Give us sandboxes to play!
  • In an average corporation (not talking about sizes here!), there are just a few people working on cutting edge technologies. Sometimes they go beyond the academic state-of-the-art (what is often the situation in semi-conductor industry, for instance). Because they are a minority, they get statistically forgotten by IT as standard users. Needless to say, these are also the people who know what they are doing with a computer. Based on what I said before, you get that we enter an infinite recursion here: you user no know how to use computer, but me user statistical minority, and so on...

The open-source battles till the end of the world

We have found this great startup selling dreams

Non-technical project managers everywhere

Too-much governance and too little governance leading to no governance at all.

diff --git a/dev/Articles/Maybe-I-f-ed-my-career/index.html b/dev/Articles/Maybe-I-f-ed-my-career/index.html index 567a45978..7f919737f 100644 --- a/dev/Articles/Maybe-I-f-ed-my-career/index.html +++ b/dev/Articles/Maybe-I-f-ed-my-career/index.html @@ -1,2 +1,2 @@ -Maybe I f********** my career... · WallyToolbox.jl

Maybe I f********** my career...

…and it is not all on me, just part of it.

In this essay I will tentatively tell in some sort of autobiography how I messed up with my career and what may be the way out of this mess. I won't explore any details or feelings, but stick to facts, my observations at each of the episodes, and my takes about the happenings.


Early life

It has never been questioned in my circles that I was some sort of gifted child. But certainly, I was not what you first think about when hearing about someone gifted. I could read and write in some rudimentary ways before age 4 — and that led me to opening Pandora’s box. By age 6 I had read most of the encyclopedias we had at home, my main interests being history, art, and engineering; at that time, I was already able to discuss with adults on these topics and most kids were embarrassingly boring to me. It was reading and reading and reading that time was spent.

Numismatics came next and, in a few years, I was not just a kid collecting lost coins around the house, but the one with in depth knowledge of the characters being depicted, historical events, and an actual set of collectible coins; needless to say, that really developed my interest in metals. Ah, and before I forget, at the same time I was also really into rocks and geology, always digging around looking for gems, which at the time I was often able to identify, and when stuck I would recur to the local natural history museum geologist for help. I know I should have been running and playing around by that time, but it simply was not my thing, so I ended up not developing good motor skills by then.

For the next ten years or so I barely had to study for school because I had self-taught me everything that was in the curriculum, so I could spend my time learning new subjects that had come to my attention, especially university level ones. Because of that only on a few occasions I was the first of my class since I never reviewed, but most of the time the second or third at most. The profile of the ones on the top was really the dedicated ones, those who were seeing the topics for the first time and delving in the subjects for the exams. My view on then was of demise cause most of the time it was clear their actual grasp of what was behind things.

By age 11 my interest in sports grew; I had always been fond of adventure and then I started mountain biking. That was the first time I really socialized and by age 16 you couldn’t tell anymore that I had been that weird child — finally I was a normal person. Or not. Because of those highly cultural beginnings you could tell some features wouldn’t really let me fit in with my pairs. So finally, the last year before college I got back to my roots and studied everything once again, but 16h+ per day, no eating, no sleeping — sometimes cheap vodka — and managed to get accepted in first place at some major universities around my place, but that is the matter of the next paragraph.


At college

Tired. That’s how you describe my early days at college. Hormones blowing up and tiredness. So many years reading and reading got me tired. I essentially had learned what I thought was enough to already get my diploma and start working or something like that. First semester was not great intellectually speaking but after I few months I put my head in place and started working hard. Got a job in a lab. Some of the experimental work I was carrying used to be very boring and take many hours. For safety reasons you had to stay there to make sure everything was fine. But you know me, any free time and I will start reading. By the end of the first year, I had finished studying — exercises included — most of the books I needed to read for the next two years or so, and that didn’t prevent me of partying a lot.

Everything seems fine so far but that is not actually true. While I was the highest performing student of my class and got moderately social, this was the turning point where performance started to mess things up. I was following my undergraduate studies in Materials Engineering with focus in Mechanics — in Brazil you get Materials Engineering to be associated to Mechanical or Chemical Engineering, and your diploma is not actually in Materials Engineering in the end — but since most of Materials Science topics are about having a good memory and knowing how analyse and to put things together to get things done, I diverged into the neighboring engineering schools and sometimes in the Physics department.

I was often taking classes at other undergraduate courses and when not available, I would take lecture notes and study them anyway. I managed to become better at plain Mechanical Engineering than I was in pure Materials Engineering and sometimes taught subjects to friends following that course. Here we notice that I completely changed subjects since I was a child: from history and art, now I was into applied mathematics and thermal engines. Things always had a limit to me, but not because of difficulty; once I have a feeling of being able to go beyond in a subject by myself, I also start to get bored. The grasp of the generality of a subject fulfils my curiosity.

By the fifth and last year I was considering a PhD in Germany but finally I decided to stay a bit more around. In fact, I was no longer feeling like I wanted to stay in academia and got a particularly respectable job offer that I sticked with; more on that next.


First job

By age 22 I was an engineer; later than I expected but I didn’t tell you that my parents refused to let me skip a few years at school as some of my tutors proposed at some point. This could have been much earlier but then I would be jobless or following a PhD in the Humanities. That was not the case, before even getting my diploma I already had the job offer and the transition from intern to actual engineer happened overnight as I got my diplomas. In fact, nothing changed — except that they started paying me a decent salary quite above the average at that time.

So, I started working in a not that technical position. At first, I was writing technical specifications for materials and mechanical construction of metallic parts, but soon someone realized that my strongest feature was my negotiation skills and from that day I was often defending deviations from technical requirements with the customers and proposing technical alternatives. It was a very transversal job with interaction with all levels from the shop floor to the high management. It didn’t take long for me to start living in an airplane going to technical audits all around and to participate at the defining stages of scope of commercial supply in large projects. By this time, my hobby was learning a little bit of every language I was able to, and I did that with religious fervor.

So far you may think all this took me at least 5 years to accomplish, but in fact it lasted only 1 year and 10 months. The main reason I excelled at this position was that whole random background I carried with strong scientific culture, good history knowledge, and on general matters. It became natural to me to start a conversation with anyone and later develop links that allowed huge gains in negotiation. My career was on track, and it seemed very promising. But I told you already that once I reached a certain level of generality, I need a change.

At some point I found myself there and had the urge to reach out a previous internship advisor in France. When I first worked in his team, I didn’t do a fantastic job as I try to most of the time, but anyways he had good views of me and offered me a PhD. In a few months it was me again in a plane flying once again to France. What made me interested in the PhD offer he proposed me was the fact that I already knew most of the literature on the subject, so that would allow me to get back and finish some open ends from my undergraduate studies. I didn't expect to make I great thesis, just to follow the rules and get a PhD. What matters is what you learn on your free time, that's what life taught me so far.


Graduate years

There I would finally go deeper in fluid dynamics and reacting flows, two subjects that always were among my favorite ones. Also, in the part of the thesis related to materials, I would be able be learn more about diffusion and some microscopy techniques of my interest. So, hands to work, I could already code in C++ by that time and started with that to perform my numerical analyses. Soon I was coding in several programming languages and grasped the use of many scientific software, what a delight! The intellectual and social environment was interesting and whenever I got bored with my own matters, I went see some friends in the building and see how I could help them. It was the first time in my life that I felt in a place where you could develop interesting ideas and talk to people who would understand you. But academia can also be harsh, especially when you graduate — the competition among researchers in some cases reach an extremally toxic level, so once I finished, I didn’t even try to get a post-doc and ended up in industry again, but this time in a research center.

If there is one thing you learn during a PhD is the sense of generality; not that I needed that, so far you understand that this is my main characteristic — I was just looking for a piece of paper stating that I had accomplished that. It is not difficult for a PhD to identify another without even asking, you notice in the way people speak and the things they are interested at. In my whole life I just met three people who didn’t graduate that behaved that way and I find that amazing — and two of them are a couple, what is even more mind blowing. So, when I started my new job, I was looking to interact with people matching this level of general views. The problem is that industry hurts; some people get greedy over the years; some completely loose interest; but a few stick to their core. Nonetheless, I managed to identify these last group and for a few years I was productive.


Back in industry

Yes, once again I gained lots of new skills. With the scientific computing background, I built over the years it was easy for me to start in machine learning. Yes, I survived the boom of machine learning in 2018 and conducted many proof-of-concept projects in the field but managed to stay linked to my core engineering skills. I also contributed to vulgarizing the use of some open-source software people were not using yet. Ever since the start of my PhD I lost contact with supply chain and quality related people, but always tried to keep using to a lesser level what I learned there and applied that to my project management. On the technical side, most of my work was in some sort related to skills — but not subjects — I developed during my PhD. This time and only this time it was not my loss of interest in a subject that messed things, but the feeling that some people were working in closed silos and only for self-marketeering themselves. I don’t know how this could be a reality in a private company — you simply get rid of people not willing to play the game, unless you are in France, obviously. The overall environment was technically challenging, and you could have nice discussions and growth with some colleagues, but not everyone was willing to collaborate.

After trying a lot to overcome some barriers and break some silos, by a miracle I got a phone call with a job offer elsewhere — my current position. There were quite a few incoherencies in what they proposed me but that was because my field was something new to them, so I was quite sure those points could be fixed; I promptly accepted the offer without much thinking. I packed my stuff and in one month there I was, full of motivation. The team was nice and welcoming and the company much smaller, exactly what I thought I was looking for. The ground was lacking foundations, so I started developing some basic tools to build what in a few years I expected to be a project portfolio. Also, there was the possibility to in about two years have my own team of numerical guys, what was motivating.

In practice things weren’t that smooth. First, they didn’t research what was required to get some numerical work done; you need expensive computers. Then comes the fact that you get people specialized in fields of applied mathematics — there is no such 1990s Discovery Channel simulation generalist. If you read attentively so far, you noticed that in my previous job I finally managed to stick to a subject, or at least a small family of related subjects. Now I started to get people asking me if I could run some molecular dynamics in the same simulation of macroscale transport or predict the age of their grandmother: it was driving me nuts. For a while I really thought they would fire me without even knowing why. In a few months things settled down a bit and requests became more consistent with my skills. Some people understood that fluid dynamics applied to materials processing is still a research field and many things that may seem trivial to the layman are quite challenging. Others are still annoying about the limitations of what I can offer today.

Since I was the first numerical person in the company I had to fight battles against an incompetent IT with senseless rules; then I confirmed the company was really capital-driven only, and to my disappointment I was feeling mismanaged. During this time things went awry because I started suffering from impostor syndrome — sorry guys, I can’t make DFT calculations coupled to CFD — and entered a bottomless pit of trying to learn everything else again. To add to my disappointment and endless lies that have been told to me, instead of getting a team in the middle term, I will get a new colleague to work with me. All the work towards really understanding my field and its people were thrown to the rubbish by people who are not even close to be qualified to manage me: experience do not mean capacity, a mistake people from past generations often do. I started becoming grumpier and grumpier, face severe lack of concentration, it became impossible to sleep, and intellectual loneliness is really killing me. These people were not ready for me, not the inverse, which is clear now.


What's next?

So, what may be the way out of this mess? I have no clue! 

My only certainty right now is that I am quitting in the extremely short term; I no longer try to hide my urge of change.

The branching of my knowledge made me useless to the standard market and I am still too young to occupy the positions I have developed the skills for because it is not socially acceptable.

Current job descriptions require sharp skills, but during the past three years the intellectually poor environment I am at destroyed anything I had left to offer.

I am now incapacitated to get back to jobs like my first one where I outperformed because of my social skills were ravaged during the past months.

Academia would be a solution but since I didn’t publish enough while in nor chained PhD with a post-doc, it is highly improbable I would get in again.

I will become a farmer, or what else?

+Maybe I f********** my career... · WallyToolbox.jl

Maybe I f********** my career...

…and it is not all on me, just part of it.

In this essay I will tentatively tell in some sort of autobiography how I messed up with my career and what may be the way out of this mess. I won't explore any details or feelings, but stick to facts, my observations at each of the episodes, and my takes about the happenings.


Early life

It has never been questioned in my circles that I was some sort of gifted child. But certainly, I was not what you first think about when hearing about someone gifted. I could read and write in some rudimentary ways before age 4 — and that led me to opening Pandora’s box. By age 6 I had read most of the encyclopedias we had at home, my main interests being history, art, and engineering; at that time, I was already able to discuss with adults on these topics and most kids were embarrassingly boring to me. It was reading and reading and reading that time was spent.

Numismatics came next and, in a few years, I was not just a kid collecting lost coins around the house, but the one with in depth knowledge of the characters being depicted, historical events, and an actual set of collectible coins; needless to say, that really developed my interest in metals. Ah, and before I forget, at the same time I was also really into rocks and geology, always digging around looking for gems, which at the time I was often able to identify, and when stuck I would recur to the local natural history museum geologist for help. I know I should have been running and playing around by that time, but it simply was not my thing, so I ended up not developing good motor skills by then.

For the next ten years or so I barely had to study for school because I had self-taught me everything that was in the curriculum, so I could spend my time learning new subjects that had come to my attention, especially university level ones. Because of that only on a few occasions I was the first of my class since I never reviewed, but most of the time the second or third at most. The profile of the ones on the top was really the dedicated ones, those who were seeing the topics for the first time and delving in the subjects for the exams. My view on then was of demise cause most of the time it was clear their actual grasp of what was behind things.

By age 11 my interest in sports grew; I had always been fond of adventure and then I started mountain biking. That was the first time I really socialized and by age 16 you couldn’t tell anymore that I had been that weird child — finally I was a normal person. Or not. Because of those highly cultural beginnings you could tell some features wouldn’t really let me fit in with my pairs. So finally, the last year before college I got back to my roots and studied everything once again, but 16h+ per day, no eating, no sleeping — sometimes cheap vodka — and managed to get accepted in first place at some major universities around my place, but that is the matter of the next paragraph.


At college

Tired. That’s how you describe my early days at college. Hormones blowing up and tiredness. So many years reading and reading got me tired. I essentially had learned what I thought was enough to already get my diploma and start working or something like that. First semester was not great intellectually speaking but after I few months I put my head in place and started working hard. Got a job in a lab. Some of the experimental work I was carrying used to be very boring and take many hours. For safety reasons you had to stay there to make sure everything was fine. But you know me, any free time and I will start reading. By the end of the first year, I had finished studying — exercises included — most of the books I needed to read for the next two years or so, and that didn’t prevent me of partying a lot.

Everything seems fine so far but that is not actually true. While I was the highest performing student of my class and got moderately social, this was the turning point where performance started to mess things up. I was following my undergraduate studies in Materials Engineering with focus in Mechanics — in Brazil you get Materials Engineering to be associated to Mechanical or Chemical Engineering, and your diploma is not actually in Materials Engineering in the end — but since most of Materials Science topics are about having a good memory and knowing how analyse and to put things together to get things done, I diverged into the neighboring engineering schools and sometimes in the Physics department.

I was often taking classes at other undergraduate courses and when not available, I would take lecture notes and study them anyway. I managed to become better at plain Mechanical Engineering than I was in pure Materials Engineering and sometimes taught subjects to friends following that course. Here we notice that I completely changed subjects since I was a child: from history and art, now I was into applied mathematics and thermal engines. Things always had a limit to me, but not because of difficulty; once I have a feeling of being able to go beyond in a subject by myself, I also start to get bored. The grasp of the generality of a subject fulfils my curiosity.

By the fifth and last year I was considering a PhD in Germany but finally I decided to stay a bit more around. In fact, I was no longer feeling like I wanted to stay in academia and got a particularly respectable job offer that I sticked with; more on that next.


First job

By age 22 I was an engineer; later than I expected but I didn’t tell you that my parents refused to let me skip a few years at school as some of my tutors proposed at some point. This could have been much earlier but then I would be jobless or following a PhD in the Humanities. That was not the case, before even getting my diploma I already had the job offer and the transition from intern to actual engineer happened overnight as I got my diplomas. In fact, nothing changed — except that they started paying me a decent salary quite above the average at that time.

So, I started working in a not that technical position. At first, I was writing technical specifications for materials and mechanical construction of metallic parts, but soon someone realized that my strongest feature was my negotiation skills and from that day I was often defending deviations from technical requirements with the customers and proposing technical alternatives. It was a very transversal job with interaction with all levels from the shop floor to the high management. It didn’t take long for me to start living in an airplane going to technical audits all around and to participate at the defining stages of scope of commercial supply in large projects. By this time, my hobby was learning a little bit of every language I was able to, and I did that with religious fervor.

So far you may think all this took me at least 5 years to accomplish, but in fact it lasted only 1 year and 10 months. The main reason I excelled at this position was that whole random background I carried with strong scientific culture, good history knowledge, and on general matters. It became natural to me to start a conversation with anyone and later develop links that allowed huge gains in negotiation. My career was on track, and it seemed very promising. But I told you already that once I reached a certain level of generality, I need a change.

At some point I found myself there and had the urge to reach out a previous internship advisor in France. When I first worked in his team, I didn’t do a fantastic job as I try to most of the time, but anyways he had good views of me and offered me a PhD. In a few months it was me again in a plane flying once again to France. What made me interested in the PhD offer he proposed me was the fact that I already knew most of the literature on the subject, so that would allow me to get back and finish some open ends from my undergraduate studies. I didn't expect to make I great thesis, just to follow the rules and get a PhD. What matters is what you learn on your free time, that's what life taught me so far.


Graduate years

There I would finally go deeper in fluid dynamics and reacting flows, two subjects that always were among my favorite ones. Also, in the part of the thesis related to materials, I would be able be learn more about diffusion and some microscopy techniques of my interest. So, hands to work, I could already code in C++ by that time and started with that to perform my numerical analyses. Soon I was coding in several programming languages and grasped the use of many scientific software, what a delight! The intellectual and social environment was interesting and whenever I got bored with my own matters, I went see some friends in the building and see how I could help them. It was the first time in my life that I felt in a place where you could develop interesting ideas and talk to people who would understand you. But academia can also be harsh, especially when you graduate — the competition among researchers in some cases reach an extremally toxic level, so once I finished, I didn’t even try to get a post-doc and ended up in industry again, but this time in a research center.

If there is one thing you learn during a PhD is the sense of generality; not that I needed that, so far you understand that this is my main characteristic — I was just looking for a piece of paper stating that I had accomplished that. It is not difficult for a PhD to identify another without even asking, you notice in the way people speak and the things they are interested at. In my whole life I just met three people who didn’t graduate that behaved that way and I find that amazing — and two of them are a couple, what is even more mind blowing. So, when I started my new job, I was looking to interact with people matching this level of general views. The problem is that industry hurts; some people get greedy over the years; some completely loose interest; but a few stick to their core. Nonetheless, I managed to identify these last group and for a few years I was productive.


Back in industry

Yes, once again I gained lots of new skills. With the scientific computing background, I built over the years it was easy for me to start in machine learning. Yes, I survived the boom of machine learning in 2018 and conducted many proof-of-concept projects in the field but managed to stay linked to my core engineering skills. I also contributed to vulgarizing the use of some open-source software people were not using yet. Ever since the start of my PhD I lost contact with supply chain and quality related people, but always tried to keep using to a lesser level what I learned there and applied that to my project management. On the technical side, most of my work was in some sort related to skills — but not subjects — I developed during my PhD. This time and only this time it was not my loss of interest in a subject that messed things, but the feeling that some people were working in closed silos and only for self-marketeering themselves. I don’t know how this could be a reality in a private company — you simply get rid of people not willing to play the game, unless you are in France, obviously. The overall environment was technically challenging, and you could have nice discussions and growth with some colleagues, but not everyone was willing to collaborate.

After trying a lot to overcome some barriers and break some silos, by a miracle I got a phone call with a job offer elsewhere — my current position. There were quite a few incoherencies in what they proposed me but that was because my field was something new to them, so I was quite sure those points could be fixed; I promptly accepted the offer without much thinking. I packed my stuff and in one month there I was, full of motivation. The team was nice and welcoming and the company much smaller, exactly what I thought I was looking for. The ground was lacking foundations, so I started developing some basic tools to build what in a few years I expected to be a project portfolio. Also, there was the possibility to in about two years have my own team of numerical guys, what was motivating.

In practice things weren’t that smooth. First, they didn’t research what was required to get some numerical work done; you need expensive computers. Then comes the fact that you get people specialized in fields of applied mathematics — there is no such 1990s Discovery Channel simulation generalist. If you read attentively so far, you noticed that in my previous job I finally managed to stick to a subject, or at least a small family of related subjects. Now I started to get people asking me if I could run some molecular dynamics in the same simulation of macroscale transport or predict the age of their grandmother: it was driving me nuts. For a while I really thought they would fire me without even knowing why. In a few months things settled down a bit and requests became more consistent with my skills. Some people understood that fluid dynamics applied to materials processing is still a research field and many things that may seem trivial to the layman are quite challenging. Others are still annoying about the limitations of what I can offer today.

Since I was the first numerical person in the company I had to fight battles against an incompetent IT with senseless rules; then I confirmed the company was really capital-driven only, and to my disappointment I was feeling mismanaged. During this time things went awry because I started suffering from impostor syndrome — sorry guys, I can’t make DFT calculations coupled to CFD — and entered a bottomless pit of trying to learn everything else again. To add to my disappointment and endless lies that have been told to me, instead of getting a team in the middle term, I will get a new colleague to work with me. All the work towards really understanding my field and its people were thrown to the rubbish by people who are not even close to be qualified to manage me: experience do not mean capacity, a mistake people from past generations often do. I started becoming grumpier and grumpier, face severe lack of concentration, it became impossible to sleep, and intellectual loneliness is really killing me. These people were not ready for me, not the inverse, which is clear now.


What's next?

So, what may be the way out of this mess? I have no clue! 

My only certainty right now is that I am quitting in the extremely short term; I no longer try to hide my urge of change.

The branching of my knowledge made me useless to the standard market and I am still too young to occupy the positions I have developed the skills for because it is not socially acceptable.

Current job descriptions require sharp skills, but during the past three years the intellectually poor environment I am at destroyed anything I had left to offer.

I am now incapacitated to get back to jobs like my first one where I outperformed because of my social skills were ravaged during the past months.

Academia would be a solution but since I didn’t publish enough while in nor chained PhD with a post-doc, it is highly improbable I would get in again.

I will become a farmer, or what else?

diff --git a/dev/Computing/01-Scientific-Computing/index.html b/dev/Computing/01-Scientific-Computing/index.html index 38506f52a..c139b05dd 100644 --- a/dev/Computing/01-Scientific-Computing/index.html +++ b/dev/Computing/01-Scientific-Computing/index.html @@ -1,2 +1,2 @@ -Scientific Computing · WallyToolbox.jl

Scientific Computing

Notes related to my learning and teaching interests in several fields related to scientific computing (mostly applied mathematics and machine learning) and related applications. This home page is the entry point and those interested in more content and interesting links can use the sidebar with an index to the materials.

It can also be used as a general guide for introducing scientific computing as it tries to introduce the minimal skill set any scientific computing engineer or scientist should have:

  • Version control comes first, everything else is worthless without it, currently that means Git.
  • Next comes software documentation with Doxygen, Sphinx, and/or Documenter.jl.
  • A low(er) level programming language among C, C++, and Fortran, preferably all of them.
  • Scripting languages, as of 2024, Python is mandatory, Julia highly recommended.
  • Basic machine learning in one of the above scripts, everything is ML these days.
  • Shell automation, basis of both Bash/other UNIX shell and PowerShell are required.
  • Typesetting equations reports and presentations (beamer) in $\LaTeX$.
  • Domain specific skills related to the field of study (CFD, DFT, MD, ML, ...).

Some technologies have been mainstream or important in the past, but nowadays some of them have already died or are becoming too niche to be put in such a list. That is the case of SVN for version control. As for programming languages in science, that is the case of matlabish (MATLAB, Octave, Scilab) environments, which are still used by controls and automation people, but are mostly incompatible with good software practices and should be discouraged.

It is also worth getting familiar with high-performance computing (HPC); in the Top 500 page you can get to know the most powerful computers on Earth. The specification benchmarking page allows for the check of hardware specification, what is interesting when preparing investment in a computing structure. Lastly, when working in multi-user systems it is worth knowing about job management systems such as Slurm.

As a last word, I would like to remember that it is humanly impossible to master everything at once; even after more than 10 years in the field as of today I only have a grasp in the tools I do not use everyday. Software and methods evolve, and unless you keep using a specific tool you simply cannot afford to keep up to date with it. That should not be a roadblock for a scientist in the long term. As you get used to scientific software, getting back to a good level of some tool you used in the past is quick (but not extremely fast in some cases) and learning new tools for which you already know the science behind is trivial. Even exploring new fields become easy in some cases.

+Scientific Computing · WallyToolbox.jl

Scientific Computing

Notes related to my learning and teaching interests in several fields related to scientific computing (mostly applied mathematics and machine learning) and related applications. This home page is the entry point and those interested in more content and interesting links can use the sidebar with an index to the materials.

It can also be used as a general guide for introducing scientific computing as it tries to introduce the minimal skill set any scientific computing engineer or scientist should have:

  • Version control comes first, everything else is worthless without it, currently that means Git.
  • Next comes software documentation with Doxygen, Sphinx, and/or Documenter.jl.
  • A low(er) level programming language among C, C++, and Fortran, preferably all of them.
  • Scripting languages, as of 2024, Python is mandatory, Julia highly recommended.
  • Basic machine learning in one of the above scripts, everything is ML these days.
  • Shell automation, basis of both Bash/other UNIX shell and PowerShell are required.
  • Typesetting equations reports and presentations (beamer) in $\LaTeX$.
  • Domain specific skills related to the field of study (CFD, DFT, MD, ML, ...).

Some technologies have been mainstream or important in the past, but nowadays some of them have already died or are becoming too niche to be put in such a list. That is the case of SVN for version control. As for programming languages in science, that is the case of matlabish (MATLAB, Octave, Scilab) environments, which are still used by controls and automation people, but are mostly incompatible with good software practices and should be discouraged.

It is also worth getting familiar with high-performance computing (HPC); in the Top 500 page you can get to know the most powerful computers on Earth. The specification benchmarking page allows for the check of hardware specification, what is interesting when preparing investment in a computing structure. Lastly, when working in multi-user systems it is worth knowing about job management systems such as Slurm.

As a last word, I would like to remember that it is humanly impossible to master everything at once; even after more than 10 years in the field as of today I only have a grasp in the tools I do not use everyday. Software and methods evolve, and unless you keep using a specific tool you simply cannot afford to keep up to date with it. That should not be a roadblock for a scientist in the long term. As you get used to scientific software, getting back to a good level of some tool you used in the past is quick (but not extremely fast in some cases) and learning new tools for which you already know the science behind is trivial. Even exploring new fields become easy in some cases.

diff --git a/dev/Computing/02-General-Computing-Skills/index.html b/dev/Computing/02-General-Computing-Skills/index.html index 0b3b8a5ef..844a3dfc2 100644 --- a/dev/Computing/02-General-Computing-Skills/index.html +++ b/dev/Computing/02-General-Computing-Skills/index.html @@ -3,4 +3,4 @@ sudo mkdir /mnt/z # Mount the network drive in WSL: -sudo mount -t drvfs Z: /mnt/z

Regular expressions

Regular expressions (or simply regex) processing is a must-have skill for anyone doing scientific computing. Most programs produce results or logs in plain text and do not support specific data extraction from those. There regex becomes your best friend. Unfortunately during the years many flavors of regex appeared, each claiming to offer advantages or to be more formal than its predecessors. Due to this, learning regex is often language-specific (most of the time you create and process regex from your favorite language) and sometimes even package-specific. Needless to say, regex may be more difficult to master than assembly programming.


$\LaTeX$

Math typesetting with $\LaTeX$

Code typesetting with $\LaTeX$

MiKTeX

LaTeX Workshop

+sudo mount -t drvfs Z: /mnt/z

Regular expressions

Regular expressions (or simply regex) processing is a must-have skill for anyone doing scientific computing. Most programs produce results or logs in plain text and do not support specific data extraction from those. There regex becomes your best friend. Unfortunately during the years many flavors of regex appeared, each claiming to offer advantages or to be more formal than its predecessors. Due to this, learning regex is often language-specific (most of the time you create and process regex from your favorite language) and sometimes even package-specific. Needless to say, regex may be more difficult to master than assembly programming.


$\LaTeX$

Math typesetting with $\LaTeX$

Code typesetting with $\LaTeX$

MiKTeX

LaTeX Workshop

diff --git a/dev/Computing/03-Programming-Languages/index.html b/dev/Computing/03-Programming-Languages/index.html index 1102ab94f..95a67415a 100644 --- a/dev/Computing/03-Programming-Languages/index.html +++ b/dev/Computing/03-Programming-Languages/index.html @@ -1,2 +1,2 @@ -Programming · WallyToolbox.jl

Programming

Those new to programming can find a quite interesting environment at Exercism.

C++

Cuda

Fortran

Haskell

Lisp

Octave

OpenCL

Pascal

Python

General stuff:

Some (yet crude) visual programming in Python:

All you need is a package:

  • casadi: Optimal control and MPC.
  • mip: Mixed-integer linear programming.

Rust

Rust community often organizes books on the main topics regarding the language:

Some resources for learning Rust (start with rustlings):

Useful links for working with cargo:

Useful links for doing numerical stuff in Rust:

Scilab

Other materials

+Programming · WallyToolbox.jl

Programming

Those new to programming can find a quite interesting environment at Exercism.

C++

Cuda

Fortran

Haskell

Lisp

Octave

OpenCL

Pascal

Python

General stuff:

Some (yet crude) visual programming in Python:

All you need is a package:

  • casadi: Optimal control and MPC.
  • mip: Mixed-integer linear programming.

Rust

Rust community often organizes books on the main topics regarding the language:

Some resources for learning Rust (start with rustlings):

Useful links for working with cargo:

Useful links for doing numerical stuff in Rust:

Scilab

Other materials

diff --git a/dev/Computing/04-Geometry-and-Preprocessing/index.html b/dev/Computing/04-Geometry-and-Preprocessing/index.html index a53ddeacf..46f746181 100644 --- a/dev/Computing/04-Geometry-and-Preprocessing/index.html +++ b/dev/Computing/04-Geometry-and-Preprocessing/index.html @@ -1,2 +1,2 @@ -Geometry and Preprocessing · WallyToolbox.jl
+Geometry and Preprocessing · WallyToolbox.jl
diff --git a/dev/Computing/05-Postprocessing/index.html b/dev/Computing/05-Postprocessing/index.html index 5e183038b..bf6be7906 100644 --- a/dev/Computing/05-Postprocessing/index.html +++ b/dev/Computing/05-Postprocessing/index.html @@ -1,2 +1,2 @@ -Postprocessing · WallyToolbox.jl
+Postprocessing · WallyToolbox.jl
diff --git a/dev/Computing/06-Domain-Specific-Software/index.html b/dev/Computing/06-Domain-Specific-Software/index.html index e64d62516..8bfce57ac 100644 --- a/dev/Computing/06-Domain-Specific-Software/index.html +++ b/dev/Computing/06-Domain-Specific-Software/index.html @@ -1,2 +1,2 @@ -Domain specific software · WallyToolbox.jl

Domain specific software

Transport phenomena

The list below provides useful links for learning transport phenomena simulation:

And below you find some supporting tools for setting up a CFD simulation:

The following is a list of water property calculators for use in detailed simulations:

It is also interesting to have access to some combustion-related materials:

SU2

OpenFOAM

OpenFOAM distributions

General purpose, tutorials, and documentation:

External solvers:

Conjugate heat transfer:

Volume of fluid (VoF):

Moving reference frame (MRF):

Reduced order modeling (ROM)

Lattice-Boltzmann method

The following links provide simple implementations to learn DEM development:

Smooth Particle Hydrodynamics


Systems modeling

DWSIM

Generical chemical process simulation software.

Dyssol

Dyssol is process unit operations simulator conceived from granular processes.

Modelica

Modelica is an acausal programming language for systems modeling:


Combustion and kinetics

Cantera

Cantera is the standard package for modeling reacting systems. As it was my main toolkit in the final parts of my PhD and still is a major part of my professional life, I am quite knowledgeable on this software. It can be considered the final replacement of classical Chemkin. I am currently working in a Julia interface to its core library.

Fire Models

OpenSmoke++

  • OpenSmoke++ is a framework for detailed kinetics modeling of large reacting systems. This paper might be of interest: Dalili (2020) - modeling of a single droplet evaporation and combustion.

Mathematical software


Computational thermodynamics


Entering

This section contains other software to check; I don't necessarily know them and as I might them useful or consider the projects abandoned they might be dropped from the list until they find their right place in this file.

+Domain specific software · WallyToolbox.jl

Domain specific software

Transport phenomena

The list below provides useful links for learning transport phenomena simulation:

And below you find some supporting tools for setting up a CFD simulation:

The following is a list of water property calculators for use in detailed simulations:

It is also interesting to have access to some combustion-related materials:

SU2

OpenFOAM

OpenFOAM distributions

General purpose, tutorials, and documentation:

External solvers:

Conjugate heat transfer:

Volume of fluid (VoF):

Moving reference frame (MRF):

Reduced order modeling (ROM)

Lattice-Boltzmann method

The following links provide simple implementations to learn DEM development:

Smooth Particle Hydrodynamics


Systems modeling

DWSIM

Generical chemical process simulation software.

Dyssol

Dyssol is process unit operations simulator conceived from granular processes.

Modelica

Modelica is an acausal programming language for systems modeling:


Combustion and kinetics

Cantera

Cantera is the standard package for modeling reacting systems. As it was my main toolkit in the final parts of my PhD and still is a major part of my professional life, I am quite knowledgeable on this software. It can be considered the final replacement of classical Chemkin. I am currently working in a Julia interface to its core library.

Fire Models

OpenSmoke++

  • OpenSmoke++ is a framework for detailed kinetics modeling of large reacting systems. This paper might be of interest: Dalili (2020) - modeling of a single droplet evaporation and combustion.

Mathematical software


Computational thermodynamics


Entering

This section contains other software to check; I don't necessarily know them and as I might them useful or consider the projects abandoned they might be dropped from the list until they find their right place in this file.

diff --git a/dev/Computing/Ansys-Fluent-UDF/index.html b/dev/Computing/Ansys-Fluent-UDF/index.html index 5d4ddee5b..0d4d0c0bd 100644 --- a/dev/Computing/Ansys-Fluent-UDF/index.html +++ b/dev/Computing/Ansys-Fluent-UDF/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

General purpose

MacroNotes
Data_Valid_PTest if parameters required by UDF have been initialized. It is a good practice to use this macro on top of UDF's to avoid crashes.
MessageDisplays a message, to be used from host.
ErrorDisplay and throw an error message. Compiled only.

Macro parallelization

MacroNotes
PRINCIPAL_FACE_PWhen looping across faces in a thread using begin_f_loop (or another equivalent macro) in a parallel setting, we might access elements that actually belong to other nodes (because of how MPI works). This macro allows us to check the current face is part of the chunk belonging to current node, what allows us to avoid computing a quantity multiple times, leading to wrong results. Compiled only.
RP_HOSTUsed in #if directives to tell code must be evaluated only in host.
RP_NODEUsed in #if directives to tell code must be evaluated only in nodes.
PRF_GRSUM1Performs aggregation of real R values through sum SUM1. This function is called in nodes and there are other cousins for different aggregations.
node_to_host_{type}_{n}Pass n values of type from node to host. It is called after, e.g. aggregations such as PRF_GRSUM1 are used in node. There is also an equivalent host_to_node_{type}_{n}.
+- · WallyToolbox.jl

General purpose

MacroNotes
Data_Valid_PTest if parameters required by UDF have been initialized. It is a good practice to use this macro on top of UDF's to avoid crashes.
MessageDisplays a message, to be used from host.
ErrorDisplay and throw an error message. Compiled only.

Macro parallelization

MacroNotes
PRINCIPAL_FACE_PWhen looping across faces in a thread using begin_f_loop (or another equivalent macro) in a parallel setting, we might access elements that actually belong to other nodes (because of how MPI works). This macro allows us to check the current face is part of the chunk belonging to current node, what allows us to avoid computing a quantity multiple times, leading to wrong results. Compiled only.
RP_HOSTUsed in #if directives to tell code must be evaluated only in host.
RP_NODEUsed in #if directives to tell code must be evaluated only in nodes.
PRF_GRSUM1Performs aggregation of real R values through sum SUM1. This function is called in nodes and there are other cousins for different aggregations.
node_to_host_{type}_{n}Pass n values of type from node to host. It is called after, e.g. aggregations such as PRF_GRSUM1 are used in node. There is also an equivalent host_to_node_{type}_{n}.
diff --git a/dev/Computing/Basilisk/index.html b/dev/Computing/Basilisk/index.html index 3873c7edd..0a0bfbcc6 100644 --- a/dev/Computing/Basilisk/index.html +++ b/dev/Computing/Basilisk/index.html @@ -18,4 +18,4 @@ init_grid(1 << LEVEL); ... run(); -}

Parallel computing

Currently I have not tried Basilisk in parallel (actually I did so a few years back but don't really remember the steps). Since there is no dedicated tutorial for going parallel, here are the notes I am taking for writing something in that sense:


Introductory tutorials

Basilisk basics

ReferenceTutorial
Code01-Tutorial-Basics
NotesBasilisk is a conceptual solver for investigating problems in a Cartesian domain.<br><br>Different steps of the simulations are set by event's, which use a specific syntax do indicate whether they depend on a time or iteration condition. These steps might include setup of initial conditions, storage of intermediate results or solution, grid refinement, etc.<br><br>For iterating over arrays Basilisk provides a foreach()loop extending the C-language.<br><br>A standard Makefile is provided by Basilisk for managing common workflows.<br><br>Check the tips.

Game of life

ReferenceConway’s game of life
Code02-Game-of-life
NotesA simple implementation of Conway's game of life to get used with syntax.

Brusselator

ReferenceCoupled reaction-diffusion equations
Code03-Brusselator
NotesSolves the 2D Brusselator, a theoretical autocatalytic reaction diffusion system. The set of parameters used in the study for the stable Turin points where the ones proposed by Pena2001a [18]. Interesting material for preparing courses extending this to other oscillating systems can be found here.

Ginzburg-Landau

ReferenceThe complex Ginzburg-Landau equation
Code04-Ginzburg-Landau
NotesSolves the complex Ginzburg-Landau equation describing the nonlinear evolution of disturbances near the transition from a stable to unstable state of a system. Additional materials are provided here. It would be a good project to include the term $\alpha$ in the equation and the Laplacian term that goes with it.

Distance field

ReferenceDistance field computation from a 3D model
Code05-Distance-Field
NotesThis can be seen as a particular case of pre-/post-processing. It can prove useful when initializing domains with scanned surfaces in STL or other compatible format. Additional steps must be taken for compilation with rendering (modifications to Makefile). Iteration over dimensions can be done with foreach_dimension().

Wavelet transform

ReferenceWavelet transforms and filtering
Code06-Wavelet-Transform
NotesProvides a tutorial on wavelet transform and associated filters. It is presented as the basis to understand mesh adaptation in Basilisk. Recommended reading of Sweldens1998a [19].

Decaying turbulence

ReferenceDecaying two-dimensional turbulence
Code07-Decaying-Turbulence
NotesFor solving Euler equation with vorticity-stream formulation one uses header file navier-stokes/stream.h. The examples makes a first usage of dimensional quantities for vorticity initialization.

Vortex street

ReferenceBénard–von Kármán Vortex Street for flow around a cylinder
Code08-Vortex-Street
NotesSolves the flow around a solid object using the navier-stokes/centered.h solver and introduced the use of passive scalars (tracer). Notice we modify L0, which among many other magic variables is defined in common.h. Illustrates the use of solid and intersection to accomplish complex domains.

Vortex shedding

ReferenceVortex shedding behind a sphere
Code09-Vortex-Shedding
NotesSolution of Navier-Stokes equations in an adaptive domain embedding an sphere. Vortex detection is made with functionalities from lambda2.h implemented following Jeong1995a [20].

Porous medium

ReferenceStokes flow through a complex 3D porous medium
Code10-Porous-Medium
Notes

Periodic box

ReferenceForced isotropic turbulence in a triply-periodic box
Code11-Periodic-Box
Notes

Two-phase flows

Pulsed atomization

ReferenceAtomisation of a pulsed liquid jet
Code12-Pulsed-Atomisation
Notes

Bubble rising

ReferenceBubble rising in a large tank
Code13-Bubble-Rising
Notes

Rotating cylinder

ReferenceFlow in a rotating bottom-driven cylindrical container
Code14-Rotating-Cylinder
Notes

Moving Tangaroa

ReferenceTwo-phase flow around RV Tangaroa
Code15-Moving-Tangaroa
Notes

Geophysical applications

Indian Tsunami

ReferenceThe 2004 Indian Ocean tsunami
Code16-Indian-Tsunami
Notes

Tohoku Tsunami

ReferenceThe 2011 Tohoku tsunami
Code17-Tohoku-Tsunami
Notes

Train of Solitons

ReferenceBreakup of a rectangular perturbation into a train of solitons
Code18-Train-of-Solitons
Notes

Lee Waves

ReferenceTidally-induced internal lee waves
Code19-Lee-Waves
Notes

Ellipsoidal Shoal

ReferencePeriodic wave propagation over an ellipsoidal shoal
Code20-Ellipsoidal-Shoal
Notes

Ellipsoidal Shoal Multilayer

ReferencePeriodic wave propagation over an ellipsoidal shoal (multilayer)
Code21-Ellipsoidal-Shoal-Multilayer
NotesCheck for source code in current version.

Stokes Wave

Reference3D breaking Stokes wave (multilayer solver)
Code22-Stokes-Wave
Notes

Transcritical Flow

ReferenceTranscritical flow over a bump
Code23-Transcritical-Flow
Notes

Shock Instability

ReferenceA Shallow Water Analogue for the Standing Accretion Shock Instability
Code24-Shock-Instability
Notes

Python interface

Basic usage

ReferencePython interface
Code25-Python-Interface
Notes

Poisson equation

ReferencePoisson problem with Python
Code26-Python-Poisson
Notes

Built-in solvers

Basic component solvers:

It is upon these that the Navier-Stokes equation can be assembled in:

HeaderDescription
navier-stokes/stream.hSolves a 2D incompressible, constant density, constant viscosity Navier-Stokes equation formulated in the vorticity $\omega$. This is and advection-diffusion equation solved with a flux-based advection scheme in advection.h. Given its form, the stream function $\psi$ is solver through the poisson.h solver.
navier-stokes/centered.h
navier-stokes/perfs.hNot a solver by itself, it supports other headers under the Navier-Stokes family to follow performance during solution.

Other equations:

Headers files

FileUsage
common.h
distance.h
embed.hAllow the creation of general shape boundary conditions inside the domain.
fractions.h
lambda2.hDetection of vortex using the criteria by Jeong1995a [20]
run.hA generic time loop which executes until termination (to be avoided!).
tracer.hProvides an event to integrate the advection of tracer elements.
utils.h
view.h
FileUsage
grid/cartesian.h
grid/multigrid.h
grid/octree.h
grid/bitree.h

Data types

Functions

FunctionDefinitionUses
origincommon.hSet the origin of cartesian system.
init_gridgrid/ (overloaded)Level of refinement (size) of initial grid.
size
periodicSet periodic boundary conditions.
statsfutils.hRetrieve statistics of a scalar field.
output_ppmoutput.hGenerate a image and video output.
adapt_waveletgrid/tree-common.hAdaptive grid refinement routine.
runrun.h (overloaded)Generic time loop for events execution.
noiseGenerate random noise in $[-1; 1]$.
swapSwap values of two scalar arrays.
input_stldistance.hRead an STL file as an array of triplets.
bounding_boxdistance.hDetermines the bounding box of inputs (segments or triangles).
distancedistance.hDistance to coordinate.
viewdraw.hSetup of viewing (camera) parameters.
isosurfacedraw.hDisplays an isosurface of a field.
draw_vofdraw.hDisplay VOF reconstructed interfaces.
cleardraw.hRemoves previous objects.
saveview.hDumps image(s) to file.
refine_biquadradicgrid/multigrid-common.h
waveletgrid/multigrid-common.h
inverse_waveletgrid/multigrid-common.h
boundary_level
unrefine
vorticityutils.hComputes the vorticity from a velocity field.
+}

Parallel computing

Currently I have not tried Basilisk in parallel (actually I did so a few years back but don't really remember the steps). Since there is no dedicated tutorial for going parallel, here are the notes I am taking for writing something in that sense:


Introductory tutorials

Basilisk basics

ReferenceTutorial
Code01-Tutorial-Basics
NotesBasilisk is a conceptual solver for investigating problems in a Cartesian domain.<br><br>Different steps of the simulations are set by event's, which use a specific syntax do indicate whether they depend on a time or iteration condition. These steps might include setup of initial conditions, storage of intermediate results or solution, grid refinement, etc.<br><br>For iterating over arrays Basilisk provides a foreach()loop extending the C-language.<br><br>A standard Makefile is provided by Basilisk for managing common workflows.<br><br>Check the tips.

Game of life

ReferenceConway’s game of life
Code02-Game-of-life
NotesA simple implementation of Conway's game of life to get used with syntax.

Brusselator

ReferenceCoupled reaction-diffusion equations
Code03-Brusselator
NotesSolves the 2D Brusselator, a theoretical autocatalytic reaction diffusion system. The set of parameters used in the study for the stable Turin points where the ones proposed by Pena2001a [18]. Interesting material for preparing courses extending this to other oscillating systems can be found here.

Ginzburg-Landau

ReferenceThe complex Ginzburg-Landau equation
Code04-Ginzburg-Landau
NotesSolves the complex Ginzburg-Landau equation describing the nonlinear evolution of disturbances near the transition from a stable to unstable state of a system. Additional materials are provided here. It would be a good project to include the term $\alpha$ in the equation and the Laplacian term that goes with it.

Distance field

ReferenceDistance field computation from a 3D model
Code05-Distance-Field
NotesThis can be seen as a particular case of pre-/post-processing. It can prove useful when initializing domains with scanned surfaces in STL or other compatible format. Additional steps must be taken for compilation with rendering (modifications to Makefile). Iteration over dimensions can be done with foreach_dimension().

Wavelet transform

ReferenceWavelet transforms and filtering
Code06-Wavelet-Transform
NotesProvides a tutorial on wavelet transform and associated filters. It is presented as the basis to understand mesh adaptation in Basilisk. Recommended reading of Sweldens1998a [19].

Decaying turbulence

ReferenceDecaying two-dimensional turbulence
Code07-Decaying-Turbulence
NotesFor solving Euler equation with vorticity-stream formulation one uses header file navier-stokes/stream.h. The examples makes a first usage of dimensional quantities for vorticity initialization.

Vortex street

ReferenceBénard–von Kármán Vortex Street for flow around a cylinder
Code08-Vortex-Street
NotesSolves the flow around a solid object using the navier-stokes/centered.h solver and introduced the use of passive scalars (tracer). Notice we modify L0, which among many other magic variables is defined in common.h. Illustrates the use of solid and intersection to accomplish complex domains.

Vortex shedding

ReferenceVortex shedding behind a sphere
Code09-Vortex-Shedding
NotesSolution of Navier-Stokes equations in an adaptive domain embedding an sphere. Vortex detection is made with functionalities from lambda2.h implemented following Jeong1995a [20].

Porous medium

ReferenceStokes flow through a complex 3D porous medium
Code10-Porous-Medium
Notes

Periodic box

ReferenceForced isotropic turbulence in a triply-periodic box
Code11-Periodic-Box
Notes

Two-phase flows

Pulsed atomization

ReferenceAtomisation of a pulsed liquid jet
Code12-Pulsed-Atomisation
Notes

Bubble rising

ReferenceBubble rising in a large tank
Code13-Bubble-Rising
Notes

Rotating cylinder

ReferenceFlow in a rotating bottom-driven cylindrical container
Code14-Rotating-Cylinder
Notes

Moving Tangaroa

ReferenceTwo-phase flow around RV Tangaroa
Code15-Moving-Tangaroa
Notes

Geophysical applications

Indian Tsunami

ReferenceThe 2004 Indian Ocean tsunami
Code16-Indian-Tsunami
Notes

Tohoku Tsunami

ReferenceThe 2011 Tohoku tsunami
Code17-Tohoku-Tsunami
Notes

Train of Solitons

ReferenceBreakup of a rectangular perturbation into a train of solitons
Code18-Train-of-Solitons
Notes

Lee Waves

ReferenceTidally-induced internal lee waves
Code19-Lee-Waves
Notes

Ellipsoidal Shoal

ReferencePeriodic wave propagation over an ellipsoidal shoal
Code20-Ellipsoidal-Shoal
Notes

Ellipsoidal Shoal Multilayer

ReferencePeriodic wave propagation over an ellipsoidal shoal (multilayer)
Code21-Ellipsoidal-Shoal-Multilayer
NotesCheck for source code in current version.

Stokes Wave

Reference3D breaking Stokes wave (multilayer solver)
Code22-Stokes-Wave
Notes

Transcritical Flow

ReferenceTranscritical flow over a bump
Code23-Transcritical-Flow
Notes

Shock Instability

ReferenceA Shallow Water Analogue for the Standing Accretion Shock Instability
Code24-Shock-Instability
Notes

Python interface

Basic usage

ReferencePython interface
Code25-Python-Interface
Notes

Poisson equation

ReferencePoisson problem with Python
Code26-Python-Poisson
Notes

Built-in solvers

Basic component solvers:

It is upon these that the Navier-Stokes equation can be assembled in:

HeaderDescription
navier-stokes/stream.hSolves a 2D incompressible, constant density, constant viscosity Navier-Stokes equation formulated in the vorticity $\omega$. This is and advection-diffusion equation solved with a flux-based advection scheme in advection.h. Given its form, the stream function $\psi$ is solver through the poisson.h solver.
navier-stokes/centered.h
navier-stokes/perfs.hNot a solver by itself, it supports other headers under the Navier-Stokes family to follow performance during solution.

Other equations:

Headers files

FileUsage
common.h
distance.h
embed.hAllow the creation of general shape boundary conditions inside the domain.
fractions.h
lambda2.hDetection of vortex using the criteria by Jeong1995a [20]
run.hA generic time loop which executes until termination (to be avoided!).
tracer.hProvides an event to integrate the advection of tracer elements.
utils.h
view.h
FileUsage
grid/cartesian.h
grid/multigrid.h
grid/octree.h
grid/bitree.h

Data types

Functions

FunctionDefinitionUses
origincommon.hSet the origin of cartesian system.
init_gridgrid/ (overloaded)Level of refinement (size) of initial grid.
size
periodicSet periodic boundary conditions.
statsfutils.hRetrieve statistics of a scalar field.
output_ppmoutput.hGenerate a image and video output.
adapt_waveletgrid/tree-common.hAdaptive grid refinement routine.
runrun.h (overloaded)Generic time loop for events execution.
noiseGenerate random noise in $[-1; 1]$.
swapSwap values of two scalar arrays.
input_stldistance.hRead an STL file as an array of triplets.
bounding_boxdistance.hDetermines the bounding box of inputs (segments or triangles).
distancedistance.hDistance to coordinate.
viewdraw.hSetup of viewing (camera) parameters.
isosurfacedraw.hDisplays an isosurface of a field.
draw_vofdraw.hDisplay VOF reconstructed interfaces.
cleardraw.hRemoves previous objects.
saveview.hDumps image(s) to file.
refine_biquadradicgrid/multigrid-common.h
waveletgrid/multigrid-common.h
inverse_waveletgrid/multigrid-common.h
boundary_level
unrefine
vorticityutils.hComputes the vorticity from a velocity field.
diff --git a/dev/Computing/Elmer/index.html b/dev/Computing/Elmer/index.html index 66f19b24e..4d939e289 100644 --- a/dev/Computing/Elmer/index.html +++ b/dev/Computing/Elmer/index.html @@ -157,4 +157,4 @@     Real MATC "1.0 - tx * (2.5E-03 - 1.2E-06 * tx)"

Sourcing functions from user modules

Models can become too complex to code in a single line. Hopefully MATC provides functions which can be declared in external modules. I avoid coding MATC directly in SIF because their syntax is different and that can quickly lead to unmaintainable code. An example of such external sourcing is provided in this case. You need to remember to call source("module") in Simulation section of SIF so that the functions can be used elsewhere. The call of a function become something as

  Concentration Diffusivity = Variable Concentration
     Real MATC "diffusivity(tx)"

if independent variable is concentration or for time

  Mass Transfer Coefficient = Variable Time
     Real MATC "masstransfercoef(tx)"

You can even use multiple variables, e.g.

  Mass Transfer Coefficient = Variable Time, Temperature
-    Real MATC "masstransfercoef(tx(0), tx(1))"

PS: I managed to use a single source in SIF, although the documentation does not state that many sources are forbidden; for some reason multiple sources work when sourcing from a file.

For more complex cases such as this one it is worth writing actual MATC function modules; since there is no syntax highlighter available for MATC in VS Code, the .ini extension seems to provide better readability to the code. The problem was split in two parts: the models which take care of sourcing the conditions, so that basic users could only edit the latter and run their variant calculations with no coding skills. Notice that the symbols that are used in SIF are exported from this line instead of being set as global variables.

User-defined functions

TODO

+    Real MATC "masstransfercoef(tx(0), tx(1))"

PS: I managed to use a single source in SIF, although the documentation does not state that many sources are forbidden; for some reason multiple sources work when sourcing from a file.

For more complex cases such as this one it is worth writing actual MATC function modules; since there is no syntax highlighter available for MATC in VS Code, the .ini extension seems to provide better readability to the code. The problem was split in two parts: the models which take care of sourcing the conditions, so that basic users could only edit the latter and run their variant calculations with no coding skills. Notice that the symbols that are used in SIF are exported from this line instead of being set as global variables.

User-defined functions

TODO

diff --git a/dev/Computing/Finite-Element-Method/index.html b/dev/Computing/Finite-Element-Method/index.html index 387c17b20..245079e26 100644 --- a/dev/Computing/Finite-Element-Method/index.html +++ b/dev/Computing/Finite-Element-Method/index.html @@ -1,2 +1,2 @@ -Finite Element Method · WallyToolbox.jl

Finite Element Method

Personal path towards mastering finite element method (FEM).

The goal of this repository is to track my learning path of finite element method. As a secondary goal, all tools included in the study must be open source with a permissive license. Finally, I will study again some subjects related to the physics of applied problems that will be solved through FEM.

<details> <summary> It is not my first time trying this and I learned a few things in the past failures. Below I expose my reasoning about the choices I make today for structuring this repository and its future. </summary> <br>

  1. During my college years I almost neglected solid mechanics and statics. It happens that most quality materials for learning FEM are applied to structural analysis (because that is the most import numerical method in that field). Because my applied work is mostly related to fluids and heat transfer, doing some bibliographic research I found the books by Lewis et al. and its newer edition by Nithiarasu et al. adapted to my expertise level.

  2. From a mathematical standpoint the most accessible material I have studied so far is the draft book by H. P. Langtangen and K.-A. Mardal. Unfortunatelly the main author deceased just after the release of the final draft and the material remained unfinished. That is not really a blocking point because the content is pretty much finished from a non-specialist standpoint. Furthermore, its exercises where converted into notebooks by Mojtaba Barzegari and the material is quite accessible.

  3. During the years I have tested several FEM packages and libraries. The most promissing FEM package in the open source world is certainly FEniCSx, but it comes with the disadvantage of requiring Linux/WSL and having an unclear documentation. In terms of power I couldn't find anything comparable to MOOSE - if you see the list of developer labs it becomes pretty clear why - but it is something to experienced FEM users since it requires low level implementation of the problems in C++. Elmer could be a candidate package for learning the practice, but for going into the mathematics of FEM it is not the right tool. Next comes Kratos but its documentation is messy and things moved around too much over the years. Finally we have FreeFEM++. It is a pretty old software what means that it outlived most of the other applications and now is very stable. What is interesting about FreeFEM++ is its portability across operating systems and good documentation. In what follows I will stick with FreeFEM++ and later with FEniCSx.

  4. Learning a numerical method for continuum mechanics is essentially useless without the capacity to apply it to real world geometries. Unfortunatelly the field of open source CAD is very poor so we have just a few options. Although Gmsh is pretty powerfull with respect to its meshing capabilities, conceiving the geometry with the software can quickly scale to trigonometry hell level. I have been using the software for many years for 2D cases but systematically fall back to proprietary software when things become complex. In this study I intend to reach a sorcerer Gmsh mastery level. It can be complemented by STL files generation with Blender or CAD in FreeCAD.

  5. Advanced post-processing is also a must, so we will also follow some tutorials to improve ParaView skills.

</details>

Software version

While doing such an ambitious study, it is important to stick with software versions.

In what follows we will be using exclusivelly the following software:

  • Gmsh 4.11.1
  • FreeFEM++ 4.13
  • ParaView 5.10.1
  • FreeCAD 0.21.1
  • Blender 4.0.2

Processing utilities in Julia and/or Python will have their own versioning so they are not reported here.

Study planning

Because it can become frustrating to progress in the study and not be able to apply the knowledge to real cases, we will start by growing competencies in geometry and meshing before entering the mathematical and software aspects. Planning is idealized in a weekly basis.

Because of its simpler format, Nithiarasu's book is followed at a faster pace than Langtangen's. At some point the subjects being studied at Langtangen's book will become a review and deepening of previously studied subjects.

For materials that were not cited above, here follow the links:

The book series by O.C. Zienkiewicz and collaborators will be included later since its in depth and general approach trespasses my current capacity on how to organize their study. After learning the basics over the next months I hope to be able to skecth a learning strategy to go over those books and feed this time-line.

Complementary studies to take at any time during the series:

  • The first 4 videos of this playlist.
  • The first 5 videos of this playlist.
  • This video and the sequence (no playlist created).
  • This video with a full Gmsh introduction.

Review and in-depth studies for solidification of knowledge:

Week 1

  • [ ] Follow 21 tutorials provided with Gmsh
  • [x] Follow this short course on FreeCAD.
  • [x] Follow this tutorial on FreeFEM without practicing.
  • [x] Nithiarasu (2016), chapters 1 and 2
  • [x] Langtangen (2016), chapters 1 and 2 (1/3)
  • [ ] Barzegari's notebook associated to Langtangens chapter 1
  • [ ] Engineering Statics | Lectures videos 1 to 10
  • [ ] Intro to the Finite Element Method | Lectures 1

Week 2

  • [ ] Nithiarasu (2016), chapter 3 (1/2)
  • [ ] Langtangen (2016), chapter 2 (2/3)
  • [ ] FreeFEM++ guided tutorials 2.1 to 2.9
  • [ ] Engineering Statics | Lectures videos 11 to 14
  • [ ] Solid Mechanics | Theory (all at once)
  • [ ] Intro to Continuum Mechanics | Seminars 1
  • [ ] Intro to the Finite Element Method | Lectures 2

Week 3

  • [ ] Nithiarasu (2016), chapter 3 (2/2)
  • [ ] Langtangen (2016), chapter 2 (3/3)
  • [ ] Barzegari's notebook associated to Langtangens chapter 2
  • [ ] FreeFEM++ guided tutorials 2.10 to 2.13
  • [ ] Engineering Statics | Lectures videos 15 to 18
  • [ ] Intro to Continuum Mechanics | Seminars 2
  • [ ] Intro to the Finite Element Method | Lectures 3

Week 4

  • [ ] Nithiarasu (2016), chapter 4
  • [ ] Langtangen (2016), chapter 3 (1/5)
  • [ ] FreeFEM++ guided tutorials 2.14 to 2.19
  • [ ] Engineering Statics | Lectures videos 19 to 22
  • [ ] Intro to Continuum Mechanics | Seminars 3
  • [ ] Intro to the Finite Element Method | Lectures 4
  • [ ] Follow these ParaView tutorials.

Week 5

  • [ ] Nithiarasu (2016), chapter 5
  • [ ] Langtangen (2016), chapter 3 (2/5)
  • [ ] Engineering Statics | Lectures videos 23 to 24
  • [ ] Intro to Continuum Mechanics | Seminars 4
  • [ ] Intro to the Finite Element Method | Lectures 5
  • [ ] Follow these ParaView tutorials.

Week 6

  • [ ] Nithiarasu (2016), chapter 6
  • [ ] Langtangen (2016), chapter 3 (3/5)
  • [ ] Intro to Continuum Mechanics | Seminars 5
  • [ ] Intro to the Finite Element Method | Lectures 6
  • [ ] Follow this ParaView seminar.

Week 7

  • [ ] Nithiarasu (2016), chapter 7 (1/3)
  • [ ] Langtangen (2016), chapter 3 (4/5)
  • [ ] Intro to Continuum Mechanics | Seminars 6
  • [ ] Intro to the Finite Element Method | Lectures 7
  • [ ] Follow this ParaView seminar.

Week 8

  • [ ] Nithiarasu (2016), chapter 7 (2/3)
  • [ ] Langtangen (2016), chapter 3 (5/5)
  • [ ] Barzegari's notebook associated to Langtangens chapter 3
  • [ ] Intro to Continuum Mechanics | Seminars 7
  • [ ] Intro to the Finite Element Method | Lectures 8
  • [ ] Follow this ParaView seminar.

Week 9

  • [ ] Nithiarasu (2016), chapter 7 (3/3)
  • [ ] Langtangen (2016), chapter 4 (1/2)
  • [ ] Intro to Continuum Mechanics | Seminars 8
  • [ ] Intro to the Finite Element Method | Lectures 9
  • [ ] Follow this ParaView seminar.

Week 10

  • [ ] Nithiarasu (2016), chapter 8
  • [ ] Langtangen (2016), chapter 4 (2/2)
  • [ ] Barzegari's notebook associated to Langtangens chapter 4
  • [ ] Intro to Continuum Mechanics | Seminars 9
  • [ ] Intro to the Finite Element Method | Lectures 10
  • [ ] Follow this ParaView seminar.

Week 11

  • [ ] Follow 7 extended tutorials provided with Gmsh (Python)
  • [ ] Nithiarasu (2016), chapter 9
  • [ ] Langtangen (2016), chapter 5 (1/3)
  • [ ] Intro to Continuum Mechanics | Seminars 10
  • [ ] Follow this ParaView seminar.

Week 12

  • [ ] Nithiarasu (2016), chapter 10
  • [ ] Langtangen (2016), chapter 5 (2/3)

Week 13

  • [ ] Nithiarasu (2016), chapter 11
  • [ ] Langtangen (2016), chapter 5 (3/3)
  • [ ] Barzegari's notebook associated to Langtangens chapter 5

Week 14

  • [ ] Nithiarasu (2016), chapter 12
  • [ ] Langtangen (2016), chapter 6 (1/2)

Week 15

  • [ ] Nithiarasu (2016), chapter 13
  • [ ] Langtangen (2016), chapter 6 (2/2)
  • [ ] Barzegari's notebook associated to Langtangens chapter 6

Week 16

  • [ ] Nithiarasu (2016), chapter 14 and 15
  • [ ] Langtangen (2016), chapter 7
  • [ ] Barzegari's notebook associated to Langtangens chapter 7

Week 17

  • [ ] Langtangen (2016), chapter 8
  • [ ] Barzegari's notebook associated to Langtangens chapter 8

Week 18

  • [ ] Langtangen (2016), chapter 9 (1/4)

Week 19

  • [ ] Langtangen (2016), chapter 9 (2/4)

Week 20

  • [ ] Langtangen (2016), chapter 9 (3/4)

Week 21

  • [ ] Langtangen (2016), chapter 9 (4/4)
  • [ ] Barzegari's notebook associated to Langtangens chapter 9

Week 22

  • [ ] Langtangen (2016), chapter 10

Week 23

  • [ ] Langtangen (2016), chapter 11
+Finite Element Method · WallyToolbox.jl

Finite Element Method

Personal path towards mastering finite element method (FEM).

The goal of this repository is to track my learning path of finite element method. As a secondary goal, all tools included in the study must be open source with a permissive license. Finally, I will study again some subjects related to the physics of applied problems that will be solved through FEM.

<details> <summary> It is not my first time trying this and I learned a few things in the past failures. Below I expose my reasoning about the choices I make today for structuring this repository and its future. </summary> <br>

  1. During my college years I almost neglected solid mechanics and statics. It happens that most quality materials for learning FEM are applied to structural analysis (because that is the most import numerical method in that field). Because my applied work is mostly related to fluids and heat transfer, doing some bibliographic research I found the books by Lewis et al. and its newer edition by Nithiarasu et al. adapted to my expertise level.

  2. From a mathematical standpoint the most accessible material I have studied so far is the draft book by H. P. Langtangen and K.-A. Mardal. Unfortunatelly the main author deceased just after the release of the final draft and the material remained unfinished. That is not really a blocking point because the content is pretty much finished from a non-specialist standpoint. Furthermore, its exercises where converted into notebooks by Mojtaba Barzegari and the material is quite accessible.

  3. During the years I have tested several FEM packages and libraries. The most promissing FEM package in the open source world is certainly FEniCSx, but it comes with the disadvantage of requiring Linux/WSL and having an unclear documentation. In terms of power I couldn't find anything comparable to MOOSE - if you see the list of developer labs it becomes pretty clear why - but it is something to experienced FEM users since it requires low level implementation of the problems in C++. Elmer could be a candidate package for learning the practice, but for going into the mathematics of FEM it is not the right tool. Next comes Kratos but its documentation is messy and things moved around too much over the years. Finally we have FreeFEM++. It is a pretty old software what means that it outlived most of the other applications and now is very stable. What is interesting about FreeFEM++ is its portability across operating systems and good documentation. In what follows I will stick with FreeFEM++ and later with FEniCSx.

  4. Learning a numerical method for continuum mechanics is essentially useless without the capacity to apply it to real world geometries. Unfortunatelly the field of open source CAD is very poor so we have just a few options. Although Gmsh is pretty powerfull with respect to its meshing capabilities, conceiving the geometry with the software can quickly scale to trigonometry hell level. I have been using the software for many years for 2D cases but systematically fall back to proprietary software when things become complex. In this study I intend to reach a sorcerer Gmsh mastery level. It can be complemented by STL files generation with Blender or CAD in FreeCAD.

  5. Advanced post-processing is also a must, so we will also follow some tutorials to improve ParaView skills.

</details>

Software version

While doing such an ambitious study, it is important to stick with software versions.

In what follows we will be using exclusivelly the following software:

  • Gmsh 4.11.1
  • FreeFEM++ 4.13
  • ParaView 5.10.1
  • FreeCAD 0.21.1
  • Blender 4.0.2

Processing utilities in Julia and/or Python will have their own versioning so they are not reported here.

Study planning

Because it can become frustrating to progress in the study and not be able to apply the knowledge to real cases, we will start by growing competencies in geometry and meshing before entering the mathematical and software aspects. Planning is idealized in a weekly basis.

Because of its simpler format, Nithiarasu's book is followed at a faster pace than Langtangen's. At some point the subjects being studied at Langtangen's book will become a review and deepening of previously studied subjects.

For materials that were not cited above, here follow the links:

The book series by O.C. Zienkiewicz and collaborators will be included later since its in depth and general approach trespasses my current capacity on how to organize their study. After learning the basics over the next months I hope to be able to skecth a learning strategy to go over those books and feed this time-line.

Complementary studies to take at any time during the series:

  • The first 4 videos of this playlist.
  • The first 5 videos of this playlist.
  • This video and the sequence (no playlist created).
  • This video with a full Gmsh introduction.

Review and in-depth studies for solidification of knowledge:

Week 1

  • [ ] Follow 21 tutorials provided with Gmsh
  • [x] Follow this short course on FreeCAD.
  • [x] Follow this tutorial on FreeFEM without practicing.
  • [x] Nithiarasu (2016), chapters 1 and 2
  • [x] Langtangen (2016), chapters 1 and 2 (1/3)
  • [ ] Barzegari's notebook associated to Langtangens chapter 1
  • [ ] Engineering Statics | Lectures videos 1 to 10
  • [ ] Intro to the Finite Element Method | Lectures 1

Week 2

  • [ ] Nithiarasu (2016), chapter 3 (1/2)
  • [ ] Langtangen (2016), chapter 2 (2/3)
  • [ ] FreeFEM++ guided tutorials 2.1 to 2.9
  • [ ] Engineering Statics | Lectures videos 11 to 14
  • [ ] Solid Mechanics | Theory (all at once)
  • [ ] Intro to Continuum Mechanics | Seminars 1
  • [ ] Intro to the Finite Element Method | Lectures 2

Week 3

  • [ ] Nithiarasu (2016), chapter 3 (2/2)
  • [ ] Langtangen (2016), chapter 2 (3/3)
  • [ ] Barzegari's notebook associated to Langtangens chapter 2
  • [ ] FreeFEM++ guided tutorials 2.10 to 2.13
  • [ ] Engineering Statics | Lectures videos 15 to 18
  • [ ] Intro to Continuum Mechanics | Seminars 2
  • [ ] Intro to the Finite Element Method | Lectures 3

Week 4

  • [ ] Nithiarasu (2016), chapter 4
  • [ ] Langtangen (2016), chapter 3 (1/5)
  • [ ] FreeFEM++ guided tutorials 2.14 to 2.19
  • [ ] Engineering Statics | Lectures videos 19 to 22
  • [ ] Intro to Continuum Mechanics | Seminars 3
  • [ ] Intro to the Finite Element Method | Lectures 4
  • [ ] Follow these ParaView tutorials.

Week 5

  • [ ] Nithiarasu (2016), chapter 5
  • [ ] Langtangen (2016), chapter 3 (2/5)
  • [ ] Engineering Statics | Lectures videos 23 to 24
  • [ ] Intro to Continuum Mechanics | Seminars 4
  • [ ] Intro to the Finite Element Method | Lectures 5
  • [ ] Follow these ParaView tutorials.

Week 6

  • [ ] Nithiarasu (2016), chapter 6
  • [ ] Langtangen (2016), chapter 3 (3/5)
  • [ ] Intro to Continuum Mechanics | Seminars 5
  • [ ] Intro to the Finite Element Method | Lectures 6
  • [ ] Follow this ParaView seminar.

Week 7

  • [ ] Nithiarasu (2016), chapter 7 (1/3)
  • [ ] Langtangen (2016), chapter 3 (4/5)
  • [ ] Intro to Continuum Mechanics | Seminars 6
  • [ ] Intro to the Finite Element Method | Lectures 7
  • [ ] Follow this ParaView seminar.

Week 8

  • [ ] Nithiarasu (2016), chapter 7 (2/3)
  • [ ] Langtangen (2016), chapter 3 (5/5)
  • [ ] Barzegari's notebook associated to Langtangens chapter 3
  • [ ] Intro to Continuum Mechanics | Seminars 7
  • [ ] Intro to the Finite Element Method | Lectures 8
  • [ ] Follow this ParaView seminar.

Week 9

  • [ ] Nithiarasu (2016), chapter 7 (3/3)
  • [ ] Langtangen (2016), chapter 4 (1/2)
  • [ ] Intro to Continuum Mechanics | Seminars 8
  • [ ] Intro to the Finite Element Method | Lectures 9
  • [ ] Follow this ParaView seminar.

Week 10

  • [ ] Nithiarasu (2016), chapter 8
  • [ ] Langtangen (2016), chapter 4 (2/2)
  • [ ] Barzegari's notebook associated to Langtangens chapter 4
  • [ ] Intro to Continuum Mechanics | Seminars 9
  • [ ] Intro to the Finite Element Method | Lectures 10
  • [ ] Follow this ParaView seminar.

Week 11

  • [ ] Follow 7 extended tutorials provided with Gmsh (Python)
  • [ ] Nithiarasu (2016), chapter 9
  • [ ] Langtangen (2016), chapter 5 (1/3)
  • [ ] Intro to Continuum Mechanics | Seminars 10
  • [ ] Follow this ParaView seminar.

Week 12

  • [ ] Nithiarasu (2016), chapter 10
  • [ ] Langtangen (2016), chapter 5 (2/3)

Week 13

  • [ ] Nithiarasu (2016), chapter 11
  • [ ] Langtangen (2016), chapter 5 (3/3)
  • [ ] Barzegari's notebook associated to Langtangens chapter 5

Week 14

  • [ ] Nithiarasu (2016), chapter 12
  • [ ] Langtangen (2016), chapter 6 (1/2)

Week 15

  • [ ] Nithiarasu (2016), chapter 13
  • [ ] Langtangen (2016), chapter 6 (2/2)
  • [ ] Barzegari's notebook associated to Langtangens chapter 6

Week 16

  • [ ] Nithiarasu (2016), chapter 14 and 15
  • [ ] Langtangen (2016), chapter 7
  • [ ] Barzegari's notebook associated to Langtangens chapter 7

Week 17

  • [ ] Langtangen (2016), chapter 8
  • [ ] Barzegari's notebook associated to Langtangens chapter 8

Week 18

  • [ ] Langtangen (2016), chapter 9 (1/4)

Week 19

  • [ ] Langtangen (2016), chapter 9 (2/4)

Week 20

  • [ ] Langtangen (2016), chapter 9 (3/4)

Week 21

  • [ ] Langtangen (2016), chapter 9 (4/4)
  • [ ] Barzegari's notebook associated to Langtangens chapter 9

Week 22

  • [ ] Langtangen (2016), chapter 10

Week 23

  • [ ] Langtangen (2016), chapter 11
diff --git a/dev/Computing/LAMMPS/index.html b/dev/Computing/LAMMPS/index.html index c9aeeffec..bee03c95a 100644 --- a/dev/Computing/LAMMPS/index.html +++ b/dev/Computing/LAMMPS/index.html @@ -55,4 +55,4 @@ f end -fig

For proper representation of results, following the VDM tutorial one can further:

+fig

For proper representation of results, following the VDM tutorial one can further:

diff --git a/dev/Computing/OpenFOAM11/aachenBombSteady/index.html b/dev/Computing/OpenFOAM11/aachenBombSteady/index.html index 2e268c494..0646721dc 100644 --- a/dev/Computing/OpenFOAM11/aachenBombSteady/index.html +++ b/dev/Computing/OpenFOAM11/aachenBombSteady/index.html @@ -22,4 +22,4 @@ C2 1.92; C3 0; sigmak 1; -sigmaEps 1.3;

Reminders

Initial tentative setup

+sigmaEps 1.3;

Reminders

Initial tentative setup

diff --git a/dev/Computing/OpenFOAM11/horizontalMixer/index.html b/dev/Computing/OpenFOAM11/horizontalMixer/index.html index 98271ea47..14b1cebf3 100644 --- a/dev/Computing/OpenFOAM11/horizontalMixer/index.html +++ b/dev/Computing/OpenFOAM11/horizontalMixer/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

The following numerical experiments concern the horizontalMixer sample case.

Conceptual phase

Minimal working examples:

  • 000: no models active other than patchInteraction rebound.

Case 000

  • 001: no models active other than patchInteraction standardWallInteraction.

Case 001

  • 002: no models active other than patchInteraction localInteraction.

Case 002

If there are outlets in the system, rebound model is not suitable. Because of this, all the next cases, unless stated otherwise, will use localInteraction given the better control it provides over individual patches with respect to standardWallInteraction (although it is much slower than the latter).

  • 007: compare solution for same (approximate) mass flow with using multiple particles per parcel - with respect to the single particle per parcel performed in the reference case 002. The overall cloud shape remains the same but some spatial resolution is lost. For conception studies it seems valid to use a higher number of particles per parcel.

Case 007

Using the basic patchInteraction localInteraction add these variants (notice that the option none for all these models is already covered by the reference case 002. After comparing cases 002 and 007 the following variants were modified to match 007 as a reference case given the much lower computational time (more particles per parcel).

  • 003: packingModel explicit.

Case 003

  • 004: packingModel implicit.

Case 004

  • 005: dampingModel relaxation. Particle velocities are relaxed towards the local mean over a time-scale. Notice that reference paper intended to improve MP-PIC for polydisperse sedimenting particle clouds.

Case 005

  • 006 isotropyModel stochastic. According to the reference paper collisions cause numerical particles to scatter in MP-PIC calculations, just as physical particles do in particle/fluid flows, just as the generated animation implies.

Case 006

Implicit packing so far is the only model for which particles left the system and turbulence effects and segregation becomes apparent. In fact without implicit packing the results do not even look physical, so it is probably a requirement to activate this model. Damping and isotropy models produce similar results, with a little more dispersed cloud when isotropy is active, as stated above from its reference.

Hypotheses testing cases:

  • 008: modify case 004 to test if with rebound patch interaction particles are able to quit the system. Confirmed that this patch interaction does not handle outlets.

Case 008

  • 009: modify case 004 to test if with standardWallInteraction patch interaction particles are able to quit the system. Confirmed that this patch interaction does handle outlets similarly to the localInteraction. It was not possible to confirm if inlets also allow backflow since reporting is not provided by patch.

Case 009

  • 010: check the role of gravity option over implicit packing model. Here we derive a variant of 009 because it runs faster than with localInteraction.

Case 010

  • 011: in fact the role of gravity in 010 was pretty devastating over the sedimentation rate (quite unexpected given the particle sizes that were used) so a variant of this case was manually initialized from last state and left to run for a much longer physical time (100 s) using maxCo 2.0 for faster execution. CALCULATION DIVERGED, REDO!

Physical refinement phase

ModelTakings
InjectionModelCONFIRM CONCLUSIONS WITH POLYDISTRIBUTED CLOUDS (particles per parcel)!
PatchInteractionModelThis model is key for the simulation of particles coupled to a fluid. Unless different behavior is expected in the different walls so customization of interaction is required, it is much faster to use a standardWallInteraction approach. For understanding the role of parameters e and mu over rebound one can check lines 144-168 of source code and confirm the model is the same as the one implemented in localInteraction in lines 366-391 of sources.
PackingModel
DampingModel
IsotropyModel
ParticleForceThis will be discussed in this section.

Solution with different drag models:

ModelResults
sphereDragCase 012 012
WenYuDrag (used in injectionChannel) implemented from equation (2.12) of Gidaspow1994 [75].Case 013 013
ErgunWenYuDrag (used in Goldschmidt, cyclone, and column) implemented from equation (5.11) of Gidaspow1994 [75].Case 014 014

Other drag models:

ModelDetails
PlessisMasliyahDragUsed in GoldschmidtMPPIC. Implemented from Plessis1988 [76] is adapted for flow through consolidated isotropic porous media. This is outside the scope of the current study but functionality is tested anyways from a computational point of view and to understand its behavior far from its reference application. Calculation diverged, so no results are available.
distortedSphereDragNot used in any tutorial. Implemented as per Liu1993 [13] is conceived for the simulation of the effects of drop drag and breakup on fuel sprays. This is far from our scope and is not tested.
nonSphereDragNot used in any tutorial. Implemented as per Haider1989 [77] is a drag model for non-spherical particles. Its most important parameter is phi, the ratio of the surface area of a sphere with the same volume as the particle to the actual surface area of the particle.
SchillerNaumannDragNot used in any tutorial. Implemented according the classical paper by Schiller (1935) for modeling drag over spheres.

Solution with different sizeDistribution:

  • [ ] fixedValue
  • [ ] normal
  • [ ] RosinRammler
  • [ ] tabulatedDensity

Solution with different cloud types

  • MPPICCloud
  • collidingCloud

For the PackingModelone needs to specify the ParticleStressModel among the following:

ModelDetails
HarrisCrighton
Lun

For both DampingModel and IsotropyModel one needs a TimeScaleModel

OptionDetails
equilibrium
isotropic
nonEquilibrium
+- · WallyToolbox.jl

The following numerical experiments concern the horizontalMixer sample case.

Conceptual phase

Minimal working examples:

  • 000: no models active other than patchInteraction rebound.

Case 000

  • 001: no models active other than patchInteraction standardWallInteraction.

Case 001

  • 002: no models active other than patchInteraction localInteraction.

Case 002

If there are outlets in the system, rebound model is not suitable. Because of this, all the next cases, unless stated otherwise, will use localInteraction given the better control it provides over individual patches with respect to standardWallInteraction (although it is much slower than the latter).

  • 007: compare solution for same (approximate) mass flow with using multiple particles per parcel - with respect to the single particle per parcel performed in the reference case 002. The overall cloud shape remains the same but some spatial resolution is lost. For conception studies it seems valid to use a higher number of particles per parcel.

Case 007

Using the basic patchInteraction localInteraction add these variants (notice that the option none for all these models is already covered by the reference case 002. After comparing cases 002 and 007 the following variants were modified to match 007 as a reference case given the much lower computational time (more particles per parcel).

  • 003: packingModel explicit.

Case 003

  • 004: packingModel implicit.

Case 004

  • 005: dampingModel relaxation. Particle velocities are relaxed towards the local mean over a time-scale. Notice that reference paper intended to improve MP-PIC for polydisperse sedimenting particle clouds.

Case 005

  • 006 isotropyModel stochastic. According to the reference paper collisions cause numerical particles to scatter in MP-PIC calculations, just as physical particles do in particle/fluid flows, just as the generated animation implies.

Case 006

Implicit packing so far is the only model for which particles left the system and turbulence effects and segregation becomes apparent. In fact without implicit packing the results do not even look physical, so it is probably a requirement to activate this model. Damping and isotropy models produce similar results, with a little more dispersed cloud when isotropy is active, as stated above from its reference.

Hypotheses testing cases:

  • 008: modify case 004 to test if with rebound patch interaction particles are able to quit the system. Confirmed that this patch interaction does not handle outlets.

Case 008

  • 009: modify case 004 to test if with standardWallInteraction patch interaction particles are able to quit the system. Confirmed that this patch interaction does handle outlets similarly to the localInteraction. It was not possible to confirm if inlets also allow backflow since reporting is not provided by patch.

Case 009

  • 010: check the role of gravity option over implicit packing model. Here we derive a variant of 009 because it runs faster than with localInteraction.

Case 010

  • 011: in fact the role of gravity in 010 was pretty devastating over the sedimentation rate (quite unexpected given the particle sizes that were used) so a variant of this case was manually initialized from last state and left to run for a much longer physical time (100 s) using maxCo 2.0 for faster execution. CALCULATION DIVERGED, REDO!

Physical refinement phase

ModelTakings
InjectionModelCONFIRM CONCLUSIONS WITH POLYDISTRIBUTED CLOUDS (particles per parcel)!
PatchInteractionModelThis model is key for the simulation of particles coupled to a fluid. Unless different behavior is expected in the different walls so customization of interaction is required, it is much faster to use a standardWallInteraction approach. For understanding the role of parameters e and mu over rebound one can check lines 144-168 of source code and confirm the model is the same as the one implemented in localInteraction in lines 366-391 of sources.
PackingModel
DampingModel
IsotropyModel
ParticleForceThis will be discussed in this section.

Solution with different drag models:

ModelResults
sphereDragCase 012 012
WenYuDrag (used in injectionChannel) implemented from equation (2.12) of Gidaspow1994 [75].Case 013 013
ErgunWenYuDrag (used in Goldschmidt, cyclone, and column) implemented from equation (5.11) of Gidaspow1994 [75].Case 014 014

Other drag models:

ModelDetails
PlessisMasliyahDragUsed in GoldschmidtMPPIC. Implemented from Plessis1988 [76] is adapted for flow through consolidated isotropic porous media. This is outside the scope of the current study but functionality is tested anyways from a computational point of view and to understand its behavior far from its reference application. Calculation diverged, so no results are available.
distortedSphereDragNot used in any tutorial. Implemented as per Liu1993 [13] is conceived for the simulation of the effects of drop drag and breakup on fuel sprays. This is far from our scope and is not tested.
nonSphereDragNot used in any tutorial. Implemented as per Haider1989 [77] is a drag model for non-spherical particles. Its most important parameter is phi, the ratio of the surface area of a sphere with the same volume as the particle to the actual surface area of the particle.
SchillerNaumannDragNot used in any tutorial. Implemented according the classical paper by Schiller (1935) for modeling drag over spheres.

Solution with different sizeDistribution:

  • [ ] fixedValue
  • [ ] normal
  • [ ] RosinRammler
  • [ ] tabulatedDensity

Solution with different cloud types

  • MPPICCloud
  • collidingCloud

For the PackingModelone needs to specify the ParticleStressModel among the following:

ModelDetails
HarrisCrighton
Lun

For both DampingModel and IsotropyModel one needs a TimeScaleModel

OptionDetails
equilibrium
isotropic
nonEquilibrium
diff --git a/dev/Computing/OpenFOAM11/index.html b/dev/Computing/OpenFOAM11/index.html index 114707619..a752022e5 100644 --- a/dev/Computing/OpenFOAM11/index.html +++ b/dev/Computing/OpenFOAM11/index.html @@ -17,4 +17,4 @@ \dfrac{24}{\mathrm{Re}_{d}}\left(1 + \dfrac{\mathrm{Re}_{d}^{2/3}}{6}\right){} &\mathrm{Re}_{d}\le{}1000\\[12pt] % 0.424{}&\text{otherwise} -\end{cases}\]

where $\mathrm{Re}_{d}$ is expressed as

\[\mathrm{Re}_{d} = \dfrac{\rho\vert{}u+u^\prime-v|d}{\mu(\hat{T})}\quad\text{where}\quad\hat{T}=\dfrac{T+2T_{d}}{3}\]

With these expressions and making $C_{D}^\prime=C_{D}\mathrm{Re}_{d}$ we have the drag force over a particle of diameter $d$ expressed as

\[\vec{F}=\dfrac{3}{4}\dfrac{m\mu(\hat{T})C_{D}^\prime}{\rho_{d}d^2}\]

[!todo] The code implementation already provides both $\mu(\hat{T})$ and $\mathrm{Re}_{d}$ computed to the drag model. Additional inspection on how these quantities are evaluated is required. Also note that Amsden1989 [7] provides the equations formulated in the radius, not diameter, what might generate some confusion.

This formulation is also used as part of distortedSphereDrag implementation , which makes use of the same $C_{D}$ now referred to as $C_{D,sphere}$ with a modified law accounting for particle distortion in the breakup mechanism of fuel sprays, as discussed by Liu1993 [13]. The updated drag coefficient is then expressed in terms of drop distortion $y$ from TAB (Taylor Analogy Breakup) model from Reitz1987 [14].

\[C_{D} = C_{D,sphere}(1+2.632y)\]

[!info] The distortedSphereDrag model is not available for MPPIC clouds and it is also not used anywhere in the tutorials or source code. For not it does not work yet apparently.

Combustion models

Models inheriting from combustionModel base class. If you are reading this section you might also be interested in building the case and testing the combustion with OpenSmoke++ or Cantera.

TypeGroupDescription
EDCTurbulentEddy Dissipation Concept turbulent combustion model. Probably the most popular approach for simulation of gas combustion in industrial processes.
laminarLaminar
PaSRLaminar
FDSSingle-step
infinitelyFastChemistrySingle-step
diffusionSingle-step
zoneCombustionFilterEnable the reactions within the specified list of cell-zones and set to zero elsewhere.
noCombustionDummyDummy combustion model for 'no combustion'.

Cloud models

In OpenFOAM, a cloud designate the injection of a secondary phase, generally solid particles or droplets, in a primary continuous carrier phase. The dictionary cloudProperties is identified in tutorials related to the following solver modules:

The default version of the dictionary provided here is not yet documented as of OpenFOAM v11 and does not contain any solver specific configurations, so the users must refer to the tutorial cases for setting up their studies. A post-processing particle tracking function associated to the dictionary is provided here (untested).

Currently OpenFOAM implements the following cloud types:

CloudDescription
CollidingCloudAdds collisions to clouds.
MomentumCloudTemplated base class for momentum cloud. Adds particle forces and dispersion, injection, patch interaction, stochastic collision, and surface film models to clouds.
ParcelCloudOutermost template for parcel clouds.
ThermoCloudTemplated base class for thermodynamic cloud. Adds heat transfer.
MPPICCloudAdds MPPIC modelling to clouds.
ReactingCloudTemplated base class for reacting cloud. Supports single phase with variable composition and phase change modeling.
ReactingMultiphaseCloudTemplated base class for multiphase reacting cloud. Supports multiphase composition, devolatilization, and surface reactions.
SprayCloudTemplated base class for spray cloud. Supports atomization and break-up models.

CollidingCloud models

Collision models

These inherit from CollisionModel.

TypeDescription
NoCollisionDummy class for the none option.
PairCollisionMaterial properties can be set in detail in sub-dictionary constantProperties. Notice that this is computationally expensive

MomentumCloud models

Dispersion models

Injection models

These inherit from InjectionModel and implement how particles are injected into a continuous medium. The following table summarizes some of the available models.

TypeDescription
coneInjectionInject particles in a number of oriented cones. Particles can be generated from a single point or over a disk. Injection can be made at constant velocity, pressure, or with a flow rate and discharge coefficient.

Patch interaction models

Stochastic collision models

Surface film models

ThermoCloud models

Heat transfer models

These inherit from HeatTransferModel. It is possible to provide a Stefan flow approximation to the models by using flag BirdCorrection in the models dictionaries.

TypeDescription
NoHeatTransferDummy class for the none option.
RanzMarshallThe Ranz-Marshall Ranz1952 [15] correlation for heat transfer. For a more recent review, see e.g. Aissa2015a [16].

MPPICCloud models

Packing models

Isotropy models

Damping models

ReactingCloud models

Phase change models

These inherit from PhaseChangeModel.

TypeDescription
NoPhaseChangeDummy class for the none option.
LiquidEvaporationLiquid evaporation model using ideal gas assumption.
LiquidEvaporationBoilLiquid evaporation model using ideal gas assumption and includes boiling model based on Zuo2000a [17].

ReactingMultiphaseCloud models

Devolatilization models

Surface reaction models

SprayCloud models

Atomization models

Breakup models

These inherit from BreakupModel for handling particle breakup.

TypeDescription
NoBreakup
PilchErdman
ReitzDiwakarSecondary breakup model adapted to high pressure fuel sprays.
ReitzKHRTSecondary breakup model which uses the Kelvin-Helmholtz instability theory to predict the stripped droplets and the Raleigh-Taylor instability as well.
SHF
ETABEnhanced TAB model for non-evaporating fuel sprays.
TAB

Composition models

These inherit from CompositionModel and consists of carrier species (via thermo package), and additional liquids and solids. They are not attached to a type of cloud and each model supports their own cloud types.

TypeDescriptionSupport
NoCompositionDummy class for the none option.
SingleMixtureFractionTemplated parcel multi-phase, multi-component class.ReactingMultiphaseCloud
SinglePhaseMixtureTemplated parcel single phase, multi-component class.SprayCloud, ReactingCloud
+\end{cases}\]

where $\mathrm{Re}_{d}$ is expressed as

\[\mathrm{Re}_{d} = \dfrac{\rho\vert{}u+u^\prime-v|d}{\mu(\hat{T})}\quad\text{where}\quad\hat{T}=\dfrac{T+2T_{d}}{3}\]

With these expressions and making $C_{D}^\prime=C_{D}\mathrm{Re}_{d}$ we have the drag force over a particle of diameter $d$ expressed as

\[\vec{F}=\dfrac{3}{4}\dfrac{m\mu(\hat{T})C_{D}^\prime}{\rho_{d}d^2}\]

[!todo] The code implementation already provides both $\mu(\hat{T})$ and $\mathrm{Re}_{d}$ computed to the drag model. Additional inspection on how these quantities are evaluated is required. Also note that Amsden1989 [7] provides the equations formulated in the radius, not diameter, what might generate some confusion.

This formulation is also used as part of distortedSphereDrag implementation , which makes use of the same $C_{D}$ now referred to as $C_{D,sphere}$ with a modified law accounting for particle distortion in the breakup mechanism of fuel sprays, as discussed by Liu1993 [13]. The updated drag coefficient is then expressed in terms of drop distortion $y$ from TAB (Taylor Analogy Breakup) model from Reitz1987 [14].

\[C_{D} = C_{D,sphere}(1+2.632y)\]

[!info] The distortedSphereDrag model is not available for MPPIC clouds and it is also not used anywhere in the tutorials or source code. For not it does not work yet apparently.

Combustion models

Models inheriting from combustionModel base class. If you are reading this section you might also be interested in building the case and testing the combustion with OpenSmoke++ or Cantera.

TypeGroupDescription
EDCTurbulentEddy Dissipation Concept turbulent combustion model. Probably the most popular approach for simulation of gas combustion in industrial processes.
laminarLaminar
PaSRLaminar
FDSSingle-step
infinitelyFastChemistrySingle-step
diffusionSingle-step
zoneCombustionFilterEnable the reactions within the specified list of cell-zones and set to zero elsewhere.
noCombustionDummyDummy combustion model for 'no combustion'.

Cloud models

In OpenFOAM, a cloud designate the injection of a secondary phase, generally solid particles or droplets, in a primary continuous carrier phase. The dictionary cloudProperties is identified in tutorials related to the following solver modules:

The default version of the dictionary provided here is not yet documented as of OpenFOAM v11 and does not contain any solver specific configurations, so the users must refer to the tutorial cases for setting up their studies. A post-processing particle tracking function associated to the dictionary is provided here (untested).

Currently OpenFOAM implements the following cloud types:

CloudDescription
CollidingCloudAdds collisions to clouds.
MomentumCloudTemplated base class for momentum cloud. Adds particle forces and dispersion, injection, patch interaction, stochastic collision, and surface film models to clouds.
ParcelCloudOutermost template for parcel clouds.
ThermoCloudTemplated base class for thermodynamic cloud. Adds heat transfer.
MPPICCloudAdds MPPIC modelling to clouds.
ReactingCloudTemplated base class for reacting cloud. Supports single phase with variable composition and phase change modeling.
ReactingMultiphaseCloudTemplated base class for multiphase reacting cloud. Supports multiphase composition, devolatilization, and surface reactions.
SprayCloudTemplated base class for spray cloud. Supports atomization and break-up models.

CollidingCloud models

Collision models

These inherit from CollisionModel.

TypeDescription
NoCollisionDummy class for the none option.
PairCollisionMaterial properties can be set in detail in sub-dictionary constantProperties. Notice that this is computationally expensive

MomentumCloud models

Dispersion models

Injection models

These inherit from InjectionModel and implement how particles are injected into a continuous medium. The following table summarizes some of the available models.

TypeDescription
coneInjectionInject particles in a number of oriented cones. Particles can be generated from a single point or over a disk. Injection can be made at constant velocity, pressure, or with a flow rate and discharge coefficient.

Patch interaction models

Stochastic collision models

Surface film models

ThermoCloud models

Heat transfer models

These inherit from HeatTransferModel. It is possible to provide a Stefan flow approximation to the models by using flag BirdCorrection in the models dictionaries.

TypeDescription
NoHeatTransferDummy class for the none option.
RanzMarshallThe Ranz-Marshall Ranz1952 [15] correlation for heat transfer. For a more recent review, see e.g. Aissa2015a [16].

MPPICCloud models

Packing models

Isotropy models

Damping models

ReactingCloud models

Phase change models

These inherit from PhaseChangeModel.

TypeDescription
NoPhaseChangeDummy class for the none option.
LiquidEvaporationLiquid evaporation model using ideal gas assumption.
LiquidEvaporationBoilLiquid evaporation model using ideal gas assumption and includes boiling model based on Zuo2000a [17].

ReactingMultiphaseCloud models

Devolatilization models

Surface reaction models

SprayCloud models

Atomization models

Breakup models

These inherit from BreakupModel for handling particle breakup.

TypeDescription
NoBreakup
PilchErdman
ReitzDiwakarSecondary breakup model adapted to high pressure fuel sprays.
ReitzKHRTSecondary breakup model which uses the Kelvin-Helmholtz instability theory to predict the stripped droplets and the Raleigh-Taylor instability as well.
SHF
ETABEnhanced TAB model for non-evaporating fuel sprays.
TAB

Composition models

These inherit from CompositionModel and consists of carrier species (via thermo package), and additional liquids and solids. They are not attached to a type of cloud and each model supports their own cloud types.

TypeDescriptionSupport
NoCompositionDummy class for the none option.
SingleMixtureFractionTemplated parcel multi-phase, multi-component class.ReactingMultiphaseCloud
SinglePhaseMixtureTemplated parcel single phase, multi-component class.SprayCloud, ReactingCloud
diff --git a/dev/Modules/Cantera/index.html b/dev/Modules/Cantera/index.html index e0d9a1616..4f0ad5e5c 100644 --- a/dev/Modules/Cantera/index.html +++ b/dev/Modules/Cantera/index.html @@ -1,2 +1,2 @@ -Cantera · WallyToolbox.jl

Cantera

This page documents the wrapper written around the C-API of Cantera. The status of development is documented here. Its goal is not to mimic the original API or provide an interface equivalent to the Python package, but something in line with the functioning of the parent toolbox.

Status of Cantera wrapper

This is an experimental interface to Cantera library based on its C-API version 3.0. This interface is at its early days and has developped for Julia >= 1.9.0 under Windows 10/11. When it is stable enough it will be published as a package and tested under other platforms.

API of ct.h

Documentation here.

StatusHeaderFunctionModule
Testedct.hct_appdeleteinlined
Structct.hsoln_newSolutionwrapped
ct.hsoln_newInterfacewaitlist
Testedct.hsoln_delinlined
Testedct.hsoln_nameinlined
Structct.hsoln_thermoinlined
Structct.hsoln_kineticsinlined
Structct.hsoln_transportinlined
Testedct.hsoln_setTransportModelwrapped
Testedct.hsoln_nAdjacentinlined
ct.hsoln_adjacentwaitlist
Testedct.hthermo_newFromFilewrapped
Testedct.hthermo_delinlined
Structct.hthermo_nElementsinlined
Structct.hthermo_nSpeciesinlined
Testedct.hthermo_temperatureinlined
Structct.hthermo_setTemperatureinlined
Testedct.hthermo_densityinlined
Testedct.hthermo_setDensityinlined
Testedct.hthermo_molarDensityinlined
Testedct.hthermo_setMolarDensityinlined
Testedct.hthermo_meanMolecularWeightinlined
Testedct.hthermo_moleFractioninlined
Testedct.hthermo_massFractioninlined
Structct.hthermo_getMoleFractionsinlined
Testedct.hthermo_getMassFractionsinlined
Structct.hthermo_setMoleFractionsinlined
Testedct.hthermo_setMassFractionsinlined
ct.hthermo_setMoleFractionsByName
ct.hthermo_setMassFractionsByName
ct.hthermo_getAtomicWeights
ct.hthermo_getMolecularWeights
ct.hthermo_getCharges
ct.hthermo_getElementName
ct.hthermo_getSpeciesName
ct.hthermo_getName
ct.hthermo_setName
ct.hthermo_elementIndex
ct.hthermo_speciesIndex
ct.hthermo_report
Testedct.hthermo_print
ct.hthermo_nAtoms
ct.hthermo_addElement
ct.hthermo_getEosType
To testct.hthermo_refPressureinlined
To testct.hthermo_minTempinlined
To testct.hthermo_maxTempinlined
To testct.hthermoenthalpymoleinlined
To testct.hthermointEnergymoleinlined
To testct.hthermoentropymoleinlined
To testct.hthermogibbsmoleinlined
To testct.hthermocpmoleinlined
To testct.hthermocvmoleinlined
To testct.hthermo_pressureinlined
Structct.hthermo_setPressureinlined
To testct.hthermoenthalpymassinlined
To testct.hthermointEnergymassinlined
To testct.hthermoentropymassinlined
To testct.hthermogibbsmassinlined
To testct.hthermocpmassinlined
To testct.hthermocvmassinlined
To testct.hthermo_electricPotentialinlined
To testct.hthermo_thermalExpansionCoeffinlined
To testct.hthermo_isothermalCompressibilityinlined
ct.hthermo_chemPotentials
ct.hthermogetEnthalpiesRT
ct.hthermogetEntropiesR
ct.hthermogetCpR
ct.hthermo_setElectricPotential
ct.hthermosetTP
ct.hthermosetTD
ct.hthermosetRP
ct.hthermosetDP
ct.hthermosetHP
ct.hthermosetUV
ct.hthermosetSV
ct.hthermosetSP
ct.hthermosetST
ct.hthermosetTV
ct.hthermosetPV
ct.hthermosetUP
ct.hthermosetVH
ct.hthermosetTH
ct.hthermosetSH
Testedct.hthermo_equilibrate
To testct.hthermo_critTemperatureinlined
To testct.hthermo_critPressureinlined
To testct.hthermo_critDensityinlined
To testct.hthermo_vaporFractioninlined
ct.hthermo_satTemperature
ct.hthermo_satPressure
ct.hthermosetStatePsat
ct.hthermosetStateTsat
ct.hkin_newFromFile
To testct.hkin_delinlined
To testct.hkin_nSpeciesinlined
To testct.hkin_nReactionsinlined
To testct.hkin_nPhasesinlined
ct.hkin_phaseIndex
To testct.hkin_reactionPhaseIndexinlined
ct.hkin_reactantStoichCoeff
ct.hkin_productStoichCoeff
ct.hkin_getReactionType
ct.hkin_getFwdRatesOfProgress
ct.hkin_getRevRatesOfProgress
ct.hkin_getNetRatesOfProgress
ct.hkin_getEquilibriumConstants
ct.hkin_getFwdRateConstants
ct.hkin_getRevRateConstants
ct.hkin_getDelta
ct.hkin_getCreationRates
ct.hkin_getDestructionRates
ct.hkin_getNetProductionRates
ct.hkin_getSourceTerms
To testct.hkin_multiplierinlined
ct.hkin_getReactionString
ct.hkin_setMultiplier
To testct.hkin_isReversibleinlined
ct.hkin_getType
To testct.hkin_startinlined
ct.hkin_speciesIndex
To testct.hkin_advanceCoveragesinlined
To testct.hkin_phaseinlined
To testct.htrans_newDefaultinlined
ct.htrans_new
To testct.htrans_delinlined
To testct.htrans_transportModelinlined
To testct.htrans_viscosityinlined
To testct.htrans_electricalConductivityinlined
ct.htrans_thermalConductivity
ct.htrans_getThermalDiffCoeffs
ct.htrans_getMixDiffCoeffs
ct.htrans_getBinDiffCoeffs
ct.htrans_getMultiDiffCoeffs
ct.htrans_setParameters
ct.htrans_getMolarFluxes
ct.htrans_getMassFluxes
ct.hct_getCanteraError
ct.hct_setLogWriter
ct.hct_setLogCallback
ct.hct_addCanteraDirectory
ct.hct_getDataDirectories
ct.hct_getCanteraVersion
ct.hct_getGitCommit
Testedct.hctsuppressthermo_warningsinlined
Testedct.hctuselegacyrateconstantsinlined
Testedct.hct_clearStorageinlined
Testedct.hct_resetStorageinlined

API of ctfunc.h

Documentation here.

StatusHeaderFunctionModule
ctfunc.hfunc_new
ctfunc.hfuncnewbasic
ctfunc.hfuncnewadvanced
ctfunc.hfuncnewcompound
ctfunc.hfuncnewmodified
To testctfunc.hfunc_delinlined
ctfunc.hfunc_type
To testctfunc.hfunc_valueinlined
To testctfunc.hfunc_derivativeinlined
To testctfunc.hfunc_duplicateinlined
ctfunc.hfunc_write
To testctfunc.hct_clearFuncinlined

API of ctmultiphase.h

Documentation here.

StatusHeaderFunctionModule
To testctmultiphase.hmix_newinlined
To testctmultiphase.hmix_delinlined
To testctmultiphase.hct_clearMixinlined
ctmultiphase.hmix_addPhase
To testctmultiphase.hmix_initinlined
To testctmultiphase.hmix_updatePhasesinlined
To testctmultiphase.hmix_nElementsinlined
ctmultiphase.hmix_elementIndex
ctmultiphase.hmix_speciesIndex
To testctmultiphase.hmix_nSpeciesinlined
To testctmultiphase.hmix_setTemperatureinlined
To testctmultiphase.hmix_temperatureinlined
To testctmultiphase.hmix_minTempinlined
To testctmultiphase.hmix_maxTempinlined
To testctmultiphase.hmix_chargeinlined
To testctmultiphase.hmix_phaseChargeinlined
To testctmultiphase.hmix_setPressureinlined
To testctmultiphase.hmix_pressureinlined
To testctmultiphase.hmix_nAtomsinlined
To testctmultiphase.hmix_nPhasesinlined
To testctmultiphase.hmix_phaseMolesinlined
ctmultiphase.hmix_setPhaseMoles
ctmultiphase.hmix_setMoles
ctmultiphase.hmix_setMolesByName
To testctmultiphase.hmix_speciesMolesinlined
To testctmultiphase.hmix_elementMolesinlined
ctmultiphase.hmix_equilibrate
ctmultiphase.hmix_getChemPotentials
To testctmultiphase.hmix_enthalpyinlined
To testctmultiphase.hmix_entropyinlined
To testctmultiphase.hmix_gibbsinlined
To testctmultiphase.hmix_cpinlined
To testctmultiphase.hmix_volumeinlined
To testctmultiphase.hmix_speciesPhaseIndexinlined
To testctmultiphase.hmix_moleFractioninlined

API of ctonedim.h

Documentation here.

StatusHeaderFunctionModule
To testctonedim.hct_clearOneDiminlined
ctonedim.hdomain_new
To testctonedim.hdomain_delinlined
To testctonedim.hdomain_typeinlined
ctonedim.hdomain_type3
To testctonedim.hdomain_indexinlined
To testctonedim.hdomain_nComponentsinlined
To testctonedim.hdomain_nPointsinlined
ctonedim.hdomain_componentName
ctonedim.hdomain_componentIndex
ctonedim.hdomain_setBounds
To testctonedim.hdomain_lowerBoundinlined
To testctonedim.hdomain_upperBoundinlined
ctonedim.hdomain_setSteadyTolerances
ctonedim.hdomain_setTransientTolerances
To testctonedim.hdomain_rtolinlined
To testctonedim.hdomain_atolinlined
ctonedim.hdomain_setupGrid
ctonedim.hdomain_setID
To testctonedim.hdomain_gridinlined
To testctonedim.hbdry_setMdotinlined
To testctonedim.hbdry_setTemperatureinlined
To testctonedim.hbdry_setSpreadRateinlined
ctonedim.hbdry_setMoleFractions
To testctonedim.hbdry_temperatureinlined
To testctonedim.hbdry_spreadRateinlined
To testctonedim.hbdry_massFractioninlined
To testctonedim.hbdry_mdotinlined
To testctonedim.hreactingsurf_setkineticsmgrinlined
To testctonedim.hreactingsurf_enableCoverageEqsinlined
To testctonedim.hinlet_newinlined
To testctonedim.houtlet_newinlined
To testctonedim.houtletres_newinlined
To testctonedim.hsymm_newinlined
To testctonedim.hsurf_newinlined
To testctonedim.hreactingsurf_newinlined
To testctonedim.hinlet_setSpreadRateinlined
ctonedim.hstflow_new
To testctonedim.hstflow_setTransportinlined
To testctonedim.hstflow_enableSoretinlined
To testctonedim.hstflow_setPressureinlined
To testctonedim.hstflow_pressureinlined
ctonedim.hstflow_setFixedTempProfile
To testctonedim.hstflow_solveEnergyEqninlined
ctonedim.hsim1D_new
To testctonedim.hsim1D_delinlined
ctonedim.hsim1D_setValue
ctonedim.hsim1D_setProfile
ctonedim.hsim1D_setFlatProfile
ctonedim.hsim1D_show
ctonedim.hsim1D_showSolution
ctonedim.hsim1D_setTimeStep
To testctonedim.hsim1D_getInitialSolninlined
ctonedim.hsim1D_solve
To testctonedim.hsim1D_refineinlined
ctonedim.hsim1D_setRefineCriteria
ctonedim.hsim1D_setGridMin
ctonedim.hsim1D_save
ctonedim.hsim1D_restore
To testctonedim.hsim1D_writeStatsinlined
ctonedim.hsim1D_domainIndex
ctonedim.hsim1D_value
ctonedim.hsim1D_workValue
To testctonedim.hsim1D_evalinlined
To testctonedim.hsim1D_setMaxJacAgeinlined
To testctonedim.hsim1D_setFixedTemperatureinlined

API of ctreactor.h

Documentation here.

StatusHeaderFunctionModule
ctreactor.hreactor_new
To testctreactor.hreactor_delinlined
To testctreactor.hreactor_setInitialVolumeinlined
To testctreactor.hreactor_setChemistryinlined
To testctreactor.hreactor_setEnergyinlined
To testctreactor.hreactor_setThermoMgrinlined
To testctreactor.hreactor_setKineticsMgrinlined
To testctreactor.hreactor_insertinlined
To testctreactor.hreactor_massinlined
To testctreactor.hreactor_volumeinlined
To testctreactor.hreactor_densityinlined
To testctreactor.hreactor_temperatureinlined
To testctreactor.hreactorenthalpymassinlined
To testctreactor.hreactorintEnergymassinlined
To testctreactor.hreactor_pressureinlined
To testctreactor.hreactor_massFractioninlined
To testctreactor.hreactor_nSensParamsinlined
To testctreactor.hreactor_addSensitivityReactioninlined
To testctreactor.hflowReactor_setMassFlowRateinlined
To testctreactor.hreactornet_newinlined
To testctreactor.hreactornet_delinlined
To testctreactor.hreactornet_setInitialTimeinlined
To testctreactor.hreactornet_setMaxTimeStepinlined
To testctreactor.hreactornet_setTolerancesinlined
To testctreactor.hreactornet_setSensitivityTolerancesinlined
To testctreactor.hreactornet_addreactorinlined
To testctreactor.hreactornet_advanceinlined
To testctreactor.hreactornet_stepinlined
To testctreactor.hreactornet_timeinlined
To testctreactor.hreactornet_rtolinlined
To testctreactor.hreactornet_atolinlined
ctreactor.hreactornet_sensitivity
ctreactor.hflowdev_new
To testctreactor.hflowdev_delinlined
To testctreactor.hflowdev_installinlined
To testctreactor.hflowdev_setMasterinlined
To testctreactor.hflowdev_setPrimaryinlined
To testctreactor.hflowdev_massFlowRateinlined
To testctreactor.hflowdev_setMassFlowCoeffinlined
To testctreactor.hflowdev_setValveCoeffinlined
To testctreactor.hflowdev_setPressureCoeffinlined
To testctreactor.hflowdev_setPressureFunctioninlined
To testctreactor.hflowdev_setTimeFunctioninlined
ctreactor.hwall_new
To testctreactor.hwall_delinlined
To testctreactor.hwall_installinlined
To testctreactor.hwall_vdotinlined
To testctreactor.hwall_expansionRateinlined
To testctreactor.hwall_Qinlined
To testctreactor.hwall_heatRateinlined
To testctreactor.hwall_areainlined
To testctreactor.hwall_setAreainlined
To testctreactor.hwall_setThermalResistanceinlined
To testctreactor.hwall_setHeatTransferCoeffinlined
To testctreactor.hwall_setHeatFluxinlined
To testctreactor.hwall_setExpansionRateCoeffinlined
To testctreactor.hwall_setVelocityinlined
To testctreactor.hwall_setEmissivityinlined
To testctreactor.hwall_readyinlined
To testctreactor.hreactorsurface_newinlined
To testctreactor.hreactorsurface_delinlined
To testctreactor.hreactorsurface_installinlined
To testctreactor.hreactorsurface_setkineticsinlined
To testctreactor.hreactorsurface_areainlined
To testctreactor.hreactorsurface_setAreainlined
To testctreactor.hreactorsurface_addSensitivityReactioninlined
To testctreactor.hct_clearReactorsinlined

API of ctrpath.h

Documentation here.

StatusHeaderFunctionModule
To testctrpath.hrdiag_newinlined
To testctrpath.hrdiag_delinlined
To testctrpath.hrdiag_detailedinlined
To testctrpath.hrdiag_briefinlined
To testctrpath.hrdiag_setThresholdinlined
ctrpath.hrdiag_setBoldColor
ctrpath.hrdiag_setNormalColor
ctrpath.hrdiag_setDashedColor
ctrpath.hrdiag_setDotOptions
To testctrpath.hrdiag_setBoldThresholdinlined
To testctrpath.hrdiag_setNormalThresholdinlined
To testctrpath.hrdiag_setLabelThresholdinlined
To testctrpath.hrdiag_setScaleinlined
To testctrpath.hrdiag_setFlowTypeinlined
To testctrpath.hrdiag_setArrowWidthinlined
ctrpath.hrdiag_setTitle
ctrpath.hrdiag_write
To testctrpath.hrdiag_addinlined
ctrpath.hrdiag_findMajor
ctrpath.hrdiag_setFont
To testctrpath.hrdiag_displayOnlyinlined
To testctrpath.hrbuild_newinlined
To testctrpath.hrbuild_delinlined
ctrpath.hrbuild_init
ctrpath.hrbuild_build
To testctrpath.hct_clearReactionPathinlined

API of ctsurf.h

Documentation here.

StatusHeaderFunctionModule
ctsurf.hsurf_setCoverages
ctsurf.hsurf_getCoverages
ctsurf.hsurf_setConcentrations
ctsurf.hsurf_getConcentrations
To testctsurf.hsurf_setSiteDensityinlined
To testctsurf.hsurf_siteDensityinlined
ctsurf.hsurf_setCoveragesByName

Cantera samples

+Cantera · WallyToolbox.jl

Cantera

This page documents the wrapper written around the C-API of Cantera. The status of development is documented here. Its goal is not to mimic the original API or provide an interface equivalent to the Python package, but something in line with the functioning of the parent toolbox.

Status of Cantera wrapper

This is an experimental interface to Cantera library based on its C-API version 3.0. This interface is at its early days and has developped for Julia >= 1.9.0 under Windows 10/11. When it is stable enough it will be published as a package and tested under other platforms.

API of ct.h

Documentation here.

StatusHeaderFunctionModule
Testedct.hct_appdeleteinlined
Structct.hsoln_newSolutionwrapped
ct.hsoln_newInterfacewaitlist
Testedct.hsoln_delinlined
Testedct.hsoln_nameinlined
Structct.hsoln_thermoinlined
Structct.hsoln_kineticsinlined
Structct.hsoln_transportinlined
Testedct.hsoln_setTransportModelwrapped
Testedct.hsoln_nAdjacentinlined
ct.hsoln_adjacentwaitlist
Testedct.hthermo_newFromFilewrapped
Testedct.hthermo_delinlined
Structct.hthermo_nElementsinlined
Structct.hthermo_nSpeciesinlined
Testedct.hthermo_temperatureinlined
Structct.hthermo_setTemperatureinlined
Testedct.hthermo_densityinlined
Testedct.hthermo_setDensityinlined
Testedct.hthermo_molarDensityinlined
Testedct.hthermo_setMolarDensityinlined
Testedct.hthermo_meanMolecularWeightinlined
Testedct.hthermo_moleFractioninlined
Testedct.hthermo_massFractioninlined
Structct.hthermo_getMoleFractionsinlined
Testedct.hthermo_getMassFractionsinlined
Structct.hthermo_setMoleFractionsinlined
Testedct.hthermo_setMassFractionsinlined
ct.hthermo_setMoleFractionsByName
ct.hthermo_setMassFractionsByName
ct.hthermo_getAtomicWeights
ct.hthermo_getMolecularWeights
ct.hthermo_getCharges
ct.hthermo_getElementName
ct.hthermo_getSpeciesName
ct.hthermo_getName
ct.hthermo_setName
ct.hthermo_elementIndex
ct.hthermo_speciesIndex
ct.hthermo_report
Testedct.hthermo_print
ct.hthermo_nAtoms
ct.hthermo_addElement
ct.hthermo_getEosType
To testct.hthermo_refPressureinlined
To testct.hthermo_minTempinlined
To testct.hthermo_maxTempinlined
To testct.hthermoenthalpymoleinlined
To testct.hthermointEnergymoleinlined
To testct.hthermoentropymoleinlined
To testct.hthermogibbsmoleinlined
To testct.hthermocpmoleinlined
To testct.hthermocvmoleinlined
To testct.hthermo_pressureinlined
Structct.hthermo_setPressureinlined
To testct.hthermoenthalpymassinlined
To testct.hthermointEnergymassinlined
To testct.hthermoentropymassinlined
To testct.hthermogibbsmassinlined
To testct.hthermocpmassinlined
To testct.hthermocvmassinlined
To testct.hthermo_electricPotentialinlined
To testct.hthermo_thermalExpansionCoeffinlined
To testct.hthermo_isothermalCompressibilityinlined
ct.hthermo_chemPotentials
ct.hthermogetEnthalpiesRT
ct.hthermogetEntropiesR
ct.hthermogetCpR
ct.hthermo_setElectricPotential
ct.hthermosetTP
ct.hthermosetTD
ct.hthermosetRP
ct.hthermosetDP
ct.hthermosetHP
ct.hthermosetUV
ct.hthermosetSV
ct.hthermosetSP
ct.hthermosetST
ct.hthermosetTV
ct.hthermosetPV
ct.hthermosetUP
ct.hthermosetVH
ct.hthermosetTH
ct.hthermosetSH
Testedct.hthermo_equilibrate
To testct.hthermo_critTemperatureinlined
To testct.hthermo_critPressureinlined
To testct.hthermo_critDensityinlined
To testct.hthermo_vaporFractioninlined
ct.hthermo_satTemperature
ct.hthermo_satPressure
ct.hthermosetStatePsat
ct.hthermosetStateTsat
ct.hkin_newFromFile
To testct.hkin_delinlined
To testct.hkin_nSpeciesinlined
To testct.hkin_nReactionsinlined
To testct.hkin_nPhasesinlined
ct.hkin_phaseIndex
To testct.hkin_reactionPhaseIndexinlined
ct.hkin_reactantStoichCoeff
ct.hkin_productStoichCoeff
ct.hkin_getReactionType
ct.hkin_getFwdRatesOfProgress
ct.hkin_getRevRatesOfProgress
ct.hkin_getNetRatesOfProgress
ct.hkin_getEquilibriumConstants
ct.hkin_getFwdRateConstants
ct.hkin_getRevRateConstants
ct.hkin_getDelta
ct.hkin_getCreationRates
ct.hkin_getDestructionRates
ct.hkin_getNetProductionRates
ct.hkin_getSourceTerms
To testct.hkin_multiplierinlined
ct.hkin_getReactionString
ct.hkin_setMultiplier
To testct.hkin_isReversibleinlined
ct.hkin_getType
To testct.hkin_startinlined
ct.hkin_speciesIndex
To testct.hkin_advanceCoveragesinlined
To testct.hkin_phaseinlined
To testct.htrans_newDefaultinlined
ct.htrans_new
To testct.htrans_delinlined
To testct.htrans_transportModelinlined
To testct.htrans_viscosityinlined
To testct.htrans_electricalConductivityinlined
ct.htrans_thermalConductivity
ct.htrans_getThermalDiffCoeffs
ct.htrans_getMixDiffCoeffs
ct.htrans_getBinDiffCoeffs
ct.htrans_getMultiDiffCoeffs
ct.htrans_setParameters
ct.htrans_getMolarFluxes
ct.htrans_getMassFluxes
ct.hct_getCanteraError
ct.hct_setLogWriter
ct.hct_setLogCallback
ct.hct_addCanteraDirectory
ct.hct_getDataDirectories
ct.hct_getCanteraVersion
ct.hct_getGitCommit
Testedct.hctsuppressthermo_warningsinlined
Testedct.hctuselegacyrateconstantsinlined
Testedct.hct_clearStorageinlined
Testedct.hct_resetStorageinlined

API of ctfunc.h

Documentation here.

StatusHeaderFunctionModule
ctfunc.hfunc_new
ctfunc.hfuncnewbasic
ctfunc.hfuncnewadvanced
ctfunc.hfuncnewcompound
ctfunc.hfuncnewmodified
To testctfunc.hfunc_delinlined
ctfunc.hfunc_type
To testctfunc.hfunc_valueinlined
To testctfunc.hfunc_derivativeinlined
To testctfunc.hfunc_duplicateinlined
ctfunc.hfunc_write
To testctfunc.hct_clearFuncinlined

API of ctmultiphase.h

Documentation here.

StatusHeaderFunctionModule
To testctmultiphase.hmix_newinlined
To testctmultiphase.hmix_delinlined
To testctmultiphase.hct_clearMixinlined
ctmultiphase.hmix_addPhase
To testctmultiphase.hmix_initinlined
To testctmultiphase.hmix_updatePhasesinlined
To testctmultiphase.hmix_nElementsinlined
ctmultiphase.hmix_elementIndex
ctmultiphase.hmix_speciesIndex
To testctmultiphase.hmix_nSpeciesinlined
To testctmultiphase.hmix_setTemperatureinlined
To testctmultiphase.hmix_temperatureinlined
To testctmultiphase.hmix_minTempinlined
To testctmultiphase.hmix_maxTempinlined
To testctmultiphase.hmix_chargeinlined
To testctmultiphase.hmix_phaseChargeinlined
To testctmultiphase.hmix_setPressureinlined
To testctmultiphase.hmix_pressureinlined
To testctmultiphase.hmix_nAtomsinlined
To testctmultiphase.hmix_nPhasesinlined
To testctmultiphase.hmix_phaseMolesinlined
ctmultiphase.hmix_setPhaseMoles
ctmultiphase.hmix_setMoles
ctmultiphase.hmix_setMolesByName
To testctmultiphase.hmix_speciesMolesinlined
To testctmultiphase.hmix_elementMolesinlined
ctmultiphase.hmix_equilibrate
ctmultiphase.hmix_getChemPotentials
To testctmultiphase.hmix_enthalpyinlined
To testctmultiphase.hmix_entropyinlined
To testctmultiphase.hmix_gibbsinlined
To testctmultiphase.hmix_cpinlined
To testctmultiphase.hmix_volumeinlined
To testctmultiphase.hmix_speciesPhaseIndexinlined
To testctmultiphase.hmix_moleFractioninlined

API of ctonedim.h

Documentation here.

StatusHeaderFunctionModule
To testctonedim.hct_clearOneDiminlined
ctonedim.hdomain_new
To testctonedim.hdomain_delinlined
To testctonedim.hdomain_typeinlined
ctonedim.hdomain_type3
To testctonedim.hdomain_indexinlined
To testctonedim.hdomain_nComponentsinlined
To testctonedim.hdomain_nPointsinlined
ctonedim.hdomain_componentName
ctonedim.hdomain_componentIndex
ctonedim.hdomain_setBounds
To testctonedim.hdomain_lowerBoundinlined
To testctonedim.hdomain_upperBoundinlined
ctonedim.hdomain_setSteadyTolerances
ctonedim.hdomain_setTransientTolerances
To testctonedim.hdomain_rtolinlined
To testctonedim.hdomain_atolinlined
ctonedim.hdomain_setupGrid
ctonedim.hdomain_setID
To testctonedim.hdomain_gridinlined
To testctonedim.hbdry_setMdotinlined
To testctonedim.hbdry_setTemperatureinlined
To testctonedim.hbdry_setSpreadRateinlined
ctonedim.hbdry_setMoleFractions
To testctonedim.hbdry_temperatureinlined
To testctonedim.hbdry_spreadRateinlined
To testctonedim.hbdry_massFractioninlined
To testctonedim.hbdry_mdotinlined
To testctonedim.hreactingsurf_setkineticsmgrinlined
To testctonedim.hreactingsurf_enableCoverageEqsinlined
To testctonedim.hinlet_newinlined
To testctonedim.houtlet_newinlined
To testctonedim.houtletres_newinlined
To testctonedim.hsymm_newinlined
To testctonedim.hsurf_newinlined
To testctonedim.hreactingsurf_newinlined
To testctonedim.hinlet_setSpreadRateinlined
ctonedim.hstflow_new
To testctonedim.hstflow_setTransportinlined
To testctonedim.hstflow_enableSoretinlined
To testctonedim.hstflow_setPressureinlined
To testctonedim.hstflow_pressureinlined
ctonedim.hstflow_setFixedTempProfile
To testctonedim.hstflow_solveEnergyEqninlined
ctonedim.hsim1D_new
To testctonedim.hsim1D_delinlined
ctonedim.hsim1D_setValue
ctonedim.hsim1D_setProfile
ctonedim.hsim1D_setFlatProfile
ctonedim.hsim1D_show
ctonedim.hsim1D_showSolution
ctonedim.hsim1D_setTimeStep
To testctonedim.hsim1D_getInitialSolninlined
ctonedim.hsim1D_solve
To testctonedim.hsim1D_refineinlined
ctonedim.hsim1D_setRefineCriteria
ctonedim.hsim1D_setGridMin
ctonedim.hsim1D_save
ctonedim.hsim1D_restore
To testctonedim.hsim1D_writeStatsinlined
ctonedim.hsim1D_domainIndex
ctonedim.hsim1D_value
ctonedim.hsim1D_workValue
To testctonedim.hsim1D_evalinlined
To testctonedim.hsim1D_setMaxJacAgeinlined
To testctonedim.hsim1D_setFixedTemperatureinlined

API of ctreactor.h

Documentation here.

StatusHeaderFunctionModule
ctreactor.hreactor_new
To testctreactor.hreactor_delinlined
To testctreactor.hreactor_setInitialVolumeinlined
To testctreactor.hreactor_setChemistryinlined
To testctreactor.hreactor_setEnergyinlined
To testctreactor.hreactor_setThermoMgrinlined
To testctreactor.hreactor_setKineticsMgrinlined
To testctreactor.hreactor_insertinlined
To testctreactor.hreactor_massinlined
To testctreactor.hreactor_volumeinlined
To testctreactor.hreactor_densityinlined
To testctreactor.hreactor_temperatureinlined
To testctreactor.hreactorenthalpymassinlined
To testctreactor.hreactorintEnergymassinlined
To testctreactor.hreactor_pressureinlined
To testctreactor.hreactor_massFractioninlined
To testctreactor.hreactor_nSensParamsinlined
To testctreactor.hreactor_addSensitivityReactioninlined
To testctreactor.hflowReactor_setMassFlowRateinlined
To testctreactor.hreactornet_newinlined
To testctreactor.hreactornet_delinlined
To testctreactor.hreactornet_setInitialTimeinlined
To testctreactor.hreactornet_setMaxTimeStepinlined
To testctreactor.hreactornet_setTolerancesinlined
To testctreactor.hreactornet_setSensitivityTolerancesinlined
To testctreactor.hreactornet_addreactorinlined
To testctreactor.hreactornet_advanceinlined
To testctreactor.hreactornet_stepinlined
To testctreactor.hreactornet_timeinlined
To testctreactor.hreactornet_rtolinlined
To testctreactor.hreactornet_atolinlined
ctreactor.hreactornet_sensitivity
ctreactor.hflowdev_new
To testctreactor.hflowdev_delinlined
To testctreactor.hflowdev_installinlined
To testctreactor.hflowdev_setMasterinlined
To testctreactor.hflowdev_setPrimaryinlined
To testctreactor.hflowdev_massFlowRateinlined
To testctreactor.hflowdev_setMassFlowCoeffinlined
To testctreactor.hflowdev_setValveCoeffinlined
To testctreactor.hflowdev_setPressureCoeffinlined
To testctreactor.hflowdev_setPressureFunctioninlined
To testctreactor.hflowdev_setTimeFunctioninlined
ctreactor.hwall_new
To testctreactor.hwall_delinlined
To testctreactor.hwall_installinlined
To testctreactor.hwall_vdotinlined
To testctreactor.hwall_expansionRateinlined
To testctreactor.hwall_Qinlined
To testctreactor.hwall_heatRateinlined
To testctreactor.hwall_areainlined
To testctreactor.hwall_setAreainlined
To testctreactor.hwall_setThermalResistanceinlined
To testctreactor.hwall_setHeatTransferCoeffinlined
To testctreactor.hwall_setHeatFluxinlined
To testctreactor.hwall_setExpansionRateCoeffinlined
To testctreactor.hwall_setVelocityinlined
To testctreactor.hwall_setEmissivityinlined
To testctreactor.hwall_readyinlined
To testctreactor.hreactorsurface_newinlined
To testctreactor.hreactorsurface_delinlined
To testctreactor.hreactorsurface_installinlined
To testctreactor.hreactorsurface_setkineticsinlined
To testctreactor.hreactorsurface_areainlined
To testctreactor.hreactorsurface_setAreainlined
To testctreactor.hreactorsurface_addSensitivityReactioninlined
To testctreactor.hct_clearReactorsinlined

API of ctrpath.h

Documentation here.

StatusHeaderFunctionModule
To testctrpath.hrdiag_newinlined
To testctrpath.hrdiag_delinlined
To testctrpath.hrdiag_detailedinlined
To testctrpath.hrdiag_briefinlined
To testctrpath.hrdiag_setThresholdinlined
ctrpath.hrdiag_setBoldColor
ctrpath.hrdiag_setNormalColor
ctrpath.hrdiag_setDashedColor
ctrpath.hrdiag_setDotOptions
To testctrpath.hrdiag_setBoldThresholdinlined
To testctrpath.hrdiag_setNormalThresholdinlined
To testctrpath.hrdiag_setLabelThresholdinlined
To testctrpath.hrdiag_setScaleinlined
To testctrpath.hrdiag_setFlowTypeinlined
To testctrpath.hrdiag_setArrowWidthinlined
ctrpath.hrdiag_setTitle
ctrpath.hrdiag_write
To testctrpath.hrdiag_addinlined
ctrpath.hrdiag_findMajor
ctrpath.hrdiag_setFont
To testctrpath.hrdiag_displayOnlyinlined
To testctrpath.hrbuild_newinlined
To testctrpath.hrbuild_delinlined
ctrpath.hrbuild_init
ctrpath.hrbuild_build
To testctrpath.hct_clearReactionPathinlined

API of ctsurf.h

Documentation here.

StatusHeaderFunctionModule
ctsurf.hsurf_setCoverages
ctsurf.hsurf_getCoverages
ctsurf.hsurf_setConcentrations
ctsurf.hsurf_getConcentrations
To testctsurf.hsurf_setSiteDensityinlined
To testctsurf.hsurf_siteDensityinlined
ctsurf.hsurf_setCoveragesByName

Cantera samples

diff --git a/dev/Modules/DryCombustion/index.html b/dev/Modules/DryCombustion/index.html index 63644a4d3..ee440b176 100644 --- a/dev/Modules/DryCombustion/index.html +++ b/dev/Modules/DryCombustion/index.html @@ -8,7 +8,7 @@ 0.0 julia> String(fuel) -"C(10.0000)H(8.0116)O(0.0000)"source

A simple empirical fuel complete combustion can be represented by the following chemical equation:

\[1\:\mathrm{C}_x\mathrm{H}_y\mathrm{O}_z + a\:\mathrm{O}_2 + b\:\mathrm{N}_2 \rightarrow +"C(10.0000)H(8.0116)O(0.0000)"source

A simple empirical fuel complete combustion can be represented by the following chemical equation:

\[1\:\mathrm{C}_x\mathrm{H}_y\mathrm{O}_z + a\:\mathrm{O}_2 + b\:\mathrm{N}_2 \rightarrow x\:\mathrm{CO}_2 + \dfrac{y}{2}\:\mathrm{H}_2\mathrm{O} + b\:\mathrm{N}_2\]

Because for HFO representation will generally provide sulfur and nitrogen, the oxidation of these elements may be included in the balance and the previous reaction can be modified to:

\[1\:\mathrm{C}_x\mathrm{H}_y\mathrm{O}_z\mathrm{N}_n\mathrm{S}_s + a\:\mathrm{O}_2 + b\:\mathrm{N}_2 @@ -22,10 +22,10 @@ + b\:\mathrm{N}_2\]

Each element in carbon, hydrogen, sulfur, and nitrogen is present in a single oxide (here we assume $\mathrm{N}_2$ does not participate in oxidation, what would require equilibrium calculations with an enthalpy of formation of the empirical fuel that is generally unavailable - otherwise we would use the actual molecular representation of the substance), and balancing the right-hand side of the equation is trivial; one can derive the value of $a$ that remains compatible with oxygen content in fuel as:

\[a = \dfrac{1}{2}\left(2x+2s+n+\dfrac{y}{2}-z\right)\]

With this value it is trivial to find out the required mass flow rate of oxidizer. This is implemented in oxidizer_mass_flow_rate as documented below. Notice that this function will fail if one of the required elements in the above equation is missing. The presence of nitrogen oxides and sulfur is fuel is neglected in this calculations and one must assess whether they should be considered in a certain analysis prior to using this function.

DryCombustion.oxidizer_mass_flow_rateFunction
oxidizer_mass_flow_rate(f::EmpiricalFuel; y_o2 = 0.23)

Computes the required amount of oxidizer to perform complete combustion of 1 kg provided empirical fuel. The value of y_o2 represents the mass fraction of oxygen in oxidizer; default value is typical for air.

julia> fuel = EmpiricalFuel([0.937, 0.063, 0.0]; scaler=:C=>10);
 
 julia> oxidizer_mass_flow_rate(fuel)
-13.02691759229764
source

Heavy fuel-oils

Combustion of heavy-fuel oils (HFO) is discussed in detail by Lawn1987 [1]. Some relations that might be useful for the industrial combustion specialist are under implementation here to be integrated in larger models e.g. using DryFlowsheet, or simple calculations.

DryCombustion.hfo_empirical_formulaFunction
hfo_empirical_formula(Y; scaler = nothing)

Wrapper for EmpiricalFuel ensuring all HFO instances are created with all typical elements, say C, H, O, N, and S, provided in this same order.

source
DryCombustion.hfo_specific_heatFunction
hfo_specific_heat(T::Float64, S::Float64)::Float64

Heavy fuel-oil specific heat estimation in terms of relative density $S$ as provided by Cragoe (1929). Temperature in kelvin.

source
DryCombustion.hfo_enthalpy_net_bs2869Function
hfo_enthalpy_net_bs2869(;
+13.02691759229764
source

Heavy fuel-oils

Combustion of heavy-fuel oils (HFO) is discussed in detail by Lawn1987 [1]. Some relations that might be useful for the industrial combustion specialist are under implementation here to be integrated in larger models e.g. using DryFlowsheet, or simple calculations.

DryCombustion.hfo_empirical_formulaFunction
hfo_empirical_formula(Y; scaler = nothing)

Wrapper for EmpiricalFuel ensuring all HFO instances are created with all typical elements, say C, H, O, N, and S, provided in this same order.

source
DryCombustion.hfo_specific_heatFunction
hfo_specific_heat(T::Float64, S::Float64)::Float64

Heavy fuel-oil specific heat estimation in terms of relative density $S$ as provided by Cragoe (1929). Temperature in kelvin.

source
DryCombustion.hfo_enthalpy_net_bs2869Function
hfo_enthalpy_net_bs2869(;
     ρ::Float64,
     x::Float64,
     y::Float64,
     s::Float64
 )::Float64

Heavy fuel-oil net energy capacity accordinto to BS2869:1983. Value is computed in [MJ/kg]. Parameters are given as:

  • ρ: HFO density at 15 °C, [kg/m³].
  • water: Mass percentage of water, [%].
  • ash: Mass percentage of ashes, [%].
  • sulphur: Mass percentage of sulphur, [%].
julia> hfo_enthalpy_net_bs2869(; ρ = 1020.0, water = 0.1, ash = 0.05, sulphur = 1.0)
-40.13509836320001
source

Discrete phase model

DryCombustion.fit_rosinrammlerFunction
fit_rosinrammler(d₀, P₀; m=3.5)

Find parameter for particle size distribution with Weibull distribution, often called after Rosin-Rammler in the field of particles - based on characteristic size and associated cumulative density function (CDF) value. Parameter d₀ is the droplet size at which Weibull CDF evaluates to probability P₀. The value of m is generally recommended for a certain technology; a common value is provided by default.

source
DryCombustion.plot_rosinrammlerFunction

Display Rosin-Rammler distribution and optionally reference data.

source
+40.13509836320001source

Discrete phase model

DryCombustion.fit_rosinrammlerFunction
fit_rosinrammler(d₀, P₀; m=3.5)

Find parameter for particle size distribution with Weibull distribution, often called after Rosin-Rammler in the field of particles - based on characteristic size and associated cumulative density function (CDF) value. Parameter d₀ is the droplet size at which Weibull CDF evaluates to probability P₀. The value of m is generally recommended for a certain technology; a common value is provided by default.

source
DryCombustion.plot_rosinrammlerFunction

Display Rosin-Rammler distribution and optionally reference data.

source
diff --git a/dev/Modules/DryFlowsheet/index.html b/dev/Modules/DryFlowsheet/index.html index 1e873cb89..de14db7ae 100644 --- a/dev/Modules/DryFlowsheet/index.html +++ b/dev/Modules/DryFlowsheet/index.html @@ -1,2 +1,2 @@ -DryFlowsheet · WallyToolbox.jl

DryFlowsheet

DryFlowsheet.CooledCrushingMillType

Represents a crushing device with cooling system.

Models

  1. :TARGET_COOLANT_TEMP evaluates the heat transfer lost to coolant provided a target final stream temperature given by keyword argument temp_out. Product temperature is updated through an EnergyStream built with energy exchange computed through exchanged_heat, so that numerical value can be slightly different from target value.
  2. :USING_GLOBAL_HTC makes use of a global heat transfer coefficient to evaluate heat flux across the cooling stream.

Attributes

  • rawmeal: The input meal applied to crushing process.

  • product: The output material stream at the end of product pipeline.

  • coolant: The output material stream at the end of cooling pipeline.

  • power: The power applied to the crushing process [W]

  • loss: The heat exchanged in between product and cooling pipelines [W].

  • globalhtc: Global heat transfer coefficient [W/K].

source
DryFlowsheet.MaterialStreamType

Represents a material stream.

Attributes

  • : Material mass flow rate [kg/s].

  • T: Stream temperature [K].

  • P: Stream pressure [Pa].

  • Y: Components mass fractions [-].

  • pipeline: Materials pipeline associated to Y.

source
DryFlowsheet.SolidsSeparatorType

Represents a solids separator with efficiency η.

To-do's

  • Add inverse model to automatically tune efficiency η.

Attributes

  • η: Solids separation efficiency [-].

  • source: The stream to be separated into solids and others.

  • solids: The output solids stream.

  • others: The output remaining stream.

source
DryFlowsheet.TransportPipelineType

Represents a pipeline with heat transfer.

Models

  1. :TARGET_EXIT_TEMP evaluates the heat transfer lost to environment provided a target final stream temperature given by keyword argument temp_out. Product temperature is updated through an EnergyStream built with energy exchange computed through exchanged_heat, so that numerical value can be slightly different from target value.
  2. :USING_GLOBAL_HTC makes use of a global heat transfer coefficient to evaluate heat flux across the pipe.

To-do's

  • Implement heat transfer losses through a convective heat transfer coefficient (HTC) computed from a suitable Nusselt number, for use of pipeline in simulation mode.

Attributes

  • product: The output material stream at the end of pipeline.

  • power: The heat exchanged in pipeline [W].

source
+DryFlowsheet · WallyToolbox.jl

DryFlowsheet

DryFlowsheet.CooledCrushingMillType

Represents a crushing device with cooling system.

Models

  1. :TARGET_COOLANT_TEMP evaluates the heat transfer lost to coolant provided a target final stream temperature given by keyword argument temp_out. Product temperature is updated through an EnergyStream built with energy exchange computed through exchanged_heat, so that numerical value can be slightly different from target value.
  2. :USING_GLOBAL_HTC makes use of a global heat transfer coefficient to evaluate heat flux across the cooling stream.

Attributes

  • rawmeal: The input meal applied to crushing process.

  • product: The output material stream at the end of product pipeline.

  • coolant: The output material stream at the end of cooling pipeline.

  • power: The power applied to the crushing process [W]

  • loss: The heat exchanged in between product and cooling pipelines [W].

  • globalhtc: Global heat transfer coefficient [W/K].

source
DryFlowsheet.MaterialStreamType

Represents a material stream.

Attributes

  • : Material mass flow rate [kg/s].

  • T: Stream temperature [K].

  • P: Stream pressure [Pa].

  • Y: Components mass fractions [-].

  • pipeline: Materials pipeline associated to Y.

source
DryFlowsheet.SolidsSeparatorType

Represents a solids separator with efficiency η.

To-do's

  • Add inverse model to automatically tune efficiency η.

Attributes

  • η: Solids separation efficiency [-].

  • source: The stream to be separated into solids and others.

  • solids: The output solids stream.

  • others: The output remaining stream.

source
DryFlowsheet.TransportPipelineType

Represents a pipeline with heat transfer.

Models

  1. :TARGET_EXIT_TEMP evaluates the heat transfer lost to environment provided a target final stream temperature given by keyword argument temp_out. Product temperature is updated through an EnergyStream built with energy exchange computed through exchanged_heat, so that numerical value can be slightly different from target value.
  2. :USING_GLOBAL_HTC makes use of a global heat transfer coefficient to evaluate heat flux across the pipe.

To-do's

  • Implement heat transfer losses through a convective heat transfer coefficient (HTC) computed from a suitable Nusselt number, for use of pipeline in simulation mode.

Attributes

  • product: The output material stream at the end of pipeline.

  • power: The heat exchanged in pipeline [W].

source
diff --git a/dev/Modules/DryGranular/index.html b/dev/Modules/DryGranular/index.html index caad32ece..f79845143 100644 --- a/dev/Modules/DryGranular/index.html +++ b/dev/Modules/DryGranular/index.html @@ -1,5 +1,5 @@ -DryGranular · WallyToolbox.jl

DryGranular

General porous media

Modeling of geometrical characteristics of porous beds is required for including both their thermal effect or role over chemistry in chemical reactors. A classical approach used in several commercial and open source tools is that of Gunn1978 [2]. In what follows we develop the ideas that lead to an analogous model which is implemented by this structure.

To build the model we will assume a reactor of constant rectangular cross-section ${A}_{r}={b}{w}$ and volume ${V}_{R}={b}{w}{h}$. Its cross-section perimeter is then ${P}_{R}=2({b}+{w})$. Inside this reactor we randomly pack cubic particles $\beta$ of surface area ${A}_{\beta}=6{l}_{\beta}^2$ and volume ${V}_{\beta}={l}_{\beta}^3$ at a porosity level ${\phi}$. Thus the total volume of solids inside the reactor is ${V}_{S}=(1-{\phi}){V}_{R}$ and the approximate number of particles ${N}=\frac{{V}_{S}}{{V}_{\beta}}$. Following a similar reasoning the total surface area of particles is ${A}_{S}={N}{A}_{\beta}$. Performing all the substitutions so far one finds the following expression

\[{A}_{S}=\frac{6(1-{\phi}){b}{w}{h}}{{l}_{\beta}}\]

Since the differential $d{A}={P}d{l}$ holds for the surface of a body over its length ${l}$, one can divide the above expression by the reactor length to get the perimeter of particles in a cross-section. We can further divide by the cross-section area itself and find the perimeter density which is a more general result, and find the expression proposed by Gunn1978 [2]. This result is summarized in the next equation where the subscript of particle size was dropped for generality.

\[{P} = \frac{6(1-{\phi})}{{l}}\]

An estimator of the number of channels per unit cross-section of reactor ${N}$ can be related to the porosity through ${N}\pi{R}^2={\phi}$. Because the above perimeter is shared between the fluid volume and solids, it holds that ${N}2\pi{R}=P$. Using these expressions one can solve for the porosity channels characteristic radius ${R}$ as given below, which is also a result reported by Gunn1978 [2].

\[{R}=\frac{{\phi}{l}}{3(1-{\phi})}\]

This model is probided in PackedBedPorosityDescriptor.

DryGranular.PackedBedPorosityDescriptorType

Provides description of porosity parameters with stochastic behavior.

  • ϕ::Union{Float64, Vector{Float64}}: Porosity volume fraction in medium [-].

  • l::Union{Float64, Vector{Float64}}: Characteristic particle size in medium [m].

  • σϕ::Union{Nothing, Float64}: Optional standard deviation of porosity volume fraction [-].

  • σl::Union{Nothing, Float64}: Optional standard deviation of characteristic particle size [m].

  • P::Union{Float64, Vector{Float64}}: Perimeter in reactor cross-section [m].

  • D::Union{Float64, Vector{Float64}}: Characteristic diameter of porosity channels [m].

  • A::Float64: Reactor area used for scaling perimeter [m²].

source

PackedBedPorosityDescriptor can be used to describe the geometry of exchange section of a packed bed for a single set of arguments.

julia> PackedBedPorosityDescriptor(; ϕ = 0.65, l = 0.10, area = 1.0)
+DryGranular · WallyToolbox.jl

DryGranular

General porous media

Modeling of geometrical characteristics of porous beds is required for including both their thermal effect or role over chemistry in chemical reactors. A classical approach used in several commercial and open source tools is that of Gunn1978 [2]. In what follows we develop the ideas that lead to an analogous model which is implemented by this structure.

To build the model we will assume a reactor of constant rectangular cross-section ${A}_{r}={b}{w}$ and volume ${V}_{R}={b}{w}{h}$. Its cross-section perimeter is then ${P}_{R}=2({b}+{w})$. Inside this reactor we randomly pack cubic particles $\beta$ of surface area ${A}_{\beta}=6{l}_{\beta}^2$ and volume ${V}_{\beta}={l}_{\beta}^3$ at a porosity level ${\phi}$. Thus the total volume of solids inside the reactor is ${V}_{S}=(1-{\phi}){V}_{R}$ and the approximate number of particles ${N}=\frac{{V}_{S}}{{V}_{\beta}}$. Following a similar reasoning the total surface area of particles is ${A}_{S}={N}{A}_{\beta}$. Performing all the substitutions so far one finds the following expression

\[{A}_{S}=\frac{6(1-{\phi}){b}{w}{h}}{{l}_{\beta}}\]

Since the differential $d{A}={P}d{l}$ holds for the surface of a body over its length ${l}$, one can divide the above expression by the reactor length to get the perimeter of particles in a cross-section. We can further divide by the cross-section area itself and find the perimeter density which is a more general result, and find the expression proposed by Gunn1978 [2]. This result is summarized in the next equation where the subscript of particle size was dropped for generality.

\[{P} = \frac{6(1-{\phi})}{{l}}\]

An estimator of the number of channels per unit cross-section of reactor ${N}$ can be related to the porosity through ${N}\pi{R}^2={\phi}$. Because the above perimeter is shared between the fluid volume and solids, it holds that ${N}2\pi{R}=P$. Using these expressions one can solve for the porosity channels characteristic radius ${R}$ as given below, which is also a result reported by Gunn1978 [2].

\[{R}=\frac{{\phi}{l}}{3(1-{\phi})}\]

This model is probided in PackedBedPorosityDescriptor.

DryGranular.PackedBedPorosityDescriptorType

Provides description of porosity parameters with stochastic behavior.

  • ϕ::Union{Float64, Vector{Float64}}: Porosity volume fraction in medium [-].

  • l::Union{Float64, Vector{Float64}}: Characteristic particle size in medium [m].

  • σϕ::Union{Nothing, Float64}: Optional standard deviation of porosity volume fraction [-].

  • σl::Union{Nothing, Float64}: Optional standard deviation of characteristic particle size [m].

  • P::Union{Float64, Vector{Float64}}: Perimeter in reactor cross-section [m].

  • D::Union{Float64, Vector{Float64}}: Characteristic diameter of porosity channels [m].

  • A::Float64: Reactor area used for scaling perimeter [m²].

source

PackedBedPorosityDescriptor can be used to describe the geometry of exchange section of a packed bed for a single set of arguments.

julia> PackedBedPorosityDescriptor(; ϕ = 0.65, l = 0.10, area = 1.0)
 PackedBedPorosityDescriptor(P = 21.000000 m, D = 0.123810 m)

It can also be used to describe randomly varying reactors, what is a more realistic thing to do when using this structure to simulate real world systems.

julia> PackedBedPorosityDescriptor(;
             ϕ  = 0.65, l  = 0.10,
             σϕ = 0.03, σl = 0.01,
@@ -16,11 +16,11 @@
 \dfrac{dh}{dz} &= C₁ \left[\frac{h}{R}\left(2 - \frac{h}{R}\right)\right]^{-\frac{3}{2}} - C₂\\[6pt]
 C₁             &= \frac{3}{4}\dfrac{Φ\tan{γ}}{π R^3 ω}\\[6pt]
 C₂             &= \dfrac{\tan{β}}{\cos{γ}}
-\end{aligned}\]

The structure SymbolicLinearKramersModel implements the Kramers' ordinary differential equation for prediction of bed height profile in a rotary kiln. This equation is implemented under the formalism of ModelingToolkit.

DryGranular.SymbolicLinearKramersModelType

Creates a reusable linear Kramers model for rotary kiln simulation.

  • R::Symbolics.Num: Symbolic kiln internal radius

  • Φ::Symbolics.Num: Symbolic kiln feed rate

  • ω::Symbolics.Num: Symbolic kiln rotation rate

  • β::Symbolics.Num: Symbolic kiln slope

  • γ::Symbolics.Num: Symbolic solids repose angle

  • z::Symbolics.Num: Symbolic kiln axial coordinates

  • h::Symbolics.Num: Symbolic bed height profile

  • sys::ModelingToolkit.ODESystem: Problem ordinary differential equation

source

For integration of this model we implement RotaryKilnBedSolution. It provides the solved description of a rotary kiln bed geometry computed from the solution of bed height along the kiln length. The main goal of the quantities computed here is their use with heat and mass transfer models for the simulation of rotary kiln process. A simple post-processing utilitiy plotlinearkramersmodel is also provided.

DryGranular.RotaryKilnBedSolutionType

General geometric description of a bed from Kramers equation solution.

  • z::Vector{Float64}: Solution coordinates [m]

  • h::Vector{Float64}: Solution bed height [m]

  • θ::Vector{Float64}: View angle from kiln center [rad]

  • l::Vector{Float64}: Bed-freeboard cord length [m]

  • A::Vector{Float64}: Local bed cross section area [m²]

  • η::Vector{Float64}: Local loading based on height [-]

  • ηₘ::Float64: Mean loading of kiln [%]

  • V::Float64: Bed integral volume [m³]

  • τ::Float64: Residence time of particles

  • β::Float64: Kiln slope [rad]

Arguments

Internal elements are initialized through the following constructor:

RotaryKilnBedSolution(z, h, β, R, Φ)

Where parameters are given as:

  • z: solution coordinates over length, [m].
  • h: bed profile solution over length, [m].
  • R: kiln internal radius, [m].
  • Φ: kiln feed rate, [m³/s].

An outer constructor is also provided for managing the integration of an instance of SymbolicLinearKramersModel. This is the recommended usage that is illustrated below.

Important: inputs must be provided in international system (SI) units as a better physical practice. The only exception is the rotation rate ω provided in revolution multiples. If the discharge end is held by a dam, its height must be provided instead of the particle size, as it is used as the ODE initial condition.

  • model: a symbolic kiln model.
  • L: kiln length, [m].
  • R: kiln internal radius, [m].
  • Φ: kiln feed rate, [m³/s].
  • ω: kiln rotation rate, [rev/s].
  • β: kiln slope, [rad].
  • γ: solids repose angle, [rad].
  • d: particle size or dam height, [m].
  • solver: Solver for DifferentialEquations. Defaults to Tsit5.
  • rtol: Relative integration tolerance. Defaults to 1.0e-08.
  • atol: Absolute integration tolerance. Defaults to 1.0e-08.
source
DryGranular.plotlinearkramersmodelFunction
plotlinearkramersmodel(
+\end{aligned}\]

The structure SymbolicLinearKramersModel implements the Kramers' ordinary differential equation for prediction of bed height profile in a rotary kiln. This equation is implemented under the formalism of ModelingToolkit.

DryGranular.SymbolicLinearKramersModelType

Creates a reusable linear Kramers model for rotary kiln simulation.

  • R::Symbolics.Num: Symbolic kiln internal radius

  • Φ::Symbolics.Num: Symbolic kiln feed rate

  • ω::Symbolics.Num: Symbolic kiln rotation rate

  • β::Symbolics.Num: Symbolic kiln slope

  • γ::Symbolics.Num: Symbolic solids repose angle

  • z::Symbolics.Num: Symbolic kiln axial coordinates

  • h::Symbolics.Num: Symbolic bed height profile

  • sys::ModelingToolkit.ODESystem: Problem ordinary differential equation

source

For integration of this model we implement RotaryKilnBedSolution. It provides the solved description of a rotary kiln bed geometry computed from the solution of bed height along the kiln length. The main goal of the quantities computed here is their use with heat and mass transfer models for the simulation of rotary kiln process. A simple post-processing utilitiy plotlinearkramersmodel is also provided.

DryGranular.RotaryKilnBedSolutionType

General geometric description of a bed from Kramers equation solution.

  • z::Vector{Float64}: Solution coordinates [m]

  • h::Vector{Float64}: Solution bed height [m]

  • θ::Vector{Float64}: View angle from kiln center [rad]

  • l::Vector{Float64}: Bed-freeboard cord length [m]

  • A::Vector{Float64}: Local bed cross section area [m²]

  • η::Vector{Float64}: Local loading based on height [-]

  • ηₘ::Float64: Mean loading of kiln [%]

  • V::Float64: Bed integral volume [m³]

  • τ::Float64: Residence time of particles

  • β::Float64: Kiln slope [rad]

Arguments

Internal elements are initialized through the following constructor:

RotaryKilnBedSolution(z, h, β, R, Φ)

Where parameters are given as:

  • z: solution coordinates over length, [m].
  • h: bed profile solution over length, [m].
  • R: kiln internal radius, [m].
  • Φ: kiln feed rate, [m³/s].

An outer constructor is also provided for managing the integration of an instance of SymbolicLinearKramersModel. This is the recommended usage that is illustrated below.

Important: inputs must be provided in international system (SI) units as a better physical practice. The only exception is the rotation rate ω provided in revolution multiples. If the discharge end is held by a dam, its height must be provided instead of the particle size, as it is used as the ODE initial condition.

  • model: a symbolic kiln model.
  • L: kiln length, [m].
  • R: kiln internal radius, [m].
  • Φ: kiln feed rate, [m³/s].
  • ω: kiln rotation rate, [rev/s].
  • β: kiln slope, [rad].
  • γ: solids repose angle, [rad].
  • d: particle size or dam height, [m].
  • solver: Solver for DifferentialEquations. Defaults to Tsit5.
  • rtol: Relative integration tolerance. Defaults to 1.0e-08.
  • atol: Absolute integration tolerance. Defaults to 1.0e-08.
source
DryGranular.plotlinearkramersmodelFunction
plotlinearkramersmodel(
     model::RotaryKilnBedSolution;
     normz::Bool = false,
     normh::Bool = false
-)::Figure

Standardized plotting of RotaryKilnBedSolution bed profile. It supports normalization of axes throught keywords normz for axial coordinate and normh for bed depth.

source

Data in next example is an SI conversion of an example from Kramers1952 [3].

julia> L = 13.715999999999998;  # Kiln length [m]
+)::Figure

Standardized plotting of RotaryKilnBedSolution bed profile. It supports normalization of axes throught keywords normz for axial coordinate and normh for bed depth.

source

Data in next example is an SI conversion of an example from Kramers1952 [3].

julia> L = 13.715999999999998;  # Kiln length [m]
 
 julia> D = 1.8897599999999999;  # Kiln diameter [m]
 
@@ -81,4 +81,4 @@
 true
 
 julia> bed.τ ≈ Vₐ / Φ
-true

Validation of Kramers' model is provided here.

Finally a set of basic equations provided for process analysis.

+true

Validation of Kramers' model is provided here.

Finally a set of basic equations provided for process analysis.

diff --git a/dev/Modules/DryMaterials/index.html b/dev/Modules/DryMaterials/index.html index e7dc34de4..1024a60ed 100644 --- a/dev/Modules/DryMaterials/index.html +++ b/dev/Modules/DryMaterials/index.html @@ -1,9 +1,9 @@ -DryMaterials · WallyToolbox.jl

DryMaterials

Solid Thermodynamics

Danger

The following sub-sections document structures and functions that are undergoing active development to harmonize all interfaces. Changes are expected to happen all the time before a common ground is found.

Laurent Polynomial Models

DryMaterials.SolidPolynomialPropertiesType

Arbitrary Laurent polynomial specific heat and enthalpy of materials.

  • c: Polynomial representation of specific heat [J/(kg.K)].

  • h: Polynomial representation of enthalpy [J/kg].

  • hₒ: Reference state enthalpy [J/kg].

source

Shomate Model

Solid materials properties are often reported according to the formalism of Shomate1954 [4]. To be able to handle data under this format, the following structure is provided.

DryMaterials.SolidShomatePropertiesType

Thermodynamic properties of solids with Shomate functions.

IMPORTANT: the implementation of makestepwise1d used for step-wise function evaluation takes the mean of both ranges at the T_ch, while the actual Shomate uses the high range for doing so. The function enforces the right behavior by multiplying T_ch the value by 1-eps().

  • cₚ: Molar specific heat [J/(mol.K)].

  • h: Molar enthalpy [J/mol].

  • s: Molar entropy [J/K].

  • a_lo: Low temperature range Shomate coefficients.

  • a_hi: High temperature range Shomate coefficients.

  • T_ch: Temperature of range change for evaluation.

source

Using data from NIST Webbook of Chemistry we have the test:

julia> T = [298.0, 300.0, 400.0, 847.0, 900.0, 1900.0];
+DryMaterials · WallyToolbox.jl

DryMaterials

Solid Thermodynamics

Danger

The following sub-sections document structures and functions that are undergoing active development to harmonize all interfaces. Changes are expected to happen all the time before a common ground is found.

Laurent Polynomial Models

DryMaterials.SolidPolynomialPropertiesType

Arbitrary Laurent polynomial specific heat and enthalpy of materials.

  • c: Polynomial representation of specific heat [J/(kg.K)].

  • h: Polynomial representation of enthalpy [J/kg].

  • hₒ: Reference state enthalpy [J/kg].

source

Shomate Model

Solid materials properties are often reported according to the formalism of Shomate1954 [4]. To be able to handle data under this format, the following structure is provided.

DryMaterials.SolidShomatePropertiesType

Thermodynamic properties of solids with Shomate functions.

IMPORTANT: the implementation of makestepwise1d used for step-wise function evaluation takes the mean of both ranges at the T_ch, while the actual Shomate uses the high range for doing so. The function enforces the right behavior by multiplying T_ch the value by 1-eps().

  • cₚ: Molar specific heat [J/(mol.K)].

  • h: Molar enthalpy [J/mol].

  • s: Molar entropy [J/K].

  • a_lo: Low temperature range Shomate coefficients.

  • a_hi: High temperature range Shomate coefficients.

  • T_ch: Temperature of range change for evaluation.

source

Using data from NIST Webbook of Chemistry we have the test:

julia> T = [298.0, 300.0, 400.0, 847.0, 900.0, 1900.0];
     
 julia> c = [44.57, 44.77, 53.43, 67.42, 67.95, 77.99];
 
 julia> silica = DryMaterials.getshomatesilica();
 
 julia> sum(abs2, silica.cₚ.(T) - c) < 0.0001
-true

The inner workings of DryMaterials.SolidShomateProperties are provided by the following functions. Notice that these do not automatically manage the ranges, so generating functions with the main structure is the recommended way of implementing programs.

Ongoing documentation

DryMaterials.SolidMineralPhaseType

Represents a solid mineral phase for thermodynamic calculations.

  • name: Name of phase.

  • ρ: Specific mass of phase [kg/m³].

  • M: Molecular mass of phase [kg/mol].

  • p: Polynomial properties of phase.

source

Hard-coded materials

Temporary (moving to database)

DryMaterials.getspinelFunction

Representation of spinel $Al_4Si_3O_{12}$.

TODO recover missing defaults (somewhere else, not in Schieltz (1964)).

source
+true

The inner workings of DryMaterials.SolidShomateProperties are provided by the following functions. Notice that these do not automatically manage the ranges, so generating functions with the main structure is the recommended way of implementing programs.

Ongoing documentation

DryMaterials.SolidMineralPhaseType

Represents a solid mineral phase for thermodynamic calculations.

  • name: Name of phase.

  • ρ: Specific mass of phase [kg/m³].

  • M: Molecular mass of phase [kg/mol].

  • p: Polynomial properties of phase.

source

Hard-coded materials

Temporary (moving to database)

DryMaterials.getspinelFunction

Representation of spinel $Al_4Si_3O_{12}$.

TODO recover missing defaults (somewhere else, not in Schieltz (1964)).

source
diff --git a/dev/Modules/DryTransport/index.html b/dev/Modules/DryTransport/index.html index cdb04af19..936aec288 100644 --- a/dev/Modules/DryTransport/index.html +++ b/dev/Modules/DryTransport/index.html @@ -1,21 +1,21 @@ -DryTransport · WallyToolbox.jl

DryTransport

Dimensionless groups

When dealing with fluid flow and reactor models, it is always useful to be able to quickly compute approximate dimensionless numbers for the studied case. In what follows we provide a brief description of some of these quantities and some context for their use whenever possible. Definitions might vary according to the author or field of application and here we follow mostly Bird2001 [5].

Although quite unusual, it seems it is time to start this list with the Knudsen number, which evaluates the particles mean free path over system characteristic dimension. Division between rarefied gas (Boltzmann) and continuum mechanics (Navier-Stokes).

Although an implementation is not yet provided here, users are encouraged to estimate its value based on some mean free path estimation for their system before following with the analysis of a transport problem. Generally speaking, if continuum mechanics hypothesis is not valid, i.e Knudsen number is too high, most of what follows cannot be applied, thus justifying why this group comes first.

Common dimensionless groups

Reynolds

Reynolds dimensionless group is named for Osborne Reynolds (1842-1912), professor of engineering at the University of Manchester. He studied the laminar-turbulent transition, turbulent heat transfer, and theory of lubrication Bird2001 [5]. In general we denote Reynolds number by $\mathrm{Re}$ and it is used to delineate flow regimes. For circular tubes it is defined as:

\[\mathrm{Re} = \frac{\rho \langle v_{z} \rangle D}{\mu}\]

where $\langle{}v_{z}\rangle$ is the average flow velocity in axial direction and $D$ is the tube diameter. For values up 2100 the flow is assumed laminar if steady state is established and density is constant. For more, see Bird2001 [5], Chapter 2.

Nusselt

The Nusselt number provides the ratio of convective to conductive heat transfer at a boundary in a fluid, defined as

\[\mathrm{Nu}=\frac{hL}{k}\]

Often in buoyancy-driven flow analysis it is correlated as $\mathrm{Nu}=a\mathrm{Ra}^b$. A Nusselt number of value one represents heat transfer by pure conduction. Increasing this number implies a laminar conductive-dominant flow and then a convective dominant turbulent flow.

Prandtl

Prandtl represents the ratio of momentum diffusivity to thermal diffusivity $\mathrm{Pr}=\frac{\nu}{\alpha}$. High $\mathrm{Pr}$ indicates that momentum transfer is more effective than heat transfer (oils), while low values (liquid metals) indicate thermal boundary layer is more important than viscous one.

Ludwig Prandtl (1875-1953) (pronounced "Prahn-t'), who taught in Hannover and Gottingen and later served as the Director of the Kaiser Wilhelm Institute for Fluid Dynamics, was one of the people who shaped the future of his field at the beginning of the twentieth century; he made contributions to turbulent flow and heat transfer, but his development of the boundary-layer equations was his crowning achievement Bird2001 [5]. The dimensionless quantity appear under two forms of interest for the analysis of reactors: its thermal and its chemical versions. In thermal version, this number compares the kinematic viscosity $\nu$ to the thermal diffusivity $\alpha$, which is replaced by species diffusivity in its chemical version, which is more often referred to as Schmidt number. Ernst Heinrich Wilhelm Schmidt (1892-1975), who taught at the universities in Gdansk, Braunschweig, and Munich (where he was the successor to Nusselt) Bird2001 [5]_. The ratio $\frac{\nu}{\alpha}$ indicates the relative ease of momentum and energy or species transport in flow systems. This dimensionless ratio in thermal form is given by

\[\mathrm{Pr} = \frac{\nu}{\alpha} = \frac{C_{p} \mu}{k}\]

If transport properties for a gas are not available, thermal Prandtl number can be estimated at low pressure and non-polar molecules mixtures with help of Eucken formula as

\[\mathrm{Pr} = \frac{C_{p}}{C_{p} + \frac{5}{4}R}\]

Péclet

Péclet Jean-Claude-Eugene Peclet (pronounced "Pay-clay" with the second syllable accented) (1793-1857) authored several books including one on heat conduction Bird2001 [5]. This number is nothing more than the multiplication of Reynolds and Prandtl or Schmidt numbers. By simplifying factors one easily determines that it represents the ratio of convective by diffusive transport (thermal or species). High $\mathrm{Pe}$ limit represents the #plug-flow behavior.

\[\mathrm{Pe}_{th} = \mathrm{Re} \mathrm{Pr}\qquad -\mathrm{Pe}_{ch} = \mathrm{Re} \mathrm{Sc}\]

Grashof

Grashof number named after Franz Grashof (1826-1893) (pronounced "Grahss-hoff). He was professor of applied mechanics in Karlsruhe and one of the founders of the Verein Deutscher Ingenieure in 1856 Bird2001 [5]. The Grashof number is the characteristic group occurring in analyses of free convection. It approximates the ratio of the buoyancy to viscous force acting on a fluid, defined as

\[\mathrm{Gr}=\frac{g\beta(T_s-T_{\infty})L^3}{\nu^2}\]

and is analogous to Reynolds number in natural convection. Increasing the value of this number above a given threshold promotes buoyancy driven flow.

Rayleigh

Rayleigh number is the product of Grashof $\mathrm{Gr}$ and Prandtl $\mathrm{Pr}$ numbers. Related to the transition from laminar to turbulent in buoyancy-driven flows. Laminar to turbulent is assumed to take place at $10^9$ Balaji2014 [6].

Mass transfer groups

Schmidt

Schmidt number is the mass diffusion equivalent of Prandtl's. Its range can be much broader than its thermal relative, Prandtl number. This is given by the effects of cross-section and molar weight determining mass diffusivity of gas species. For more, see Bird2001 [5], Chapter 9.

\[\mathrm{Sc} = \frac{\nu}{D}\]

Sherwood

Sherwood number, also called the mass transfer Nusselt number is a dimensionless number used in mass-transfer operation. It represents the ratio of the total mass transfer rate (convection + diffusion) to the rate of diffusive mass transport, and is named in honor of Thomas Kilgore Sherwood.

Multiphase-specific

Weber

Weber group is often found in applications of multiphase flows where strongly curved surfaces are present. It represents the ratio of drag forces to cohesion forces, and can be thought of as a measure of the relative importance of the fluid's inertia compared to its surface tension. As reminded by Amsden1989 [7], for $\mathrm{We}>1$, drop oscillations, distortions, and breakup must be considered, requiring other sub-models other than simple drag to describe the flow.

Groups by application

Heat transfer coefficients

DryTransport.htcFunction

Implements the interface for heat transfer coefficient evaluation.

Notice that although temperature is provided in this interface, it is used only for Pr calculation. Other properties might have arbitrarily complex dependencies and types, so it was chosen by design to keep their evaluation to the user before calling this.

Also, to ensure internal consistency because of Nusselt number dependency on Prandtl number, thermal conductivity is evaluated from specific heat and viscosity. It is up to the user to make sure the provided Prandtl number is compatible.

source

Property models

Medium properties often are non-constant and require description through different sorts of models for representing their dependence on solution quantities, such as temperature, pressure, composition, etc. This section is devoted to document such models.

Polynomial properties

The most commonly used representation of thermal conductivity of materials is through polynomial fits of temperature. Although this approach does not provide any physical-based representation, it is easy to use and fast to evaluate in most computational science problems. A common interface for polynomial properties is given by the following structure.

DryTransport.TempPolynomialHeatConductivityType

Wrapper for a polynomial temperature-dependent heat conductivity.

  • p::Polynomials.Polynomial: Heat conductivity polynomial.

The general use case of this is to create objects compatible with the function object approach employed for properties evaluation across the module.

julia> k = TempPolynomialHeatConductivity([1.5, -0.001])
+DryTransport · WallyToolbox.jl

DryTransport

Dimensionless groups

When dealing with fluid flow and reactor models, it is always useful to be able to quickly compute approximate dimensionless numbers for the studied case. In what follows we provide a brief description of some of these quantities and some context for their use whenever possible. Definitions might vary according to the author or field of application and here we follow mostly Bird2001 [5].

Although quite unusual, it seems it is time to start this list with the Knudsen number, which evaluates the particles mean free path over system characteristic dimension. Division between rarefied gas (Boltzmann) and continuum mechanics (Navier-Stokes).

Although an implementation is not yet provided here, users are encouraged to estimate its value based on some mean free path estimation for their system before following with the analysis of a transport problem. Generally speaking, if continuum mechanics hypothesis is not valid, i.e Knudsen number is too high, most of what follows cannot be applied, thus justifying why this group comes first.

Common dimensionless groups

Reynolds

Reynolds dimensionless group is named for Osborne Reynolds (1842-1912), professor of engineering at the University of Manchester. He studied the laminar-turbulent transition, turbulent heat transfer, and theory of lubrication Bird2001 [5]. In general we denote Reynolds number by $\mathrm{Re}$ and it is used to delineate flow regimes. For circular tubes it is defined as:

\[\mathrm{Re} = \frac{\rho \langle v_{z} \rangle D}{\mu}\]

where $\langle{}v_{z}\rangle$ is the average flow velocity in axial direction and $D$ is the tube diameter. For values up 2100 the flow is assumed laminar if steady state is established and density is constant. For more, see Bird2001 [5], Chapter 2.

Nusselt

The Nusselt number provides the ratio of convective to conductive heat transfer at a boundary in a fluid, defined as

\[\mathrm{Nu}=\frac{hL}{k}\]

Often in buoyancy-driven flow analysis it is correlated as $\mathrm{Nu}=a\mathrm{Ra}^b$. A Nusselt number of value one represents heat transfer by pure conduction. Increasing this number implies a laminar conductive-dominant flow and then a convective dominant turbulent flow.

Prandtl

Prandtl represents the ratio of momentum diffusivity to thermal diffusivity $\mathrm{Pr}=\frac{\nu}{\alpha}$. High $\mathrm{Pr}$ indicates that momentum transfer is more effective than heat transfer (oils), while low values (liquid metals) indicate thermal boundary layer is more important than viscous one.

Ludwig Prandtl (1875-1953) (pronounced "Prahn-t'), who taught in Hannover and Gottingen and later served as the Director of the Kaiser Wilhelm Institute for Fluid Dynamics, was one of the people who shaped the future of his field at the beginning of the twentieth century; he made contributions to turbulent flow and heat transfer, but his development of the boundary-layer equations was his crowning achievement Bird2001 [5]. The dimensionless quantity appear under two forms of interest for the analysis of reactors: its thermal and its chemical versions. In thermal version, this number compares the kinematic viscosity $\nu$ to the thermal diffusivity $\alpha$, which is replaced by species diffusivity in its chemical version, which is more often referred to as Schmidt number. Ernst Heinrich Wilhelm Schmidt (1892-1975), who taught at the universities in Gdansk, Braunschweig, and Munich (where he was the successor to Nusselt) Bird2001 [5]_. The ratio $\frac{\nu}{\alpha}$ indicates the relative ease of momentum and energy or species transport in flow systems. This dimensionless ratio in thermal form is given by

\[\mathrm{Pr} = \frac{\nu}{\alpha} = \frac{C_{p} \mu}{k}\]

If transport properties for a gas are not available, thermal Prandtl number can be estimated at low pressure and non-polar molecules mixtures with help of Eucken formula as

\[\mathrm{Pr} = \frac{C_{p}}{C_{p} + \frac{5}{4}R}\]

Péclet

Péclet Jean-Claude-Eugene Peclet (pronounced "Pay-clay" with the second syllable accented) (1793-1857) authored several books including one on heat conduction Bird2001 [5]. This number is nothing more than the multiplication of Reynolds and Prandtl or Schmidt numbers. By simplifying factors one easily determines that it represents the ratio of convective by diffusive transport (thermal or species). High $\mathrm{Pe}$ limit represents the #plug-flow behavior.

\[\mathrm{Pe}_{th} = \mathrm{Re} \mathrm{Pr}\qquad +\mathrm{Pe}_{ch} = \mathrm{Re} \mathrm{Sc}\]

Grashof

Grashof number named after Franz Grashof (1826-1893) (pronounced "Grahss-hoff). He was professor of applied mechanics in Karlsruhe and one of the founders of the Verein Deutscher Ingenieure in 1856 Bird2001 [5]. The Grashof number is the characteristic group occurring in analyses of free convection. It approximates the ratio of the buoyancy to viscous force acting on a fluid, defined as

\[\mathrm{Gr}=\frac{g\beta(T_s-T_{\infty})L^3}{\nu^2}\]

and is analogous to Reynolds number in natural convection. Increasing the value of this number above a given threshold promotes buoyancy driven flow.

Rayleigh

Rayleigh number is the product of Grashof $\mathrm{Gr}$ and Prandtl $\mathrm{Pr}$ numbers. Related to the transition from laminar to turbulent in buoyancy-driven flows. Laminar to turbulent is assumed to take place at $10^9$ Balaji2014 [6].

Mass transfer groups

Schmidt

Schmidt number is the mass diffusion equivalent of Prandtl's. Its range can be much broader than its thermal relative, Prandtl number. This is given by the effects of cross-section and molar weight determining mass diffusivity of gas species. For more, see Bird2001 [5], Chapter 9.

\[\mathrm{Sc} = \frac{\nu}{D}\]

Sherwood

Sherwood number, also called the mass transfer Nusselt number is a dimensionless number used in mass-transfer operation. It represents the ratio of the total mass transfer rate (convection + diffusion) to the rate of diffusive mass transport, and is named in honor of Thomas Kilgore Sherwood.

Multiphase-specific

Weber

Weber group is often found in applications of multiphase flows where strongly curved surfaces are present. It represents the ratio of drag forces to cohesion forces, and can be thought of as a measure of the relative importance of the fluid's inertia compared to its surface tension. As reminded by Amsden1989 [7], for $\mathrm{We}>1$, drop oscillations, distortions, and breakup must be considered, requiring other sub-models other than simple drag to describe the flow.

Groups by application

Heat transfer coefficients

DryTransport.htcFunction

Implements the interface for heat transfer coefficient evaluation.

Notice that although temperature is provided in this interface, it is used only for Pr calculation. Other properties might have arbitrarily complex dependencies and types, so it was chosen by design to keep their evaluation to the user before calling this.

Also, to ensure internal consistency because of Nusselt number dependency on Prandtl number, thermal conductivity is evaluated from specific heat and viscosity. It is up to the user to make sure the provided Prandtl number is compatible.

source

Property models

Medium properties often are non-constant and require description through different sorts of models for representing their dependence on solution quantities, such as temperature, pressure, composition, etc. This section is devoted to document such models.

Polynomial properties

The most commonly used representation of thermal conductivity of materials is through polynomial fits of temperature. Although this approach does not provide any physical-based representation, it is easy to use and fast to evaluate in most computational science problems. A common interface for polynomial properties is given by the following structure.

DryTransport.TempPolynomialHeatConductivityType

Wrapper for a polynomial temperature-dependent heat conductivity.

  • p::Polynomials.Polynomial: Heat conductivity polynomial.

The general use case of this is to create objects compatible with the function object approach employed for properties evaluation across the module.

julia> k = TempPolynomialHeatConductivity([1.5, -0.001])
 TempPolynomialHeatConductivity(Polynomial(1.5 - 0.001*T))
 
 julia> k(1000.0)
 0.5

Although not the most efficienty way, a simple wrapper for providing constant heat conductivity remaining compatible with other funcionalities is provided:

julia> k = constheatconductivity(5.0)
-TempPolynomialHeatConductivity(Polynomial(5.0))
source

An analogous interface is also provided for viscosity temperature dependence.

Granular media

According to Hanein2017 [8] the representation of effective thermal conductivity of a solids bed in a rotary kiln can be approximated through a Maxell model based on effective medium theory. To keep track of eventually temperature-dependent properties and make use of this model, the following interfaces are provided.

DryTransport.GranularMediumHeatConductivityType

Provides the heat conductivity of a solids granular medium embeded in gas.

  • ks::WallyToolbox.AbstractHeatCondTemperatureDep: Heat conductivity model for solid phase.

  • kg::WallyToolbox.AbstractHeatCondTemperatureDep: Heat conductivity model for gas phase.

  • ϕ::Float64: Solids packing fraction.

This composite type relies on a gas and a solid; below we illustrate how to evaluate a granular medium effective heat conductivity using this structure.

julia> ks = constheatconductivity(5.0);
+TempPolynomialHeatConductivity(Polynomial(5.0))
source

An analogous interface is also provided for viscosity temperature dependence.

Granular media

According to Hanein2017 [8] the representation of effective thermal conductivity of a solids bed in a rotary kiln can be approximated through a Maxell model based on effective medium theory. To keep track of eventually temperature-dependent properties and make use of this model, the following interfaces are provided.

DryTransport.GranularMediumHeatConductivityType

Provides the heat conductivity of a solids granular medium embeded in gas.

  • ks::WallyToolbox.AbstractHeatCondTemperatureDep: Heat conductivity model for solid phase.

  • kg::WallyToolbox.AbstractHeatCondTemperatureDep: Heat conductivity model for gas phase.

  • ϕ::Float64: Solids packing fraction.

This composite type relies on a gas and a solid; below we illustrate how to evaluate a granular medium effective heat conductivity using this structure.

julia> ks = constheatconductivity(5.0);
 
 julia> kg = constheatconductivity(0.092);
 
 julia> kb = GranularMediumHeatConductivity(ks, kg, 0.36);
 
 julia> kb(300.0)
-0.23471049304677621
source
DryTransport.maxwell_eff_conductivityFunction
maxwell_eff_conductivity(kg, ks, ϕ)

Maxwell effective medium theory of thermal conductivity computed in terms of gas thermal conductivity kg, solids thermal conductivity ks, and solids packing fraction ϕ.

source

Air properties

For the simulation of rotary kilns, Mujumdar2006i [9] proposes some data for air properties implemented by the following interfaces. It must be noted that the thermal conductivity proposed by the authors quickly diverges above 1500 K and users must be aware of its implications.

DryTransport.maxwell_eff_conductivityFunction
maxwell_eff_conductivity(kg, ks, ϕ)

Maxwell effective medium theory of thermal conductivity computed in terms of gas thermal conductivity kg, solids thermal conductivity ks, and solids packing fraction ϕ.

source

Air properties

For the simulation of rotary kilns, Mujumdar2006i [9] proposes some data for air properties implemented by the following interfaces. It must be noted that the thermal conductivity proposed by the authors quickly diverges above 1500 K and users must be aware of its implications.

+1.837988950255163e-5
source
diff --git a/dev/Modules/OpenFOAM/index.html b/dev/Modules/OpenFOAM/index.html index 8e5162e23..26018b4dd 100644 --- a/dev/Modules/OpenFOAM/index.html +++ b/dev/Modules/OpenFOAM/index.html @@ -1,8 +1,8 @@ -OpenFOAM · WallyToolbox.jl

OpenFOAM

OpenFOAM.InjectionModelType

Represents a generic particle injection model.

Constraints imposed by OpenFOAM:

  • nParticle makes massFlowRate and massTotal to be ignored.

  • massTotal cannot be used in steady state simulations.

  • if flowRateProfile is not found a constant massFlowRate profile is computed from the ratio of massTotal and duration.

To-do:

  • Check if parcelBasisType from is applicable to derived types.
  • massFlowRate::Number: Particles mass flow rate if nParticle is not provided.

  • massTotal::Number: Total mass to be injected if nParticle is not provided.

  • SOI::Number: Start of injection in seconds (base).

  • duration::Number: Duration of injection in seconds (base).

  • nParticle::Number: Number of particles per parcel.

  • uniformParcelSize::UniformParcelSize: Quantity that is constant in parcels (base).

  • flowRateProfile::OpenFOAM.AbstractFlowRateProfile: Type of flow rate profile to apply.

source
OpenFOAM.PatchInjectionType

Represents a patch injection model.

  • name::String: Name to use in injection models list.

  • patchName::String: Patch where injection is applied.

  • injectionModel::InjectionModel: Object pointing to general injection model.

  • U0::Velocity: Particles injection velocity vector.

  • parcelsPerSecond::Number: Number of parcels injected per second.

  • sizeDistribution::OpenFOAM.AbstractSizeDistribution: Particle size distribution.

source
OpenFOAM.parcels_per_secondMethod
parcelstoinject2d(;
+OpenFOAM · WallyToolbox.jl

OpenFOAM

OpenFOAM.InjectionModelType

Represents a generic particle injection model.

Constraints imposed by OpenFOAM:

  • nParticle makes massFlowRate and massTotal to be ignored.

  • massTotal cannot be used in steady state simulations.

  • if flowRateProfile is not found a constant massFlowRate profile is computed from the ratio of massTotal and duration.

To-do:

  • Check if parcelBasisType from is applicable to derived types.
  • massFlowRate::Number: Particles mass flow rate if nParticle is not provided.

  • massTotal::Number: Total mass to be injected if nParticle is not provided.

  • SOI::Number: Start of injection in seconds (base).

  • duration::Number: Duration of injection in seconds (base).

  • nParticle::Number: Number of particles per parcel.

  • uniformParcelSize::UniformParcelSize: Quantity that is constant in parcels (base).

  • flowRateProfile::OpenFOAM.AbstractFlowRateProfile: Type of flow rate profile to apply.

source
OpenFOAM.PatchInjectionType

Represents a patch injection model.

  • name::String: Name to use in injection models list.

  • patchName::String: Patch where injection is applied.

  • injectionModel::InjectionModel: Object pointing to general injection model.

  • U0::Velocity: Particles injection velocity vector.

  • parcelsPerSecond::Number: Number of parcels injected per second.

  • sizeDistribution::OpenFOAM.AbstractSizeDistribution: Particle size distribution.

source
OpenFOAM.parcels_per_secondMethod
parcelstoinject2d(;
     mdot::Float64,
     rhop::Float64,
     diam::Float64,
     nParticle::Int64 = 1
-)

Computes the flow rate of parcels for a given mean particle size and number of particles per parcels. This is inteded as a helper to create a patchInjection element in the injectionModels of cloudProperties file.

source

Discrete phase models

We can verify the computation of number of parcels per second of sample case injectionChannel. Notice that the value of mdot has been reversed engineered so that it matches the expected value.

julia> parcels_per_second(; ṁ = 0.2, ρ = 1000.0, d = 650.0e-06, nParticle = 1)
-1390885
+)

Computes the flow rate of parcels for a given mean particle size and number of particles per parcels. This is inteded as a helper to create a patchInjection element in the injectionModels of cloudProperties file.

source

Discrete phase models

We can verify the computation of number of parcels per second of sample case injectionChannel. Notice that the value of mdot has been reversed engineered so that it matches the expected value.

julia> parcels_per_second(; ṁ = 0.2, ρ = 1000.0, d = 650.0e-06, nParticle = 1)
+1390885
diff --git a/dev/Modules/RadCalNet/index.html b/dev/Modules/RadCalNet/index.html index 751b91356..ff2219685 100644 --- a/dev/Modules/RadCalNet/index.html +++ b/dev/Modules/RadCalNet/index.html @@ -83,7 +83,7 @@ 0.68 0.00210072 0.00470752 0.0997078 71325.7 0.79875 0.67 0.000770321 0.0101432 0.0812446 3.0696f5 0.815462 0.7 0.00154008 0.0215186 0.253691 24945.7 0.478712 - 0.53 0.00133843 0.0180676 0.234852 21784.6 0.7443

To-do's

Literature discussion

Verification agains Gorog's paper

Below we compare computed values with those by Gorog1981a [11]. Reference paper is found here.

Emissivity

Absorptivity

At least qualitative agreement is found and orders of magnitude are right. On the other hand, using directly the model parameters from Tam2019 [12] do not produce the expected results (not displayed, work in progress in this draft). It is not clear how the data is pre- and post-processed for use with their network.

All interfaces

RadCalNet.ModelDataType
ModelData(fpath::String; f_train::Float64 = 0.7)

Load HDF5 database stored under fpath and performs standardized workflow of data preparation for model training. The data is split under training and testing datasets with a fraction of training data of f_train.

  • scaler::StatsBase.ZScoreTransform{Float32, Vector{Float32}}: Scaler used for data transformation.

  • X_train::Matrix{Float32}: Matrix of training input data.

  • Y_train::Matrix{Float32}: Matrix of training output data.

  • X_tests::Matrix{Float32}: Matrix of testing input data.

  • Y_tests::Matrix{Float32}: Matrix of testing output data.

  • n_inputs::Int64: Number of model inputs.

  • n_outputs::Int64: Number of model outputs.

source
RadCalNet.ModelTrainerType
ModelTrainer(
+ 0.53  0.00133843   0.0180676   0.234852   21784.6        0.7443

To-do's

  • Broaden sample space over the whole RadCal composition spectrum.
  • Define data loading on GPU/CPU though a flag when recovering model.
  • Create database for testing outside of sampling points.
  • Improve model reload and organize a notebook for training.

Literature discussion

Verification agains Gorog's paper

Below we compare computed values with those by Gorog1981a [11]. Reference paper is found here.

Emissivity

Absorptivity

At least qualitative agreement is found and orders of magnitude are right. On the other hand, using directly the model parameters from Tam2019 [12] do not produce the expected results (not displayed, work in progress in this draft). It is not clear how the data is pre- and post-processed for use with their network.

All interfaces

RadCalNet.ModelDataType
ModelData(fpath::String; f_train::Float64 = 0.7)

Load HDF5 database stored under fpath and performs standardized workflow of data preparation for model training. The data is split under training and testing datasets with a fraction of training data of f_train.

  • scaler::StatsBase.ZScoreTransform{Float32, Vector{Float32}}: Scaler used for data transformation.

  • X_train::Matrix{Float32}: Matrix of training input data.

  • Y_train::Matrix{Float32}: Matrix of training output data.

  • X_tests::Matrix{Float32}: Matrix of testing input data.

  • Y_tests::Matrix{Float32}: Matrix of testing output data.

  • n_inputs::Int64: Number of model inputs.

  • n_outputs::Int64: Number of model outputs.

source
RadCalNet.ModelTrainerType
ModelTrainer(
     data::ModelData,
     model::Chain;
     batch::Int64=64,
@@ -91,7 +91,7 @@
     η::Float64=0.001,
     β::Tuple{Float64,Float64}=(0.9, 0.999),
     ϵ::Float64=1.0e-08
-)

Holds standardized model training parameters and data.

  • batch::Int64: Batch size in training loop.

  • epochs::Int64: Number of epochs to train each time.

  • data::RadCalNet.ModelData: Database structure used for training/testing.

  • model::Flux.Chain: Multi-layer perceptron used for modeling.

  • optim::NamedTuple: Internal Adam optimizer.

  • losses::Vector{Float32}: History of losses.

source
RadCalNet.createcustomdatabaseMethod
createcustomdatabase(;
+)

Holds standardized model training parameters and data.

  • batch::Int64: Batch size in training loop.

  • epochs::Int64: Number of epochs to train each time.

  • data::RadCalNet.ModelData: Database structure used for training/testing.

  • model::Flux.Chain: Multi-layer perceptron used for modeling.

  • optim::NamedTuple: Internal Adam optimizer.

  • losses::Vector{Float32}: History of losses.

source
RadCalNet.createcustomdatabaseMethod
createcustomdatabase(;
     sampler!::Function,
     repeats::Int64 = 100,
     samplesize::Int64 = 50_000,
@@ -100,11 +100,11 @@
     OMMIN::Float64 = 50.0,
     OMMAX::Float64 = 10000.0,
     override::Bool = false
-)

Creates a custom database by generating a number repeats of samples of samplesize rows. Inputs for runradcalinput are to be generated by a sampler! user-defined function which modifies in place an array of compositions, and returns T, L, P, FV, TWALL for setting up a simulation. Files are temporarilly stored under data/ with a sequential numbered naming during database creation and aggregated in a HDF5 file named after saveas. The choice to aggregate files after an initial dump is because generation can be interrupted and manually recovered in an easier way and avoiding any risk of data losses - database creation can take a very long time. If cleanup is true, all intermediate files are removed.

source
RadCalNet.datasampler!Method
datasampler!(X::Vector{Float64})::Tuple

Custom sample space to generate entries with createcustomdatabase. This function contains the parameter space used for model training.

source
RadCalNet.dumpscalerMethod
dumpscaler(scaler::ZScoreTransform{Float32,V32}, saveas::String)

Write z-score scaler mean and scale to provided saveas YAML file.

source
RadCalNet.getradcalnetMethod
getradcalnet(;
+)

Creates a custom database by generating a number repeats of samples of samplesize rows. Inputs for runradcalinput are to be generated by a sampler! user-defined function which modifies in place an array of compositions, and returns T, L, P, FV, TWALL for setting up a simulation. Files are temporarilly stored under data/ with a sequential numbered naming during database creation and aggregated in a HDF5 file named after saveas. The choice to aggregate files after an initial dump is because generation can be interrupted and manually recovered in an easier way and avoiding any risk of data losses - database creation can take a very long time. If cleanup is true, all intermediate files are removed.

source
RadCalNet.datasampler!Method
datasampler!(X::Vector{Float64})::Tuple

Custom sample space to generate entries with createcustomdatabase. This function contains the parameter space used for model training.

source
RadCalNet.dumpscalerMethod
dumpscaler(scaler::ZScoreTransform{Float32,V32}, saveas::String)

Write z-score scaler mean and scale to provided saveas YAML file.

source
RadCalNet.getradcalnetMethod
getradcalnet(;
     scale = true,
     fscaler = nothing,
     fmstate = nothing
-)

Load trained model and scaler to compose RadCalNet. If testing new models, it might be useful to use fscaler and fmstate to point to specific versions of scaler and model state files.

source
RadCalNet.makemodelMethod
makemodel(layers::Vector{Tuple{Int64, Any}}; bn = false)::Chain

Create a multi-layer perceptron for learning radiative properties with the provided layers. If bn is true, then batch normalization after each layer. The final layer has by default a sigmoid function to ensure physical outputs in range [0, 1].

source
RadCalNet.modelFunction
model(x::Vector{Float32})::Vector{Float32}

Main model interface for emissivity and transmissivity.

source
RadCalNet.plottestsMethod
plottests(trainer::ModelTrainer; num::Int64)

Evaluate model over num data points and compare the data to the expected values as computed from RadCal. Makes use of test data only - never seem by the model during training.

source
RadCalNet.runradcalinputMethod
runradcalinput(;
+)

Load trained model and scaler to compose RadCalNet. If testing new models, it might be useful to use fscaler and fmstate to point to specific versions of scaler and model state files.

source
RadCalNet.makemodelMethod
makemodel(layers::Vector{Tuple{Int64, Any}}; bn = false)::Chain

Create a multi-layer perceptron for learning radiative properties with the provided layers. If bn is true, then batch normalization after each layer. The final layer has by default a sigmoid function to ensure physical outputs in range [0, 1].

source
RadCalNet.modelFunction
model(x::Vector{Float32})::Vector{Float32}

Main model interface for emissivity and transmissivity.

source
RadCalNet.plottestsMethod
plottests(trainer::ModelTrainer; num::Int64)

Evaluate model over num data points and compare the data to the expected values as computed from RadCal. Makes use of test data only - never seem by the model during training.

source
RadCalNet.runradcalinputMethod
runradcalinput(;
     X::Dict{String, Float64} = Dict{String, Float64}(),
     T::Float64 = 300.0,
     L::Float64 = 1.0,
@@ -114,4 +114,4 @@
     OMMAX::Float64 = 10000.0,
     TWALL::Float64 = 500.0,
     radcalexe::String = "radcal_win_64.exe"
-)::Vector{Float64}

Create RADCAL.IN from template file and dump to disk.

NOTE: the user is responsible to provide a vector X of mole fractions of species that sums up to one. If this is not respected RADCAL fails. The Following list provides the indexes of available species in vector X.

IndexSpeciesIndexSpeciesIndexSpecies
1CO26C2H611CH3OH
2H2O7C3H612MMA
3CO8C3H813O2
4CH49C7H814N2
5C2H410C7H16
source
RadCalNet.trainonce!Method
trainonce!(trainer::ModelTrainer; num = 1_000)

Train model and keep track of loss for the number of epochs in trainer using its internal data and parameters. Use num data points.

source
+)::Vector{Float64}

Create RADCAL.IN from template file and dump to disk.

NOTE: the user is responsible to provide a vector X of mole fractions of species that sums up to one. If this is not respected RADCAL fails. The Following list provides the indexes of available species in vector X.

IndexSpeciesIndexSpeciesIndexSpecies
1CO26C2H611CH3OH
2H2O7C3H612MMA
3CO8C3H813O2
4CH49C7H814N2
5C2H410C7H16
source
RadCalNet.samplecolsMethod

Get sample of indexes for data retrieval.

source
RadCalNet.testsMethod

Get testing data for data loader construction.

source
RadCalNet.trainMethod

Get training data for data loader construction.

source
RadCalNet.trainonce!Method
trainonce!(trainer::ModelTrainer; num = 1_000)

Train model and keep track of loss for the number of epochs in trainer using its internal data and parameters. Use num data points.

source
diff --git a/dev/Modules/WallyToolbox/Documentation/index.html b/dev/Modules/WallyToolbox/Documentation/index.html index f2fb5af75..ff1160724 100644 --- a/dev/Modules/WallyToolbox/Documentation/index.html +++ b/dev/Modules/WallyToolbox/Documentation/index.html @@ -1,2 +1,2 @@ -Documentation · WallyToolbox.jl

Documentation

The following functionalities are intended mostly for the own toolbox maintenance and documentation generation. This can also be imported as a replacement for some boilerplate code in other projects.

Because most of my work is done with Obsidian and the tool does not support Julia math blocks and a few other features, the functions below were conceived to help documentation conversion without modifications to standard $\LaTeX$ syntacs in Obsidian.

Finally, we wrap up a standard workflow for converting Pluto notebooks.

+Documentation · WallyToolbox.jl

Documentation

The following functionalities are intended mostly for the own toolbox maintenance and documentation generation. This can also be imported as a replacement for some boilerplate code in other projects.

Because most of my work is done with Obsidian and the tool does not support Julia math blocks and a few other features, the functions below were conceived to help documentation conversion without modifications to standard $\LaTeX$ syntacs in Obsidian.

Finally, we wrap up a standard workflow for converting Pluto notebooks.

diff --git a/dev/Modules/WallyToolbox/constants/index.html b/dev/Modules/WallyToolbox/constants/index.html index 0189f53f5..f6886f52c 100644 --- a/dev/Modules/WallyToolbox/constants/index.html +++ b/dev/Modules/WallyToolbox/constants/index.html @@ -1,2 +1,2 @@ -Constants · WallyToolbox.jl

Constants

Physical constants

Reference states

Unit conversion

+Constants · WallyToolbox.jl

Constants

Physical constants

Reference states

Unit conversion

diff --git a/dev/Modules/WallyToolbox/elements/index.html b/dev/Modules/WallyToolbox/elements/index.html index ed34009f9..a4b08e940 100644 --- a/dev/Modules/WallyToolbox/elements/index.html +++ b/dev/Modules/WallyToolbox/elements/index.html @@ -12,4 +12,4 @@ Stoichiometry(Pair{Symbol, <:Number}[:Al => 4, :Ca => 1, :O => 7]) julia> molecularmass(c1a2) -0.25999715360000003source

The following methods and types are available for operation over compositions and elements.

WallyToolbox.elementFunction

Retrieve an element by name.

source
WallyToolbox.atomicmassFunction

Atomic mass of element [kg/mol].

source
WallyToolbox.molecularmassFunction

Molecular mass of compound [kg/mol].

source
WallyToolbox.ElementDataType

Represents a chemical element.

source
WallyToolbox.ElementalQuantityType

Represents a pair of element symbol and associated amount.

source
+0.25999715360000003source

The following methods and types are available for operation over compositions and elements.

WallyToolbox.elementFunction

Retrieve an element by name.

source
WallyToolbox.atomicmassFunction

Atomic mass of element [kg/mol].

source
WallyToolbox.molecularmassFunction

Molecular mass of compound [kg/mol].

source
WallyToolbox.ElementDataType

Represents a chemical element.

source
WallyToolbox.ElementalQuantityType

Represents a pair of element symbol and associated amount.

source
diff --git a/dev/Modules/WallyToolbox/unstable/index.html b/dev/Modules/WallyToolbox/unstable/index.html index 59e14adaf..9ce6c37a9 100644 --- a/dev/Modules/WallyToolbox/unstable/index.html +++ b/dev/Modules/WallyToolbox/unstable/index.html @@ -18,7 +18,7 @@ 0.0 0.5 1.0 - 1.0
DryUtilities.heavisideFunction
heaviside(t)

Provides a Heaviside function compatible with automatic differentiation. This is a requirement for conceiving, e.g., model predictive controls with discontinuous functions under ModelingToolkit.

source

By implementation inheritance that is also the case for interval:

julia> interval(0:6; a = 2, b = 5)
+ 1.0
DryUtilities.heavisideFunction
heaviside(t)

Provides a Heaviside function compatible with automatic differentiation. This is a requirement for conceiving, e.g., model predictive controls with discontinuous functions under ModelingToolkit.

source

By implementation inheritance that is also the case for interval:

julia> interval(0:6; a = 2, b = 5)
 7-element Vector{Float64}:
  0.0
  0.0
@@ -26,7 +26,7 @@
  1.0
  1.0
  0.5
- 0.0
DryUtilities.intervalFunction
interval(x; a=-Inf, b=Inf)

Returns 1 if $x ∈ (a, b)$, 1/2 for $x = a || x = b$, or 0.

source

As it is the case for representation of specific heats using NASA7/NASA9 or Shomate polynomials, functions defined by parts with an specific change point are also required in physical modeling. To this end, a stepwise function can be established with makestepwise1d. If keyword differentialble = true, then the function makes use of the above interval and remains compatible with ModelingToolkit, for instance.

julia> f = makestepwise1d(x->x, x->x^2, 1.0; differentiable = true);
+ 0.0
DryUtilities.intervalFunction
interval(x; a=-Inf, b=Inf)

Returns 1 if $x ∈ (a, b)$, 1/2 for $x = a || x = b$, or 0.

source

As it is the case for representation of specific heats using NASA7/NASA9 or Shomate polynomials, functions defined by parts with an specific change point are also required in physical modeling. To this end, a stepwise function can be established with makestepwise1d. If keyword differentialble = true, then the function makes use of the above interval and remains compatible with ModelingToolkit, for instance.

julia> f = makestepwise1d(x->x, x->x^2, 1.0; differentiable = true);
 
 julia> f(0:0.2:2.0)
 11-element Vector{Float64}:
@@ -48,7 +48,7 @@
 1-element Vector{Num}:
  x
 
-julia> f(x); # Output is too long, try by yourself.
DryUtilities.makestepwise1dFunction
makestepwise1d(lo, hi, xc)

Creates an univariate function that is composed of two parts, the first evaluated before a critical domain point xc, and the second above that value. This is often required, for instance, for the evaluation of NASA polynomials for thermodynamic properties. If differentiable, then the returned function is compatible with symbolic argument as required when using package ModelingToolkit, etc.

source

Rounding numbers and automatic axes

Danger

This section documents functions that are used in a very unstable context.

Simple rounding is not enough. Getting values that are rounded close to a power of a given number and rounded to floor or ceil is often the case. This is standardized in DryTooling through closestpowerofx:

julia> closestpowerofx(10)
+julia> f(x); # Output is too long, try by yourself.
DryUtilities.makestepwise1dFunction
makestepwise1d(lo, hi, xc)

Creates an univariate function that is composed of two parts, the first evaluated before a critical domain point xc, and the second above that value. This is often required, for instance, for the evaluation of NASA polynomials for thermodynamic properties. If differentiable, then the returned function is compatible with symbolic argument as required when using package ModelingToolkit, etc.

source

Rounding numbers and automatic axes

Danger

This section documents functions that are used in a very unstable context.

Simple rounding is not enough. Getting values that are rounded close to a power of a given number and rounded to floor or ceil is often the case. This is standardized in DryTooling through closestpowerofx:

julia> closestpowerofx(10)
 10
 
 julia> closestpowerofx(11)
@@ -71,11 +71,11 @@
     v::Number;
     x::Number = 10,
     roundf::Function = ceil
-)::Int64

Compute the integer power of x closest to v using roundf as rouding method. This might be useful for automatic setting more reasonable limits to plot axis or similar applications. Changing the rouding method through roundf is also possible.

source

Below we illustrate the usage of axesunitscaler.

NOTE: this function is not yet stable. In the future it will instead return labels using symbols like k, M, G, etc., for the units through a flag provided by the user.

julia> axesunitscaler(1)
+)::Int64

Compute the integer power of x closest to v using roundf as rouding method. This might be useful for automatic setting more reasonable limits to plot axis or similar applications. Changing the rouding method through roundf is also possible.

source

Below we illustrate the usage of axesunitscaler.

NOTE: this function is not yet stable. In the future it will instead return labels using symbols like k, M, G, etc., for the units through a flag provided by the user.

julia> axesunitscaler(1)
 ("", 1)
 
 julia> axesunitscaler(1000)
 ("[×1000]", 1000)
 
 julia> axesunitscaler(1000000)
-("[×1000000]", 1000000)
DryUtilities.axesunitscalerFunction
axesunitscaler(x::Number)::Tuple{String, Int64}

Find scaling factor for multiples of 1000 units. Together with closestpowerofx this can be used to produce better automatic plot axes limits. The returned values provide the string for modifying the axis label and the associated scaling factor.

source

Computation of changes and residuals

Danger

This section documents functions that are used in a very unstable context.

DryUtilities.maxabsolutechangeFunction

Maximum absolute change in a solution array.

source
DryUtilities.maxrelativechangeFunction

Maximum relative change in a solution array.

source

Unit conversion

DryUtilities.nm3_h_to_kg_hFunction

Convert [Nm³/h] to [kg/h].

source
DryUtilities.kg_h_to_nm3_hFunction

Convert [kg/h] to [Nm³/h].

source
+("[×1000000]", 1000000)
DryUtilities.axesunitscalerFunction
axesunitscaler(x::Number)::Tuple{String, Int64}

Find scaling factor for multiples of 1000 units. Together with closestpowerofx this can be used to produce better automatic plot axes limits. The returned values provide the string for modifying the axis label and the associated scaling factor.

source

Computation of changes and residuals

Danger

This section documents functions that are used in a very unstable context.

DryUtilities.maxabsolutechangeFunction

Maximum absolute change in a solution array.

source
DryUtilities.maxrelativechangeFunction

Maximum relative change in a solution array.

source

Unit conversion

DryUtilities.nm3_h_to_kg_hFunction

Convert [Nm³/h] to [kg/h].

source
DryUtilities.kg_h_to_nm3_hFunction

Convert [kg/h] to [Nm³/h].

source
diff --git a/dev/Modules/WallyToolbox/utilities/index.html b/dev/Modules/WallyToolbox/utilities/index.html index 6c1a7d4c5..8186596c8 100644 --- a/dev/Modules/WallyToolbox/utilities/index.html +++ b/dev/Modules/WallyToolbox/utilities/index.html @@ -15,15 +15,15 @@ 3-element view(::Vector{Int64}, 1:3) with eltype Int64: 1 2 - 3source
WallyToolbox.tailFunction
tail(z)

Access view of array tail. See also head and body.

julia> tail([1, 2, 3, 4])
+ 3
source
WallyToolbox.tailFunction
tail(z)

Access view of array tail. See also head and body.

julia> tail([1, 2, 3, 4])
 3-element view(::Vector{Int64}, 2:4) with eltype Int64:
  2
  3
  4
 julia> tail(1:4)
-2:4
source
WallyToolbox.bodyFunction
body(z)

Access view of array body. See also head and tail.

julia> body([1, 2, 3, 4])
+2:4
source
WallyToolbox.bodyFunction
body(z)

Access view of array body. See also head and tail.

julia> body([1, 2, 3, 4])
 2-element view(::Vector{Int64}, 2:3) with eltype Int64:
  2
  3
 julia> body(1:4)
-2:3
source

General utilities

WallyToolbox.defaultvalueFunction

Syntax sugar for handling a possibly nothing value.

source
WallyToolbox.redirect_to_filesFunction

Helper function to redirect outputs to the right files.

source
WallyToolbox.test_exhaustiveFunction

Run all assertions before throwing an error.

source

Literate programming

Because WallyToolbox is intended to be run from a portable Julia environment without footprint in the local system, some particularities arise in setting a Jupyter toolset. The following tools tools provide launchers for starting local Jupyter Notebook and Jupyterlab sessions.

Note

Notice it is up to the user to define the path JUPYTER_DATA_DIR as an environment variable; default Jupyter configuration is not accepted because it might break the local system.

WallyToolbox.Notebook.launch_notebookFunction

Launch Jupyter notebook session with WallyToolbox kernel.

source
WallyToolbox.Notebook.launch_jupyterlabFunction

Launch Jupyterlab session with WallyToolbox kernel.

source
+2:3source

General utilities

WallyToolbox.defaultvalueFunction

Syntax sugar for handling a possibly nothing value.

source
WallyToolbox.redirect_to_filesFunction

Helper function to redirect outputs to the right files.

source
WallyToolbox.test_exhaustiveFunction

Run all assertions before throwing an error.

source

Literate programming

Because WallyToolbox is intended to be run from a portable Julia environment without footprint in the local system, some particularities arise in setting a Jupyter toolset. The following tools tools provide launchers for starting local Jupyter Notebook and Jupyterlab sessions.

Note

Notice it is up to the user to define the path JUPYTER_DATA_DIR as an environment variable; default Jupyter configuration is not accepted because it might break the local system.

WallyToolbox.Notebook.launch_notebookFunction

Launch Jupyter notebook session with WallyToolbox kernel.

source
WallyToolbox.Notebook.launch_jupyterlabFunction

Launch Jupyterlab session with WallyToolbox kernel.

source
diff --git a/dev/Notebooks/01-Composite-Conduction/index.html b/dev/Notebooks/01-Composite-Conduction/index.html index dc77093ff..0e341bd4a 100644 --- a/dev/Notebooks/01-Composite-Conduction/index.html +++ b/dev/Notebooks/01-Composite-Conduction/index.html @@ -95,4 +95,4 @@ xlims!(ax, (0.95, 3.05)) ylims!(ax, (300, 350)) fig -end +end diff --git a/dev/Notebooks/02-Part-Radiation-Heating/index.html b/dev/Notebooks/02-Part-Radiation-Heating/index.html index 02ae67ed4..94b578154 100644 --- a/dev/Notebooks/02-Part-Radiation-Heating/index.html +++ b/dev/Notebooks/02-Part-Radiation-Heating/index.html @@ -170,4 +170,4 @@ ylims!(ax2, extrema(ax2.yticks.val)) fig -end

Using ModelingToolkit

In the future...

+end

Using ModelingToolkit

In the future...

diff --git a/dev/Notebooks/03-Plug-Flow-Reactor-1/index.html b/dev/Notebooks/03-Plug-Flow-Reactor-1/index.html index 2ff00f55e..c4672e8f6 100644 --- a/dev/Notebooks/03-Plug-Flow-Reactor-1/index.html +++ b/dev/Notebooks/03-Plug-Flow-Reactor-1/index.html @@ -1008,4 +1008,4 @@ # axislegend(position = :rb) # fig # end -# end +# end diff --git a/dev/Notebooks/04-Plug-Flow-Reactor-2/index.html b/dev/Notebooks/04-Plug-Flow-Reactor-2/index.html index b01b27492..d58000009 100644 --- a/dev/Notebooks/04-Plug-Flow-Reactor-2/index.html +++ b/dev/Notebooks/04-Plug-Flow-Reactor-2/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl
+- · WallyToolbox.jl
diff --git a/dev/Notebooks/05-Random-Walk/index.html b/dev/Notebooks/05-Random-Walk/index.html index 85a2651c3..befdbfdfb 100644 --- a/dev/Notebooks/05-Random-Walk/index.html +++ b/dev/Notebooks/05-Random-Walk/index.html @@ -137,4 +137,4 @@ end end -istrue
+istrue
diff --git a/dev/Notebooks/06-Heat-Transfer-FVM/index.html b/dev/Notebooks/06-Heat-Transfer-FVM/index.html index 16963b006..8237a4e38 100644 --- a/dev/Notebooks/06-Heat-Transfer-FVM/index.html +++ b/dev/Notebooks/06-Heat-Transfer-FVM/index.html @@ -90,4 +90,4 @@ resize_to_layout!(fig) fig -end +end diff --git a/dev/Notebooks/07-Air-Properties/index.html b/dev/Notebooks/07-Air-Properties/index.html index d7d070ec1..364ba9f5d 100644 --- a/dev/Notebooks/07-Air-Properties/index.html +++ b/dev/Notebooks/07-Air-Properties/index.html @@ -301,4 +301,4 @@ ax3.xlabel = "Temperature [K]" f -end +end diff --git a/dev/Notebooks/08-Kramers-Model-Validation/index.html b/dev/Notebooks/08-Kramers-Model-Validation/index.html index a938bc30b..0825c3670 100644 --- a/dev/Notebooks/08-Kramers-Model-Validation/index.html +++ b/dev/Notebooks/08-Kramers-Model-Validation/index.html @@ -25,4 +25,4 @@ This program contains Ipopt, a library for large-scale nonlinear optimization. Ipopt is released as open source code under the Eclipse Public License (EPL). For more information visit https://github.com/coin-or/Ipopt -******************************************************************************

Sample reference case

Here we make use of the current implementation to check if it correctly approximates the last example provided in reference paper from [[@Kramers1952]]. To minimize rounding errors causes by unit conversions, we provide the required functions to convert from imperial to international system in the solution process.

The next table summarizes the results. It is seen that the dimensionless numbers are well approximated. It must be emphasized that the reference estimates η̄ᵣ by a graphical method – it was 1952 – and the current value is considered a good enough approximation. Additionally, the equation was not integrated numerically as done here, but engineering relationships were used in the approximation. That said, the proper loading to be considered in our days is η̄ᵢ.

4×3 DataFrame
RowQuantityReferenceComputed
StringStringString
11.151.15
2Nₖ1.171.17
3η̄ᵣ5.655.46
4η̄ᵢ4.995.91

Note: the last value in column Reference above is not provided in Kramers' paper but computed from the approximate analytical solution provided by the authors. As we see here, it may get >20% error under some circumstances.

Verification of Table 3

In the next cell we provide the kiln dimensions used by Kramers (1952) to experimentally validate the model. Some data from their Tab. 3 is then loaded and all rows are simulated with current model. Fractional hold-up seems to be well correlated at least to a few percent of the reference value.

12×5 DataFrame
Rowtan(β)nη̄ᵣη̄ᵢ
Float64Float64Float64Float64Float64
10.00940.0590.0051511.110.8
20.00940.090.002685.44.7
30.00940.1950.01328.88.9
40.00940.2320.007244.34.8
50.010.040.0063816.916.8
60.010.040.00514.413.9
70.010.0690.009215.014.6
80.010.0690.0065311.311.3
90.010.1060.01516.215.3
100.010.1590.0129.29.5
110.010.2380.01558.38.4
120.010.2380.01196.86.9

Dimensionless profiles

Next step in validation is to check profiles in dimensionless format, as done by Kramers in their Fig. 3. Notice that here we used the numerical integration curves instead of the analytical approximation of profiles, so reproduction and consequences of results are not exactly the same.

Comparison with analytical

The final step in model validation is to compare the approximate analytical solution proposed by Kramers and the results of numerical integration. It is worth mentioning that numerical integration remains the recommended method because one does not need to verify the ranges of validity of analytical approximation for every use case.

Industrial cases

The following illustrates a practical use case of the model. Next we scan a parameter space to confirm once again the model suitability as an alternative to analytical engineering estimations as per Perry's .

The following table confirms the expected values as per Perry's handbook.

4×5 DataFrame
Rowωη̄τᵢτₚ
Float64Float64Float64Float64Float64
133.60.8510.0203.0203.0
233.61.27.0141.0144.0
343.20.8513.0207.0203.0
443.21.29.0143.0144.0
+******************************************************************************

Sample reference case

Here we make use of the current implementation to check if it correctly approximates the last example provided in reference paper from [[@Kramers1952]]. To minimize rounding errors causes by unit conversions, we provide the required functions to convert from imperial to international system in the solution process.

The next table summarizes the results. It is seen that the dimensionless numbers are well approximated. It must be emphasized that the reference estimates η̄ᵣ by a graphical method – it was 1952 – and the current value is considered a good enough approximation. Additionally, the equation was not integrated numerically as done here, but engineering relationships were used in the approximation. That said, the proper loading to be considered in our days is η̄ᵢ.

4×3 DataFrame
RowQuantityReferenceComputed
StringStringString
11.151.15
2Nₖ1.171.17
3η̄ᵣ5.655.46
4η̄ᵢ4.995.91

Note: the last value in column Reference above is not provided in Kramers' paper but computed from the approximate analytical solution provided by the authors. As we see here, it may get >20% error under some circumstances.

Verification of Table 3

In the next cell we provide the kiln dimensions used by Kramers (1952) to experimentally validate the model. Some data from their Tab. 3 is then loaded and all rows are simulated with current model. Fractional hold-up seems to be well correlated at least to a few percent of the reference value.

12×5 DataFrame
Rowtan(β)nη̄ᵣη̄ᵢ
Float64Float64Float64Float64Float64
10.00940.0590.0051511.110.8
20.00940.090.002685.44.7
30.00940.1950.01328.88.9
40.00940.2320.007244.34.8
50.010.040.0063816.916.8
60.010.040.00514.413.9
70.010.0690.009215.014.6
80.010.0690.0065311.311.3
90.010.1060.01516.215.3
100.010.1590.0129.29.5
110.010.2380.01558.38.4
120.010.2380.01196.86.9

Dimensionless profiles

Next step in validation is to check profiles in dimensionless format, as done by Kramers in their Fig. 3. Notice that here we used the numerical integration curves instead of the analytical approximation of profiles, so reproduction and consequences of results are not exactly the same.

Comparison with analytical

The final step in model validation is to compare the approximate analytical solution proposed by Kramers and the results of numerical integration. It is worth mentioning that numerical integration remains the recommended method because one does not need to verify the ranges of validity of analytical approximation for every use case.

Industrial cases

The following illustrates a practical use case of the model. Next we scan a parameter space to confirm once again the model suitability as an alternative to analytical engineering estimations as per Perry's .

The following table confirms the expected values as per Perry's handbook.

4×5 DataFrame
Rowωη̄τᵢτₚ
Float64Float64Float64Float64Float64
133.60.8510.0203.0203.0
233.61.27.0141.0144.0
343.20.8513.0207.0203.0
443.21.29.0143.0144.0
diff --git a/dev/Notebooks/A1-Julia-para-Cientistas/index.html b/dev/Notebooks/A1-Julia-para-Cientistas/index.html index db572889c..db9273ce9 100644 --- a/dev/Notebooks/A1-Julia-para-Cientistas/index.html +++ b/dev/Notebooks/A1-Julia-para-Cientistas/index.html @@ -176,4 +176,4 @@ # ] # scalability # end

O vetor with_conversion contém os tempos de execução para a criação de vetores de 1, 10, 100, 1000 e 10000 elementos com conversão de valores de inteiros para dupla-precisão. Observe que os dois primeiros elementos levaram um tempo (aqui em nano-segundos) quase idênticos: existe uma constante de tempo da criação do vetor propriamente dito, a criação dos 10 primeiros elementos é quase negligível nesse caso.

Abaixo calculamos a diferença de tempo entre os dois processos e nos deparamos com mais uma surpresa: para 100 elementos, o tempo de alocação COM conversão é MENOR que o tempo SEM conversão. Ainda é muito cedo e fora de contexto para entrarmos no código LLVM gerado por Julia para entendermos a razão dessa anomalia. O importante a reter aqui é que para vetores de tamanhos importantes (> 1000 elementos) um tempo adicional de execução é adicionado por elemento e isso deve ser levado em conta quando escrevendo código científico.

# time_diff = (without_conversion - with_conversion)
-# time_diff_per_element = time_diff ./ [10^k for k = 0:3]

Espero que a decisão de incluir essas divagações um pouco cedo no aprendizado não sejam deletérias para a motivação do estudante, mas que criem curiosidade quanto aos tópicos mais avançados que veremos mais tarde.

Ainda falta muito para se concluir a introdução à atribuição de tipos, mas esse primeiro contato era necessário para que as próximos tópicos avancem de maneira mais fluida.


Parte 5 - Laços e condicionais


Parte 6 - Funções e despacho


Parte 7 - Pacotes e ecossistema


Parte 8 - Avaliando performance


Parte 9 - Álgebra linear


Parte 10 - Expressões regulares


Parte 11 - Execução concorrente


Parte 12 - Trabalhando com arquivos


Parte 13 - Bibliotecas gráficas


Parte 14 - Gráficos para publicações


Parte 15 - Tipos e estruturas


Parte 16 - Metaprogramação


Parte 17 - Interoperação com C


Criando conteúdos

+# time_diff_per_element = time_diff ./ [10^k for k = 0:3]

Espero que a decisão de incluir essas divagações um pouco cedo no aprendizado não sejam deletérias para a motivação do estudante, mas que criem curiosidade quanto aos tópicos mais avançados que veremos mais tarde.

Ainda falta muito para se concluir a introdução à atribuição de tipos, mas esse primeiro contato era necessário para que as próximos tópicos avancem de maneira mais fluida.


Parte 5 - Laços e condicionais


Parte 6 - Funções e despacho


Parte 7 - Pacotes e ecossistema


Parte 8 - Avaliando performance


Parte 9 - Álgebra linear


Parte 10 - Expressões regulares


Parte 11 - Execução concorrente


Parte 12 - Trabalhando com arquivos


Parte 13 - Bibliotecas gráficas


Parte 14 - Gráficos para publicações


Parte 15 - Tipos e estruturas


Parte 16 - Metaprogramação


Parte 17 - Interoperação com C


Criando conteúdos

diff --git a/dev/Notebooks/A2-Ciencia-Colaborativa-e-Julia/index.html b/dev/Notebooks/A2-Ciencia-Colaborativa-e-Julia/index.html index be8d1f98b..c98cdf972 100644 --- a/dev/Notebooks/A2-Ciencia-Colaborativa-e-Julia/index.html +++ b/dev/Notebooks/A2-Ciencia-Colaborativa-e-Julia/index.html @@ -1,2 +1,2 @@ -Ciência colaborativa e Julia · WallyToolbox.jl

Ciência colaborativa e Julia

Uma dificuldade recorrente encontrada em projetos científicos contendo uma componente numérica é o despreparo dos colaboradores para a gestão de dados e documentos. Essa dificuldade não é somente técnica, mas frequentemente a origem de discórdias nos projetos.

O estudo de Julia ou qualquer outra ferramenta para suporte computacional em ciência não tem sentido sem o caráter aplicativo no contexto de um projeto, seja ele acadêmico ou industrial. Neste anexo vamos abordar algumas ferramentas complementares ao uso de Julia úteis para o cientista e apontar os caminhos para encontrá-las e aprender mais sobre elas sem entrar nos detalhes de seus usos. A lista provida não é exaustiva mas contém um esqueleto mínimo que toda pesquisa séria deveria adotar para prover materiais com controle de qualidade e versionagem adequada.

Para estudar aspectos computacionais em ciência você precisa de alguns componentes de suporte à linguagem de programação usada, em nosso caso Julia. No que se segue vamos apresentar:

  • O editor de texto recomendado VS Code e a extensão requerida.
  • A linguagem $\LaTeX$ usada para a entrada de equações nos notebooks e artigos.
  • As ferramentas necessárias para editar $\LaTeX$ fora do contexto de Julia.
  • E finalmente o sistema de versionagem Git.
  • Outras ferramentas de suporte.

VS Code

Nos últimos anos VSCode se tornou o editor mais popular da comunidade open source e com toda razão. A qualidade da ferramenta provida pela Microsoft chegou a um nível que é difícil justificar o uso de um editor de código comercial. Aliado a isso, com a extensão Julia VSCode um suporte avançado a edição de código e documentação da linguagem é disponível. Além disso, a ferramenta provê integração com o sistema de controle de versões Git que vamos discutir no que se segue.

$\LaTeX$

Para a entrada de equações nos notebooks, Julia markdown provê suporte à renderização de $\LaTeX$. É fundamental ter algum domínio desta linguagem para a elaborção de documentos científicos. As distribuições mais populares são MiKTeX para Windows e TeX Live para os demais sistemas operacionais. Ademais, artigos escritos usando a linguagem são aceitos pelas publicações mais relevantes em várias áreas do conhecimento. Outra razão para o uso de $\LaTeX$ é a estocagem de documentos em formato de texto bruto, o que permite um controle de versões com Git.

TeXStudio

Em complemento à distribuição de $\LaTeX$ é necessário um editor de texto adaptado. Embora existam extensões excelentes para realizar a compilação dos documentos [1] para VS Code, elas não são muito fáceis de se compreender para um iniciante. Por isso recomendamos TeXStudio para editar e compilar documentos escritos em $\LaTeX$.

JabRef

Embora as referências bibliográficas possam ser inseridas diretamente em documentos $\LaTeX$, o ideal é utilizar uma base de dados comum que possa ser reutilizada ao longo da carreira de pesquisa. JabRef é um gestor de bibliografia para o formato $BibTeX$ suportado por $\LaTeX$ que estoca dados diretamente em formato textual. A interface gráfica é fácil de interagir e dado o formato de documento, as bases .bib são compatíveis com Git.

Git

Falamos bastante em Git até o momento sem entrar em mais detalhes de que é uma ferramenta de controle de versões. Git elimina a prática insana de se salvar manualmente várias cópias de um mesmo documento para gerir versões. O sistema basea-se na comparação de conteúdos e propõe de se salvar unicamente os documentos modificados em um projeto. Embora seu uso básico seja bastante simples e plausível de se aprender em uma tarde de estudo, a ferramenta é bastante complexa e complexa, permitindo de voltar em pontos históricos de um projeto, publicar releases, etc. Para uma pesquisa sã e durável, o uso de documentos em formatos aceitando texto bruto em conjunto com Git é ideal.

Python

Embora esse seja um curso de Julia, é importante que o cientista também tenha conhecimento de Python. Python é uma linguagem generalista que também é bastante rica em termos de pacotes para aplicações científicas. Em termos de aprendizado é relativamente mais simples que Julia, com o porém que código nativo em Python é extremamente lento, requerindo sempre o uso de bibliotecas que na verdade são implementadas em C, Fortran, Rust, etc. Para a concepção de aplicações web especialmente a linguagem encontra-se num estado de maturidade bastante superior à Julia e não deve ser negligenciada. Ademais, encontra-se entre as linguagens mais utilizadas no mundo, enquanto Julia é uma linguagem de nicho.

GNUPlot

Embora tratemos da temática de gráficos para publicações no curso, uma alternativa sempre é interessante. GNUPlot é uma ferramenta open source contando com sua própria linguagem para geração de gráficos. É uma ferramenta interessante principalmente quando se deseja padronizar todas as figuras em um projeto através de arquivos de configuração.

  • 1Por compilação entende-se em nossos dias transformar o documento em PDF.
+Ciência colaborativa e Julia · WallyToolbox.jl

Ciência colaborativa e Julia

Uma dificuldade recorrente encontrada em projetos científicos contendo uma componente numérica é o despreparo dos colaboradores para a gestão de dados e documentos. Essa dificuldade não é somente técnica, mas frequentemente a origem de discórdias nos projetos.

O estudo de Julia ou qualquer outra ferramenta para suporte computacional em ciência não tem sentido sem o caráter aplicativo no contexto de um projeto, seja ele acadêmico ou industrial. Neste anexo vamos abordar algumas ferramentas complementares ao uso de Julia úteis para o cientista e apontar os caminhos para encontrá-las e aprender mais sobre elas sem entrar nos detalhes de seus usos. A lista provida não é exaustiva mas contém um esqueleto mínimo que toda pesquisa séria deveria adotar para prover materiais com controle de qualidade e versionagem adequada.

Para estudar aspectos computacionais em ciência você precisa de alguns componentes de suporte à linguagem de programação usada, em nosso caso Julia. No que se segue vamos apresentar:

  • O editor de texto recomendado VS Code e a extensão requerida.
  • A linguagem $\LaTeX$ usada para a entrada de equações nos notebooks e artigos.
  • As ferramentas necessárias para editar $\LaTeX$ fora do contexto de Julia.
  • E finalmente o sistema de versionagem Git.
  • Outras ferramentas de suporte.

VS Code

Nos últimos anos VSCode se tornou o editor mais popular da comunidade open source e com toda razão. A qualidade da ferramenta provida pela Microsoft chegou a um nível que é difícil justificar o uso de um editor de código comercial. Aliado a isso, com a extensão Julia VSCode um suporte avançado a edição de código e documentação da linguagem é disponível. Além disso, a ferramenta provê integração com o sistema de controle de versões Git que vamos discutir no que se segue.

$\LaTeX$

Para a entrada de equações nos notebooks, Julia markdown provê suporte à renderização de $\LaTeX$. É fundamental ter algum domínio desta linguagem para a elaborção de documentos científicos. As distribuições mais populares são MiKTeX para Windows e TeX Live para os demais sistemas operacionais. Ademais, artigos escritos usando a linguagem são aceitos pelas publicações mais relevantes em várias áreas do conhecimento. Outra razão para o uso de $\LaTeX$ é a estocagem de documentos em formato de texto bruto, o que permite um controle de versões com Git.

TeXStudio

Em complemento à distribuição de $\LaTeX$ é necessário um editor de texto adaptado. Embora existam extensões excelentes para realizar a compilação dos documentos [1] para VS Code, elas não são muito fáceis de se compreender para um iniciante. Por isso recomendamos TeXStudio para editar e compilar documentos escritos em $\LaTeX$.

JabRef

Embora as referências bibliográficas possam ser inseridas diretamente em documentos $\LaTeX$, o ideal é utilizar uma base de dados comum que possa ser reutilizada ao longo da carreira de pesquisa. JabRef é um gestor de bibliografia para o formato $BibTeX$ suportado por $\LaTeX$ que estoca dados diretamente em formato textual. A interface gráfica é fácil de interagir e dado o formato de documento, as bases .bib são compatíveis com Git.

Git

Falamos bastante em Git até o momento sem entrar em mais detalhes de que é uma ferramenta de controle de versões. Git elimina a prática insana de se salvar manualmente várias cópias de um mesmo documento para gerir versões. O sistema basea-se na comparação de conteúdos e propõe de se salvar unicamente os documentos modificados em um projeto. Embora seu uso básico seja bastante simples e plausível de se aprender em uma tarde de estudo, a ferramenta é bastante complexa e complexa, permitindo de voltar em pontos históricos de um projeto, publicar releases, etc. Para uma pesquisa sã e durável, o uso de documentos em formatos aceitando texto bruto em conjunto com Git é ideal.

Python

Embora esse seja um curso de Julia, é importante que o cientista também tenha conhecimento de Python. Python é uma linguagem generalista que também é bastante rica em termos de pacotes para aplicações científicas. Em termos de aprendizado é relativamente mais simples que Julia, com o porém que código nativo em Python é extremamente lento, requerindo sempre o uso de bibliotecas que na verdade são implementadas em C, Fortran, Rust, etc. Para a concepção de aplicações web especialmente a linguagem encontra-se num estado de maturidade bastante superior à Julia e não deve ser negligenciada. Ademais, encontra-se entre as linguagens mais utilizadas no mundo, enquanto Julia é uma linguagem de nicho.

GNUPlot

Embora tratemos da temática de gráficos para publicações no curso, uma alternativa sempre é interessante. GNUPlot é uma ferramenta open source contando com sua própria linguagem para geração de gráficos. É uma ferramenta interessante principalmente quando se deseja padronizar todas as figuras em um projeto através de arquivos de configuração.

  • 1Por compilação entende-se em nossos dias transformar o documento em PDF.
diff --git a/dev/Notes/Brain/index.html b/dev/Notes/Brain/index.html index 6d3d55ec3..affc3d2b0 100644 --- a/dev/Notes/Brain/index.html +++ b/dev/Notes/Brain/index.html @@ -765,4 +765,4 @@ A5WC48MEAsgr5ABz5hPnJlkS4YvlpABsIJ3nsePmAJaSOgIYON5BAIYLcyMzfnvL5I/H4ANuoVEiN5LmqSwwdxCdM/1AQAC1cBgB7yAwABADOIDc0xojfuZ06whBS+foA1Pm52KvEkPmBgCQA/DRGUNpQJACMUNzAnCr4AMFAroAF7IH5LQCIxD6ArPj5dG6Ac4A4QFH5Ifl2+b3gFPnYIO8gRTapilaQJhSBAGYAwgDMAL+MbvkvSB758kh2IKr -AhiBGwj/wsMTBALxAqmrRGCEg/WkLYOkA/WlJpNLwbLx2+XYASYSniC/CC2BwAFPWGwgl+ZyknEAJQmL4ZlAGcBOAQAA

%%

+AhiBGwj/wsMTBALxAqmrRGCEg/WkLYOkA/WlJpNLwbLx2+XYASYSniC/CC2BwAFPWGwgl+ZyknEAJQmL4ZlAGcBOAQAA

%%

diff --git a/dev/Notes/Conductivity-in-Porous-Media/index.html b/dev/Notes/Conductivity-in-Porous-Media/index.html index 2ef2791aa..f2194f594 100644 --- a/dev/Notes/Conductivity-in-Porous-Media/index.html +++ b/dev/Notes/Conductivity-in-Porous-Media/index.html @@ -2601,4 +2601,4 @@ ovSt9pi87F6uLzcXuEAGZJ83yPF5GL+sXtIAp1NNmQ8gOUACVgLKgwFQ0EiXF/GL1EANaknCBScjuJKzACUCOegYJeYyhLAChL5iAcI0IQAx+nQl/DkMWAQbAVoB0w3MwWB7IfsmJpKD6ui/Y3ExALCAF8oEqh1JayOqiE+niLov0xwDADNF7QQAQAJ2EyZQHKIKlBnc8/MKBgHLAES/HF+nqEHoSEALZQR0wfF++OF0Xr0AJABU2B00HbIYNw+0 -AJ9oZS93AHa3K6AdOn/b0pYCTmBnAI42tUv8pfw7AHF72L+cXrZknABDdRwWDMAMIAZgAWI9BS+80XhLxzgdOnLWB/xQfYAZL0WADIAFhVggAsIARtzOgpPg3AAEbf0o3aL5VWbDPwgBGFqLAAdhFvbzUvdgAgKh5xeaCvSjS3BywA4BoOl8zkOAAGmg3IEZJDAABqLxAgIAAA==

%%

+AJ9oZS93AHa3K6AdOn/b0pYCTmBnAI42tUv8pfw7AHF72L+cXrZknABDdRwWDMAMIAZgAWI9BS+80XhLxzgdOnLWB/xQfYAZL0WADIAFhVggAsIARtzOgpPg3AAEbf0o3aL5VWbDPwgBGFqLAAdhFvbzUvdgAgKh5xeaCvSjS3BywA4BoOl8zkOAAGmg3IEZJDAABqLxAgIAAA==

%%

diff --git a/dev/Notes/Drafts/index.html b/dev/Notes/Drafts/index.html index e5ce3a9aa..99cbf5c8a 100644 --- a/dev/Notes/Drafts/index.html +++ b/dev/Notes/Drafts/index.html @@ -21,4 +21,4 @@ - Under `Heat Equation` set heat conductivity
- `Heat Source`at boundary 8 and set a Dirichlet condition for temperature of 813.15 K
 - `Symmetry` at boundaries 6/7 and set heat flux to 0 W (no gradient).
 - `Soil` at boundaries 1/2 and set a Dirichlet condition for temperature of 298.15 K.
-- `Environment` at boundary 3 and provide an HTC of 10 W/m/K and temperature of 298.15 K.
+- `Environment` at boundary 3 and provide an HTC of 10 W/m/K and temperature of 298.15 K. diff --git a/dev/Notes/Life/index.html b/dev/Notes/Life/index.html index 6d31b135c..214f335e4 100644 --- a/dev/Notes/Life/index.html +++ b/dev/Notes/Life/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

kanban-plugin: basic


Organização pessoal

  • [ ] Nouvelle acte de mariage
  • [ ] Add LibreOffice and Obsidian to scientific-environment
  • [ ] Garantia Shokz
  • [ ] Concluir/enviar dossier de naturalização
  • [ ] RDV Ophtalmologue
  • [ ] Terminar update to clubot com envio de emails
  • [ ] Atualizar CV Lattes
  • [ ] Aplicar validação do doutorado
  • [ ] Migrar planejamento de DryTooling.jl aqui
  • [ ] Check purchase of new tower
  • [ ] Pédalier Shimano Deore FC 30 dents
  • [ ] Chambre à air X2
  • [ ] Organizar e mover links de esportes à página
  • [ ] Terminar de organizar links técnicos nas páginas de bookmarks.
  • [ ] Deploy paperless
  • [ ] Deploy Wiki.js

OpenFOAM

  • [ ] Start creating a CHT case step-by-step from aachenBombSteady (compatible with radiation and wall heat losses)
  • [ ] (paper C2H2) migrate to OpenFOAM11 and publish
  • [ ] (aachenBomb) Provide post-processing
  • [ ] (aachenBombSteady) Finish case construction
  • [ ] Test this function for post-processing.
  • [ ] Add case for testing PSD
  • [ ] (sedimentationBox): export STL model from SpaceClaim and mesh in snappyHexMesh
  • [ ] (sedimentationBox): Impose flow rate at outlet with pressure inlet if possible
  • [ ] (sedimentationBox) Post-process cases
  • [ ] (horizontalMixer) Compute fractional mass in system with respected to injected (extract from log files).
  • [ ] (horizontalMixer) Work towards enabling particleTracks in cloudFunctions.
  • [ ] (horizontalMixer) Ensure individual time-steps converged during solution (residuals get first value only).
  • [ ] (horizontalMixer) Plots of data in patchFlowRate(patch=outlet, cloud:massFlux) files.
  • [ ] (horizontalMixer) Process lagrangian/cloud/patchPostProcessing1/* (Julia script ongoing).
  • [ ] (horizontalMixer) Explore solution configuration.
  • [ ] (horizontalMixer) Organize scripts as a single module and runners.
  • [ ] (horizontalMixer) Download all related papers!
  • [ ] (horizontalMixer) learn from Clérac's fvSolution for better controls

Cursos online

Portfolio

  • [ ] Comparison of drag models using a sedimentation box in OpenFOAM
  • [ ] Cyclone separator with MPPIC cloud in OpenFOAM
  • [ ] Setup of thermophysical properties with temperature dependence
  • [ ] Droplet combustion with arbitrary user-defined composition
  • [ ] Multicomponent airlock system
  • [ ] Arbitrary user-defined gas phase kinetics with Graf (2007)
  • [ ] Carbonitriding model with example of complex part
  • [ ] Spray dryer
  • [ ] Coded reactor wall coupling
  • [ ] Simplified acetylene kinetics model
  • [ ] Estudar MFiX

%% kanban:settings

{"kanban-plugin":"basic"}

%%

+- · WallyToolbox.jl

kanban-plugin: basic


Organização pessoal

  • [ ] Nouvelle acte de mariage
  • [ ] Add LibreOffice and Obsidian to scientific-environment
  • [ ] Garantia Shokz
  • [ ] Concluir/enviar dossier de naturalização
  • [ ] RDV Ophtalmologue
  • [ ] Terminar update to clubot com envio de emails
  • [ ] Atualizar CV Lattes
  • [ ] Aplicar validação do doutorado
  • [ ] Migrar planejamento de DryTooling.jl aqui
  • [ ] Check purchase of new tower
  • [ ] Pédalier Shimano Deore FC 30 dents
  • [ ] Chambre à air X2
  • [ ] Organizar e mover links de esportes à página
  • [ ] Terminar de organizar links técnicos nas páginas de bookmarks.
  • [ ] Deploy paperless
  • [ ] Deploy Wiki.js

OpenFOAM

  • [ ] Start creating a CHT case step-by-step from aachenBombSteady (compatible with radiation and wall heat losses)
  • [ ] (paper C2H2) migrate to OpenFOAM11 and publish
  • [ ] (aachenBomb) Provide post-processing
  • [ ] (aachenBombSteady) Finish case construction
  • [ ] Test this function for post-processing.
  • [ ] Add case for testing PSD
  • [ ] (sedimentationBox): export STL model from SpaceClaim and mesh in snappyHexMesh
  • [ ] (sedimentationBox): Impose flow rate at outlet with pressure inlet if possible
  • [ ] (sedimentationBox) Post-process cases
  • [ ] (horizontalMixer) Compute fractional mass in system with respected to injected (extract from log files).
  • [ ] (horizontalMixer) Work towards enabling particleTracks in cloudFunctions.
  • [ ] (horizontalMixer) Ensure individual time-steps converged during solution (residuals get first value only).
  • [ ] (horizontalMixer) Plots of data in patchFlowRate(patch=outlet, cloud:massFlux) files.
  • [ ] (horizontalMixer) Process lagrangian/cloud/patchPostProcessing1/* (Julia script ongoing).
  • [ ] (horizontalMixer) Explore solution configuration.
  • [ ] (horizontalMixer) Organize scripts as a single module and runners.
  • [ ] (horizontalMixer) Download all related papers!
  • [ ] (horizontalMixer) learn from Clérac's fvSolution for better controls

Cursos online

Portfolio

  • [ ] Comparison of drag models using a sedimentation box in OpenFOAM
  • [ ] Cyclone separator with MPPIC cloud in OpenFOAM
  • [ ] Setup of thermophysical properties with temperature dependence
  • [ ] Droplet combustion with arbitrary user-defined composition
  • [ ] Multicomponent airlock system
  • [ ] Arbitrary user-defined gas phase kinetics with Graf (2007)
  • [ ] Carbonitriding model with example of complex part
  • [ ] Spray dryer
  • [ ] Coded reactor wall coupling
  • [ ] Simplified acetylene kinetics model
  • [ ] Estudar MFiX

%% kanban:settings

{"kanban-plugin":"basic"}

%%

diff --git a/dev/Notes/Monthly/index.html b/dev/Notes/Monthly/index.html index cbf2cc15e..528f33357 100644 --- a/dev/Notes/Monthly/index.html +++ b/dev/Notes/Monthly/index.html @@ -1,2 +1,2 @@ -Monthly · WallyToolbox.jl

Monthly


July 2024


April 2024

  • Reviewed GPU limitations for Ansys Fluent. It remains NVIDIA only. Currently the models remain quite limited to simple flows and the classic turbulence model. Possibility of species transport but to reactions.

  • Reviewed Ansys Tutorial Guide 2023R1 chapter regarding droplets evaporation. There is nothing there I am not already using in the models I conceive. Remember to use transient tracking and check mean properties for iso-surfaces display.

  • Continued (re-)learning about UDF's. Header files seem fine if placed under an include/ directory at project root (not case root!). Simulations can be made more flexible by using Scheme variables which can be parsed by UDF's.

  • Downloading files from Analysis of Transport Phenomena at MITx.

  • Worked on random walk diffusion models at microscopic scale. Started a draft of a tutorial for moving particles in a square grid in Julia.

  • Continued working on diffusion, now writing down the draft of the course. I think an annex of thermodynamics or even dedicated chapters might be required, to be defined.

+Monthly · WallyToolbox.jl

Monthly


July 2024


April 2024

  • Reviewed GPU limitations for Ansys Fluent. It remains NVIDIA only. Currently the models remain quite limited to simple flows and the classic turbulence model. Possibility of species transport but to reactions.

  • Reviewed Ansys Tutorial Guide 2023R1 chapter regarding droplets evaporation. There is nothing there I am not already using in the models I conceive. Remember to use transient tracking and check mean properties for iso-surfaces display.

  • Continued (re-)learning about UDF's. Header files seem fine if placed under an include/ directory at project root (not case root!). Simulations can be made more flexible by using Scheme variables which can be parsed by UDF's.

  • Downloading files from Analysis of Transport Phenomena at MITx.

  • Worked on random walk diffusion models at microscopic scale. Started a draft of a tutorial for moving particles in a square grid in Julia.

  • Continued working on diffusion, now writing down the draft of the course. I think an annex of thermodynamics or even dedicated chapters might be required, to be defined.

diff --git a/dev/Notes/Naturalisation/index.html b/dev/Notes/Naturalisation/index.html index d5df9b05b..181c8b5de 100644 --- a/dev/Notes/Naturalisation/index.html +++ b/dev/Notes/Naturalisation/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

Suivi des étapes

ÉtatÉtapeNotes
FiniSaisieJuste le formulaire à remplir, le plus compliqué c'est d'avoir toutes les dates et adresses des résidences précedentes.
En coursDocumentsIl manque les traductions, certificats de travail, casier judiciaire et bordereau fiscale.

Documents

Mes informations

  • [x] Passeport
  • [x] Acte de naissance (propre)
  • [ ] Acte de naissance (propre, traduction française)
  • [x] Titre de séjour (propre)
  • [x] Diplôme français niveau >3 (notes)

Parents et fratrie

  • [ ] Acte de mariage (parents)
  • [ ] Acte de mariage (parents, traduction française)
  • [x] Acte de naissance (mère)
  • [ ] Acte de naissance (mère, traduction française)
  • [x] Acte de naissance (père)
  • [ ] Acte de naissance (père, traduction française)
  • [x] Acte de décès (père)
  • [ ] Acte de décès (père, traduction française)

Ma situation familiale

  • [x] Acte de mariage
  • [x] Titre de séjour du conjoint
  • [ ] Certificats de travail du conjoint (3 dernières années)
  • [x] Contrat de travail du conjoint
  • [x] Les 3 derniers bulletins de salaire du conjoint
  • [x] Bulletins de salaire du conjoint de novembre et décembre des 3 dernières années

Mon domicile

  • [x] Contrat de location
  • [x] Les 3 dernières quittances de loyer
  • [x] Justificatif de domicile datant de moins de 6 mois
  • [ ] Casier judiciaire étranger des pays dont vous avez la nationalité
  • [ ] Casier judiciaire étranger des pays dont vous avez la nationalité (traduction française)

Mes ressources

  • [x] Avis d’imposition des 3 dernières années
  • [ ] Bordereau de situation fiscale (modèle P. 237) (3 dernières années)
  • [ ] Les certificats de travail, concernant si possible les 3 dernières années
  • [x] Contrat de travail et ses MAJ
  • [x] Les 3 derniers bulletins de salaire
  • [x] Bulletins de salaire de novembre et décembre des 3 dernières années
+- · WallyToolbox.jl

Suivi des étapes

ÉtatÉtapeNotes
FiniSaisieJuste le formulaire à remplir, le plus compliqué c'est d'avoir toutes les dates et adresses des résidences précedentes.
En coursDocumentsIl manque les traductions, certificats de travail, casier judiciaire et bordereau fiscale.

Documents

Mes informations

  • [x] Passeport
  • [x] Acte de naissance (propre)
  • [ ] Acte de naissance (propre, traduction française)
  • [x] Titre de séjour (propre)
  • [x] Diplôme français niveau >3 (notes)

Parents et fratrie

  • [ ] Acte de mariage (parents)
  • [ ] Acte de mariage (parents, traduction française)
  • [x] Acte de naissance (mère)
  • [ ] Acte de naissance (mère, traduction française)
  • [x] Acte de naissance (père)
  • [ ] Acte de naissance (père, traduction française)
  • [x] Acte de décès (père)
  • [ ] Acte de décès (père, traduction française)

Ma situation familiale

  • [x] Acte de mariage
  • [x] Titre de séjour du conjoint
  • [ ] Certificats de travail du conjoint (3 dernières années)
  • [x] Contrat de travail du conjoint
  • [x] Les 3 derniers bulletins de salaire du conjoint
  • [x] Bulletins de salaire du conjoint de novembre et décembre des 3 dernières années

Mon domicile

  • [x] Contrat de location
  • [x] Les 3 dernières quittances de loyer
  • [x] Justificatif de domicile datant de moins de 6 mois
  • [ ] Casier judiciaire étranger des pays dont vous avez la nationalité
  • [ ] Casier judiciaire étranger des pays dont vous avez la nationalité (traduction française)

Mes ressources

  • [x] Avis d’imposition des 3 dernières années
  • [ ] Bordereau de situation fiscale (modèle P. 237) (3 dernières années)
  • [ ] Les certificats de travail, concernant si possible les 3 dernières années
  • [x] Contrat de travail et ses MAJ
  • [x] Les 3 derniers bulletins de salaire
  • [x] Bulletins de salaire de novembre et décembre des 3 dernières années
diff --git a/dev/Notes/OpenFOAM-Cases/index.html b/dev/Notes/OpenFOAM-Cases/index.html index 4dbd4eeb1..2bb326a9d 100644 --- a/dev/Notes/OpenFOAM-Cases/index.html +++ b/dev/Notes/OpenFOAM-Cases/index.html @@ -129,4 +129,4 @@ t/8sqf9f+d/mkBzaeqnzDP+P/mkDUeMLsNzgBwbPf5uCj3mAGABL/voDswd3sU6f+2/igFN4vTsEBnAOhLAG7+r/oHa1GJrIQF7+LwCHY2SUSnNYCA2ALiAIgdznQJu4ilkTTuGTdDf7MA9AeaD4AzruXyXoWYBtS9sNxKjoQARgPtj6AaIgwAEABcMMC7U5AcAHY6HfMtjPcJAMu5kBboCQAF+FIJjz4AZiNaBAgiYIYGGB7MEkapg2cMoBtgME -DaAvA+wLYG2BpgQP7z+yAcmjPw1HnXje+4eBACU6CAGYDCAzAB+Br465rDypcDZtnCOQa+PhIUgGQFcbBA24JB6QA2AI3BHqZPpACd+KQX4zCAwuh7AZB8gXYAng8xvBwb4cAACBsAawJQGxBsXqpD+48IOECSUTEMOBAAA=

%%

+DaAvA+wLYG2BpgQP7z+yAcmjPw1HnXje+4eBACU6CAGYDCAzAB+Br465rDypcDZtnCOQa+PhIUgGQFcbBA24JB6QA2AI3BHqZPpACd+KQX4zCAwuh7AZB8gXYAng8xvBwb4cAACBsAawJQGxBsXqpD+48IOECSUTEMOBAAA=

%%

diff --git a/dev/Notes/Server/index.html b/dev/Notes/Server/index.html index 883486acd..de0404432 100644 --- a/dev/Notes/Server/index.html +++ b/dev/Notes/Server/index.html @@ -201,4 +201,4 @@ K9aQFej82JinSQa9cvfoCY9uwR03GkTveb36A54H92kpfiYtA1C0IOd5kw9mQ1hfGkOkqA8hAfeiDQgyniYxcuzjgqEOeETkT1GA9TK6Qe6DAAQB/g/KrTB3YnvXT36AqvW102cqsFT3BgJABNYe9FfYR2QInwM6BjQ7oEJXN9LQC8AMC8wB/DKAQknSLngewL3299bfTc6m9+vZL1YgbTB5I9WXuKQWBAZgMIDMARmJX0ZCHveKQfwnUEehzles -rgDIh5SJ7bC8lQMFJmdg6bR4sgr8PR4H9tmpRqlymgBOAPOzADCA+s7NZ6Q+9W/cEDnFGGllnhAYyGMSHgQAA===

%%

+rgDIh5SJ7bC8lQMFJmdg6bR4sgr8PR4H9tmpRqlymgBOAPOzADCA+s7NZ6Q+9W/cEDnFGGllnhAYyGMSHgQAA===

%%

diff --git a/dev/Notes/read/index.html b/dev/Notes/read/index.html index 34bbe729f..f4c9aa21e 100644 --- a/dev/Notes/read/index.html +++ b/dev/Notes/read/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl
+- · WallyToolbox.jl
diff --git a/dev/References/@Aissa2015a/index.html b/dev/References/@Aissa2015a/index.html index a038bb4b6..3efbca325 100644 --- a/dev/References/@Aissa2015a/index.html +++ b/dev/References/@Aissa2015a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Ranz and Marshall correlations limits on heat flow between a sphere and its surrounding gas at high temperature authors: Abderrahmane Aissa, Mohamed Abdelouahab, Abdelkader Noureddine, Mohammed Elganaoui, Bernard Pateyron year: 2015 –-

+- · WallyToolbox.jl

title: Ranz and Marshall correlations limits on heat flow between a sphere and its surrounding gas at high temperature authors: Abderrahmane Aissa, Mohamed Abdelouahab, Abdelkader Noureddine, Mohammed Elganaoui, Bernard Pateyron year: 2015 –-

diff --git a/dev/References/@Amsden1989/index.html b/dev/References/@Amsden1989/index.html index 2b2a22df8..bae647e11 100644 --- a/dev/References/@Amsden1989/index.html +++ b/dev/References/@Amsden1989/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "KIVA-II: A computer program for chemically reactive flows with sprays" authors: A. A. Amsden, P. J. O'Rourke, T. D. Butler year: 1989 URL: https://doi.org/10.2172/6228444 –- Also check Liu1993 [13] (in OpenFOAM generalization to distortedSphereDrag).

+- · WallyToolbox.jl

title: "KIVA-II: A computer program for chemically reactive flows with sprays" authors: A. A. Amsden, P. J. O'Rourke, T. D. Butler year: 1989 URL: https://doi.org/10.2172/6228444 –- Also check Liu1993 [13] (in OpenFOAM generalization to distortedSphereDrag).

diff --git a/dev/References/@Antonelo2021a/index.html b/dev/References/@Antonelo2021a/index.html index 1920405fc..5e2ec261f 100644 --- a/dev/References/@Antonelo2021a/index.html +++ b/dev/References/@Antonelo2021a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Physics-informed neural nets for control of dynamical systems authors: Eric Aislan Antonelo, Eduardo Camponogara, Laio Oriel Seman, Eduardo Rehbein de Souza, Jean P. Jordanou, Jomi F. Hubner year: 2021 URL: https://doi.org/10.48550/arXiv.2104.02556 –-

+- · WallyToolbox.jl

title: Physics-informed neural nets for control of dynamical systems authors: Eric Aislan Antonelo, Eduardo Camponogara, Laio Oriel Seman, Eduardo Rehbein de Souza, Jean P. Jordanou, Jomi F. Hubner year: 2021 URL: https://doi.org/10.48550/arXiv.2104.02556 –-

diff --git a/dev/References/@Aparicio1994/index.html b/dev/References/@Aparicio1994/index.html index caae7bd7c..0608669b9 100644 --- a/dev/References/@Aparicio1994/index.html +++ b/dev/References/@Aparicio1994/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Ammonia synthesis kinetics: Surface chemistry, rate expressions, and kinetic analysis" authors: Luis M. Aparicio, James A. Dumesic year: 1994 –-

+- · WallyToolbox.jl

title: "Ammonia synthesis kinetics: Surface chemistry, rate expressions, and kinetic analysis" authors: Luis M. Aparicio, James A. Dumesic year: 1994 –-

diff --git a/dev/References/@Arthurs2021a/index.html b/dev/References/@Arthurs2021a/index.html index 88ef9e89c..71ec0dbd2 100644 --- a/dev/References/@Arthurs2021a/index.html +++ b/dev/References/@Arthurs2021a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Active training of physics-informed neural networks to aggregate and interpolate parametric solutions to the Navier-Stokes equations authors: Christopher J. Arthurs, Andrew P. King year: 2021 URL: https://doi.org/10.1016/j.jcp.2021.110364 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla8i8cvFX_ZGzT6Z9A?e=MJdHtJ –-

+- · WallyToolbox.jl

title: Active training of physics-informed neural networks to aggregate and interpolate parametric solutions to the Navier-Stokes equations authors: Christopher J. Arthurs, Andrew P. King year: 2021 URL: https://doi.org/10.1016/j.jcp.2021.110364 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla8i8cvFX_ZGzT6Z9A?e=MJdHtJ –-

diff --git a/dev/References/@Balaji2014/index.html b/dev/References/@Balaji2014/index.html index b90ba6cb6..91a507b37 100644 --- a/dev/References/@Balaji2014/index.html +++ b/dev/References/@Balaji2014/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Essentials of radiation heat transfer authors: C. Balaji year: 2014 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZoCdJkJqcjDRZVs9J?e=mbefIU –-

+- · WallyToolbox.jl

title: Essentials of radiation heat transfer authors: C. Balaji year: 2014 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZoCdJkJqcjDRZVs9J?e=mbefIU –-

diff --git a/dev/References/@Bird2001/index.html b/dev/References/@Bird2001/index.html index 8de69768d..74dbb9fc2 100644 --- a/dev/References/@Bird2001/index.html +++ b/dev/References/@Bird2001/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Transport phenomena" authors: R. B. Bird, W. E. Stewart, E. N. Lightfoot year: 2001 –-

+- · WallyToolbox.jl

title: "Transport phenomena" authors: R. B. Bird, W. E. Stewart, E. N. Lightfoot year: 2001 –-

diff --git a/dev/References/@Cai2021a/index.html b/dev/References/@Cai2021a/index.html index 4d6ad0ce1..1eb72e45b 100644 --- a/dev/References/@Cai2021a/index.html +++ b/dev/References/@Cai2021a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Physics-informed neural networks for heat transfer problems authors: Shengze Cai, Zhicheng Wang, Sifan Wang, Paris Perdikaris, George Em Karniadakis year: 2021 URL: https://doi.org/10.1115/1.4050542 –-

+- · WallyToolbox.jl

title: Physics-informed neural networks for heat transfer problems authors: Shengze Cai, Zhicheng Wang, Sifan Wang, Paris Perdikaris, George Em Karniadakis year: 2021 URL: https://doi.org/10.1115/1.4050542 –-

diff --git a/dev/References/@Cheilytko2016a/index.html b/dev/References/@Cheilytko2016a/index.html index 3855520f9..738f020f5 100644 --- a/dev/References/@Cheilytko2016a/index.html +++ b/dev/References/@Cheilytko2016a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Finding of the generalized equation of thermal conductivity for porous heat-insulating materials" authors: Andrii Cheilytko year: 2016 –-

+- · WallyToolbox.jl

title: "Finding of the generalized equation of thermal conductivity for porous heat-insulating materials" authors: Andrii Cheilytko year: 2016 –-

diff --git a/dev/References/@Chikhi2020a/index.html b/dev/References/@Chikhi2020a/index.html index 685776b20..0ed9b456e 100644 --- a/dev/References/@Chikhi2020a/index.html +++ b/dev/References/@Chikhi2020a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Effective thermal conductivity of porous biomaterials: Numerical investigation" authors: M. Chikhi year: 2020 –-

+- · WallyToolbox.jl

title: "Effective thermal conductivity of porous biomaterials: Numerical investigation" authors: M. Chikhi year: 2020 –-

diff --git a/dev/References/@Crank1996/index.html b/dev/References/@Crank1996/index.html index b5fdaa66c..28f002515 100644 --- a/dev/References/@Crank1996/index.html +++ b/dev/References/@Crank1996/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "A practical method for Numerical evaluation of solutions of partial differential equations of the heat-conduction type" authors: J. Crank, P. Nicolson year: 1996 –-

+- · WallyToolbox.jl

title: "A practical method for Numerical evaluation of solutions of partial differential equations of the heat-conduction type" authors: J. Crank, P. Nicolson year: 1996 –-

diff --git a/dev/References/@Cuomo2022a/index.html b/dev/References/@Cuomo2022a/index.html index 0f29e3a72..874a13767 100644 --- a/dev/References/@Cuomo2022a/index.html +++ b/dev/References/@Cuomo2022a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Scientific machine learning through physics-informed neural networks: Where we are and what's next" authors: Salvatore Cuomo, Vincenzo Schiano di Cola, Fabio Giampaolo, Gianluigi Rozza, Maziar Raissi, Francesco Piccialli year: 2022 DOI: https://doi.org/10.48550/arXiv.2201.05624 –-

+- · WallyToolbox.jl

title: "Scientific machine learning through physics-informed neural networks: Where we are and what's next" authors: Salvatore Cuomo, Vincenzo Schiano di Cola, Fabio Giampaolo, Gianluigi Rozza, Maziar Raissi, Francesco Piccialli year: 2022 DOI: https://doi.org/10.48550/arXiv.2201.05624 –-

diff --git a/dev/References/@Fadayini2021/index.html b/dev/References/@Fadayini2021/index.html index f3db2948e..a3121d2f8 100644 --- a/dev/References/@Fadayini2021/index.html +++ b/dev/References/@Fadayini2021/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Simulation and optimization of an integrated process flow sheet for cement production authors: Oluwafemi M. Fadayini, Adekunle A. Obisanya, Gloria O. Ajiboye, Clement Madu, Tajudeen O. Ipaye, Taiwo O. Rabiu, Shola J. Ajayi, Joseph T. Akintola year: 2021 –-

+- · WallyToolbox.jl

title: Simulation and optimization of an integrated process flow sheet for cement production authors: Oluwafemi M. Fadayini, Adekunle A. Obisanya, Gloria O. Ajiboye, Clement Madu, Tajudeen O. Ipaye, Taiwo O. Rabiu, Shola J. Ajayi, Joseph T. Akintola year: 2021 –-

diff --git a/dev/References/@Fang2023a/index.html b/dev/References/@Fang2023a/index.html index 399414d7f..03dc4e9a5 100644 --- a/dev/References/@Fang2023a/index.html +++ b/dev/References/@Fang2023a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Ensemble learning for physics informed neural networks: a gradient boosting approach" authors: Zhiwei Fang, Sifan Wang, Paris Perdikaris year: 2023 DOI: https://doi.org/10.48550/arXiv.2302.13143 –-

Discussed in [[@Guo2023c]].

+- · WallyToolbox.jl

title: "Ensemble learning for physics informed neural networks: a gradient boosting approach" authors: Zhiwei Fang, Sifan Wang, Paris Perdikaris year: 2023 DOI: https://doi.org/10.48550/arXiv.2302.13143 –-

Discussed in [[@Guo2023c]].

diff --git a/dev/References/@Fiedler2006a/index.html b/dev/References/@Fiedler2006a/index.html index 57a61f4a7..6acbd76db 100644 --- a/dev/References/@Fiedler2006a/index.html +++ b/dev/References/@Fiedler2006a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Calculations of the thermal conductivity of porous materials" authors: Thomas Fiedler, Ekaterina Pesetskaya, Andreas Öchsner, José Grácio year: 2006 –-

+- · WallyToolbox.jl

title: "Calculations of the thermal conductivity of porous materials" authors: Thomas Fiedler, Ekaterina Pesetskaya, Andreas Öchsner, José Grácio year: 2006 –-

diff --git a/dev/References/@Fiedler2007a/index.html b/dev/References/@Fiedler2007a/index.html index 54412dfb8..dcbca3715 100644 --- a/dev/References/@Fiedler2007a/index.html +++ b/dev/References/@Fiedler2007a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Calculation of the effective thermal conductivity in composites using finite element and monte carlo methods" authors: Thomas Fiedler, Andreas Öchsner, Nilindu Muthubandara, Irina V. Belova, Graeme E. Murch year: 2007 –-

+- · WallyToolbox.jl

title: "Calculation of the effective thermal conductivity in composites using finite element and monte carlo methods" authors: Thomas Fiedler, Andreas Öchsner, Nilindu Muthubandara, Irina V. Belova, Graeme E. Murch year: 2007 –-

diff --git a/dev/References/@Fiedler2009a/index.html b/dev/References/@Fiedler2009a/index.html index 42316a980..cf6ff7623 100644 --- a/dev/References/@Fiedler2009a/index.html +++ b/dev/References/@Fiedler2009a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Computed tomography based finite element analysis of the thermal properties of cellular aluminium" authors: T. Fiedler, E. Solórzano, F. Garcia‐Moreno, A. Öchsner, I. V. Belova, G. E. Murch year: 2009 –-

+- · WallyToolbox.jl

title: "Computed tomography based finite element analysis of the thermal properties of cellular aluminium" authors: T. Fiedler, E. Solórzano, F. Garcia‐Moreno, A. Öchsner, I. V. Belova, G. E. Murch year: 2009 –-

diff --git a/dev/References/@Fogler1999/index.html b/dev/References/@Fogler1999/index.html index 4c19d5e3b..163f2e471 100644 --- a/dev/References/@Fogler1999/index.html +++ b/dev/References/@Fogler1999/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Elements of chemical reaction engineering" authors: H. Scott Fogler year: 1999 –-

+- · WallyToolbox.jl

title: "Elements of chemical reaction engineering" authors: H. Scott Fogler year: 1999 –-

diff --git a/dev/References/@Garaniya2012a/index.html b/dev/References/@Garaniya2012a/index.html index 7052b402e..486802076 100644 --- a/dev/References/@Garaniya2012a/index.html +++ b/dev/References/@Garaniya2012a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: CFD modelling of heavy fuel oil spray combustion authors: V. Garaniya, L. Goldsworthy year: 2012 URL: https://flair.monash.edu/intranet/proceedings/18afmc/Documents/400%20-%20Garaniya.pdf Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZlbEh7jKBqcgTdikWRQ?e=Zima6B –-

+- · WallyToolbox.jl

title: CFD modelling of heavy fuel oil spray combustion authors: V. Garaniya, L. Goldsworthy year: 2012 URL: https://flair.monash.edu/intranet/proceedings/18afmc/Documents/400%20-%20Garaniya.pdf Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZlbEh7jKBqcgTdikWRQ?e=Zima6B –-

diff --git a/dev/References/@Garaniya2012b/index.html b/dev/References/@Garaniya2012b/index.html index 195a827c4..786d87fa0 100644 --- a/dev/References/@Garaniya2012b/index.html +++ b/dev/References/@Garaniya2012b/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Heavy fuel oil combustion modelling using continuous thermodynamics authors: Vikram Garaniya, Laurie Goldsworthy year: 2012 DOI: https://doi.org/10.5988/jime.47.871 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZlbEigrD3idko7FKcyQ?e=lNld2R –-

+- · WallyToolbox.jl

title: Heavy fuel oil combustion modelling using continuous thermodynamics authors: Vikram Garaniya, Laurie Goldsworthy year: 2012 DOI: https://doi.org/10.5988/jime.47.871 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZlbEigrD3idko7FKcyQ?e=lNld2R –-

diff --git a/dev/References/@Gidaspow1994/index.html b/dev/References/@Gidaspow1994/index.html index 35eba02fc..b8cdded46 100644 --- a/dev/References/@Gidaspow1994/index.html +++ b/dev/References/@Gidaspow1994/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Multiphase flow and fluidization: continuum and kinetic theory descriptions with applications" authors: Dimitri Gidaspow year: 1994 URL: TODO –-

+- · WallyToolbox.jl

title: "Multiphase flow and fluidization: continuum and kinetic theory descriptions with applications" authors: Dimitri Gidaspow year: 1994 URL: TODO –-

diff --git a/dev/References/@Gorog1981a/index.html b/dev/References/@Gorog1981a/index.html index c9a04ed3c..648ae1e97 100644 --- a/dev/References/@Gorog1981a/index.html +++ b/dev/References/@Gorog1981a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Radiative heat transfer in rotary kilns authors: J. P. Gorog, J. K. Brimacombe, T. N. Adams year: 1981 –-

+- · WallyToolbox.jl

title: Radiative heat transfer in rotary kilns authors: J. P. Gorog, J. K. Brimacombe, T. N. Adams year: 1981 –-

diff --git a/dev/References/@Grosshandler1993/index.html b/dev/References/@Grosshandler1993/index.html index 5e2ea0196..704e49ebb 100644 --- a/dev/References/@Grosshandler1993/index.html +++ b/dev/References/@Grosshandler1993/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Radcal – a narrow-band model for radiation calculations in a combustion environment authors: William L. Grosshandler year: 1993 –-

+- · WallyToolbox.jl

title: Radcal – a narrow-band model for radiation calculations in a combustion environment authors: William L. Grosshandler year: 1993 –-

diff --git a/dev/References/@Gunn1978/index.html b/dev/References/@Gunn1978/index.html index 91bf95444..733655567 100644 --- a/dev/References/@Gunn1978/index.html +++ b/dev/References/@Gunn1978/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Transfer of heat or mass to particles in fixed and fluidised beds authors: D. J. Gunn year: 1978 –-

+- · WallyToolbox.jl

title: Transfer of heat or mass to particles in fixed and fluidised beds authors: D. J. Gunn year: 1978 –-

diff --git a/dev/References/@Guo2023a/index.html b/dev/References/@Guo2023a/index.html index 7d2381d8a..236994eba 100644 --- a/dev/References/@Guo2023a/index.html +++ b/dev/References/@Guo2023a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 01" authors: Shuai Guo year: 2023 URL: https://towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-series-01-8190df459527 –-

In this post, the author discusses the work by [[@Wu2022a]] in what concerns the adaptive (resampling and refinement) residual point distribution to boost training and accuracy.

Approaches:

  • RAD: residual-based adaptive distribution (more expensive)
  • RAR-D: residual-based adaptive refinement with distribution (robust)
  • Both are less useful under smooth solutions (activate when required)

Key idea: resample with a probability proportional to residual

\[p(x) \propto \frac{\varepsilon^k(x)}{𝔼[\varepsilon^k(x)]}+C\]

Other references of interest are:

  • [[@Lu2019a]]: residual-based adaptive refinement (RAR-D with high $k$)
  • [[@Nabian2021a]]: importance sampling (RAD with $k=1$ and $c=0$)
+- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 01" authors: Shuai Guo year: 2023 URL: https://towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-series-01-8190df459527 –-

In this post, the author discusses the work by [[@Wu2022a]] in what concerns the adaptive (resampling and refinement) residual point distribution to boost training and accuracy.

Approaches:

  • RAD: residual-based adaptive distribution (more expensive)
  • RAR-D: residual-based adaptive refinement with distribution (robust)
  • Both are less useful under smooth solutions (activate when required)

Key idea: resample with a probability proportional to residual

\[p(x) \propto \frac{\varepsilon^k(x)}{𝔼[\varepsilon^k(x)]}+C\]

Other references of interest are:

  • [[@Lu2019a]]: residual-based adaptive refinement (RAR-D with high $k$)
  • [[@Nabian2021a]]: importance sampling (RAD with $k=1$ and $c=0$)
diff --git a/dev/References/@Guo2023b/index.html b/dev/References/@Guo2023b/index.html index 88cfc6499..4e1046c45 100644 --- a/dev/References/@Guo2023b/index.html +++ b/dev/References/@Guo2023b/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 02" authors: Shuai Guo year: 2023 URL: TODO –-

+- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 02" authors: Shuai Guo year: 2023 URL: TODO –-

diff --git a/dev/References/@Guo2023c/index.html b/dev/References/@Guo2023c/index.html index 776c4a1d0..06510d54a 100644 --- a/dev/References/@Guo2023c/index.html +++ b/dev/References/@Guo2023c/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 03" authors: Shuai Guo year: 2023 URL: https://towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-03-fe365ef480d9 –- Discussed [[@Krishnapriyan2021a]]

+- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 03" authors: Shuai Guo year: 2023 URL: https://towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-03-fe365ef480d9 –- Discussed [[@Krishnapriyan2021a]]

diff --git a/dev/References/@Guo2023d/index.html b/dev/References/@Guo2023d/index.html index 663d8d326..6cd0ea041 100644 --- a/dev/References/@Guo2023d/index.html +++ b/dev/References/@Guo2023d/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 04" authors: Shuai Guo year: 2023 URL: https://towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-04-c778f4829dde –- Discussed [[@Yu2022a]].

+- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 04" authors: Shuai Guo year: 2023 URL: https://towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-04-c778f4829dde –- Discussed [[@Yu2022a]].

diff --git a/dev/References/@Guo2023e/index.html b/dev/References/@Guo2023e/index.html index 9e7c7cda8..bbd6aa2ee 100644 --- a/dev/References/@Guo2023e/index.html +++ b/dev/References/@Guo2023e/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 05" authors: Shuai Guo year: 2023 URL: https://towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-05-67a35a984b23 –-

+- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 05" authors: Shuai Guo year: 2023 URL: https://towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-05-67a35a984b23 –-

diff --git a/dev/References/@Guo2023f/index.html b/dev/References/@Guo2023f/index.html index 0529ab70a..3c0b6c2c2 100644 --- a/dev/References/@Guo2023f/index.html +++ b/dev/References/@Guo2023f/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 06" authors: Shuai Guo year: 2023 URL: https://towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-06-bcb3557199e2 –-

+- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 06" authors: Shuai Guo year: 2023 URL: https://towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-06-bcb3557199e2 –-

diff --git a/dev/References/@Guo2023g/index.html b/dev/References/@Guo2023g/index.html index 7eba655bb..f61986356 100644 --- a/dev/References/@Guo2023g/index.html +++ b/dev/References/@Guo2023g/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 07" authors: Shuai Guo year: 2023 URL: https://towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-07-4ecb543b616a –-

+- · WallyToolbox.jl

title: "Unraveling the design pattern of physics-informed neural networks: Series 07" authors: Shuai Guo year: 2023 URL: https://towardsdatascience.com/unraveling-the-design-pattern-of-physics-informed-neural-networks-part-07-4ecb543b616a –-

diff --git a/dev/References/@Guo2024a/index.html b/dev/References/@Guo2024a/index.html index 52a1b68ec..314d8d9ca 100644 --- a/dev/References/@Guo2024a/index.html +++ b/dev/References/@Guo2024a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Physics-informed neural networks: An application-centric guide" authors: Shuai Guo year: 2024 URL: https://towardsdatascience.com/physics-informed-neural-networks-an-application-centric-guide-dc1013526b02 –-

+- · WallyToolbox.jl

title: "Physics-informed neural networks: An application-centric guide" authors: Shuai Guo year: 2024 URL: https://towardsdatascience.com/physics-informed-neural-networks-an-application-centric-guide-dc1013526b02 –-

diff --git a/dev/References/@Haghighat2021sciann/index.html b/dev/References/@Haghighat2021sciann/index.html index 958b22c0d..ea051832c 100644 --- a/dev/References/@Haghighat2021sciann/index.html +++ b/dev/References/@Haghighat2021sciann/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "SciANN: A Keras/TensorFlow wrapper for scientific computations and physics-informed deep learning using artificial neural networks" authors: Ehsan Haghighat, Ruben Juanes year: 2021 DOI: https://doi.org/10.48550/arXiv.2005.08803 –-

+- · WallyToolbox.jl

title: "SciANN: A Keras/TensorFlow wrapper for scientific computations and physics-informed deep learning using artificial neural networks" authors: Ehsan Haghighat, Ruben Juanes year: 2021 DOI: https://doi.org/10.48550/arXiv.2005.08803 –-

diff --git a/dev/References/@Haider1989/index.html b/dev/References/@Haider1989/index.html index 6a4bff3f7..12c4c4f7d 100644 --- a/dev/References/@Haider1989/index.html +++ b/dev/References/@Haider1989/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Drag coefficient and terminal velocity of spherical and nonspherical particles authors: A. Haider, O. Levenspiel year: 1989 URL: TODO –-

+- · WallyToolbox.jl

title: Drag coefficient and terminal velocity of spherical and nonspherical particles authors: A. Haider, O. Levenspiel year: 1989 URL: TODO –-

diff --git a/dev/References/@Haitsiukevich2022a/index.html b/dev/References/@Haitsiukevich2022a/index.html index 70d197de6..9ba8b9799 100644 --- a/dev/References/@Haitsiukevich2022a/index.html +++ b/dev/References/@Haitsiukevich2022a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Improved training of physics-informed neural networks with model ensembles authors: Katsiaryna Haitsiukevich, Alexander Ilin year: 2022 URL: https://doi.org/10.48550/arXiv.2204.05108 –-

+- · WallyToolbox.jl

title: Improved training of physics-informed neural networks with model ensembles authors: Katsiaryna Haitsiukevich, Alexander Ilin year: 2022 URL: https://doi.org/10.48550/arXiv.2204.05108 –-

diff --git a/dev/References/@Hanein2017/index.html b/dev/References/@Hanein2017/index.html index 1515290d3..ad985117c 100644 --- a/dev/References/@Hanein2017/index.html +++ b/dev/References/@Hanein2017/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "One-dimensional steady-state thermal model for rotary kilns used in the manufacture of cement" authors: Theodore Hanein, Frederik P. Glasser, Marcus N. Bannerman year: 2017 –-

+- · WallyToolbox.jl

title: "One-dimensional steady-state thermal model for rotary kilns used in the manufacture of cement" authors: Theodore Hanein, Frederik P. Glasser, Marcus N. Bannerman year: 2017 –-

diff --git a/dev/References/@Hindmarsh2005/index.html b/dev/References/@Hindmarsh2005/index.html index b27bc3274..6774bb69c 100644 --- a/dev/References/@Hindmarsh2005/index.html +++ b/dev/References/@Hindmarsh2005/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "SUNDIALS: Suite of nonlinear and Differential/Algebraic equation solvers" authors: Alan C. Hindmarsh, Peter N. Brown, Keith E. Grant, Steven L. Lee, Radu Serban, Dan E. Shumaker, Carol S. Woodward year: 2005 –-

+- · WallyToolbox.jl

title: "SUNDIALS: Suite of nonlinear and Differential/Algebraic equation solvers" authors: Alan C. Hindmarsh, Peter N. Brown, Keith E. Grant, Steven L. Lee, Radu Serban, Dan E. Shumaker, Carol S. Woodward year: 2005 –-

diff --git a/dev/References/@Hristov2023/index.html b/dev/References/@Hristov2023/index.html index f38edae99..7910b1a6b 100644 --- a/dev/References/@Hristov2023/index.html +++ b/dev/References/@Hristov2023/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Transient heat conduction with variable thermophysical properties power-law temperature-depenent heat capacity and thermal conductivity" authors: Jordan Hristov year: 2023 –-

  • Take care, paper content is poor and full of typos!
  • Derivation for semi-infinite media
  • Temperature dependent heat capacity
  • Can we really say $h=\rho{}c_{p}T$ in all cases?
  • Argument about lack of exponents in literature is poor. In fact data is fitted to polynomials mainly because simple exponentials as proposed by the author would not properly represent experimental data in most cases (and certainly not fit Calphad requirements)!
+- · WallyToolbox.jl

title: "Transient heat conduction with variable thermophysical properties power-law temperature-depenent heat capacity and thermal conductivity" authors: Jordan Hristov year: 2023 –-

  • Take care, paper content is poor and full of typos!
  • Derivation for semi-infinite media
  • Temperature dependent heat capacity
  • Can we really say $h=\rho{}c_{p}T$ in all cases?
  • Argument about lack of exponents in literature is poor. In fact data is fitted to polynomials mainly because simple exponentials as proposed by the author would not properly represent experimental data in most cases (and certainly not fit Calphad requirements)!
diff --git a/dev/References/@Jeong1995a/index.html b/dev/References/@Jeong1995a/index.html index 3c6286692..755ff1a40 100644 --- a/dev/References/@Jeong1995a/index.html +++ b/dev/References/@Jeong1995a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: On the identification of a vortex authors: Jinhee Jeong, Fazle Hussain year: 1995 URL: https://doi.org/10.1017/S0022112095000462 Drive: –-

+- · WallyToolbox.jl

title: On the identification of a vortex authors: Jinhee Jeong, Fazle Hussain year: 1995 URL: https://doi.org/10.1017/S0022112095000462 Drive: –-

diff --git a/dev/References/@Joos1958/index.html b/dev/References/@Joos1958/index.html index 7401f7cbc..78ccf7d0f 100644 --- a/dev/References/@Joos1958/index.html +++ b/dev/References/@Joos1958/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Theoretical physics" authors: Georg Joos year: 1986 –-

+- · WallyToolbox.jl

title: "Theoretical physics" authors: Georg Joos year: 1986 –-

diff --git a/dev/References/@Karniadakis2021a/index.html b/dev/References/@Karniadakis2021a/index.html index 8ad9b54cc..9047eb5a8 100644 --- a/dev/References/@Karniadakis2021a/index.html +++ b/dev/References/@Karniadakis2021a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Physics-informed machine learning authors: George Em Karniadakis, Ioannis G. Kevrekidis, Lu Lu, Paris Perdikaris, Sifan Wang, Liu Yang year: 2021 –-

+- · WallyToolbox.jl

title: Physics-informed machine learning authors: George Em Karniadakis, Ioannis G. Kevrekidis, Lu Lu, Paris Perdikaris, Sifan Wang, Liu Yang year: 2021 –-

diff --git a/dev/References/@Kee2017/index.html b/dev/References/@Kee2017/index.html index bfa60e11b..46e05bd53 100644 --- a/dev/References/@Kee2017/index.html +++ b/dev/References/@Kee2017/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Chemically reacting flow theory, modeling, and simulation" authors: Robert J. Kee, Michael E. Coltrin, Peter Glarborg, Huayang Zhu year: 2017 –-

+- · WallyToolbox.jl

title: "Chemically reacting flow theory, modeling, and simulation" authors: Robert J. Kee, Michael E. Coltrin, Peter Glarborg, Huayang Zhu year: 2017 –-

diff --git a/dev/References/@Koh1971a/index.html b/dev/References/@Koh1971a/index.html index 8a25c0efe..8de1f0bbf 100644 --- a/dev/References/@Koh1971a/index.html +++ b/dev/References/@Koh1971a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Thermal conductivity and electrical resistivity of porous metallic materials" authors: J. C. Y. Koh, Anthony Fortini year: 1971 –-

+- · WallyToolbox.jl

title: "Thermal conductivity and electrical resistivity of porous metallic materials" authors: J. C. Y. Koh, Anthony Fortini year: 1971 –-

diff --git a/dev/References/@Koh1973a/index.html b/dev/References/@Koh1973a/index.html index 6bb7ae27e..05e1e7de5 100644 --- a/dev/References/@Koh1973a/index.html +++ b/dev/References/@Koh1973a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Prediction of thermal conductivity and electrical resistivity of porous metallic materials" authors: J. C. Y. Koh, Anthony Fortini year: 1973 –-

+- · WallyToolbox.jl

title: "Prediction of thermal conductivity and electrical resistivity of porous metallic materials" authors: J. C. Y. Koh, Anthony Fortini year: 1973 –-

diff --git a/dev/References/@Kramers1952/index.html b/dev/References/@Kramers1952/index.html index 5646577f5..80bfdfc45 100644 --- a/dev/References/@Kramers1952/index.html +++ b/dev/References/@Kramers1952/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: The passage of granular solids through inclined rotary kilns authors: H. Kramers, P. Croockewit year: 1952 –-

+- · WallyToolbox.jl

title: The passage of granular solids through inclined rotary kilns authors: H. Kramers, P. Croockewit year: 1952 –-

diff --git a/dev/References/@Krishnapriyan2021a/index.html b/dev/References/@Krishnapriyan2021a/index.html index ec03ccf29..8c10d38d4 100644 --- a/dev/References/@Krishnapriyan2021a/index.html +++ b/dev/References/@Krishnapriyan2021a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Characterizing possible failure modes in physics-informed neural networks authors: Aditi S. Krishnapriyan, Amir Gholami, Shandian Zhe, Robert M. Kirby, Michael W. Mahoney year: 2021 DOI: https://doi.org/10.48550/arXiv.2109.01050 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla8bwpowG74YkMl_tA?e=DmUIjw –-

+- · WallyToolbox.jl

title: Characterizing possible failure modes in physics-informed neural networks authors: Aditi S. Krishnapriyan, Amir Gholami, Shandian Zhe, Robert M. Kirby, Michael W. Mahoney year: 2021 DOI: https://doi.org/10.48550/arXiv.2109.01050 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla8bwpowG74YkMl_tA?e=DmUIjw –-

diff --git a/dev/References/@Lagaris1997a/index.html b/dev/References/@Lagaris1997a/index.html index 25f4d22eb..58ff6322c 100644 --- a/dev/References/@Lagaris1997a/index.html +++ b/dev/References/@Lagaris1997a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Artificial neural networks for solving ordinary and partial differential equations authors: I. E. Lagaris, A. Likas, D. I. Fotiadis year: 1997 –-

+- · WallyToolbox.jl

title: Artificial neural networks for solving ordinary and partial differential equations authors: I. E. Lagaris, A. Likas, D. I. Fotiadis year: 1997 –-

diff --git a/dev/References/@Launder1974/index.html b/dev/References/@Launder1974/index.html index 89bdd7794..f367d8db6 100644 --- a/dev/References/@Launder1974/index.html +++ b/dev/References/@Launder1974/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: The numerical computation of turbulent flows authors: B. E. Launder, D. B. Spalding year: 1974 –-

+- · WallyToolbox.jl

title: The numerical computation of turbulent flows authors: B. E. Launder, D. B. Spalding year: 1974 –-

diff --git a/dev/References/@Lawn1987/index.html b/dev/References/@Lawn1987/index.html index f1c7cc242..219c34aea 100644 --- a/dev/References/@Lawn1987/index.html +++ b/dev/References/@Lawn1987/index.html @@ -4,4 +4,4 @@ CI > 50 & \text{Predominantly aromatic components}\\[6pt] 15 < CI < 50 & \text{Mainly naphthenes or a mixture of all types}\\[6pt] 15 > CI & \text{Predominantly paraffinic components} -\end{cases}\]

Typical elemental composition (given in mass percentages):

Elementwt%
Carbon83-87
Hydrogen10-14
Suphur0.05-6
Nitrogen0.1-2
Oxygen0.05-1.5

Viscosity is highly dependent on temperature and used to control the characteristics of atomization in burners; for class G (main industrial application) of BS 2869 the typical kinematic viscosity at 80 °C is limited to 85 cSt; its maximum water content is 1% and ash production 0f 0.25% (see Table II for details and other classes). Viscosity is known to deviate from Newtonian at near pour point and the boiling point of its more volatile components.

When decreasing the hydrogen to carbon ratio the specific energy is also decreased, and this follows an increase of specific density of fuels. According to BS 2869, the net calorific value can be estimated from the density of the oil $\rho_{l}\:[kg\cdotp{}l^ {-1}]$ at 15 °C:

\[\Delta{}H_{net}=\left(46.423-8.792\rho_{l}^{2}+3.170\rho_{l}\right)\left(1-x-y-s\right)+9.420s-2.449x\]

where $x$ is the mass fraction of water, $y$ the mass fraction of ash, and $s$ the mass fraction of Sulphur; the resulting value is provided in $MJ\cdotp{}kg^{-1}$. Deviations are reported to be less than 1% when compared to bomb calorimetry data. Regarding specific heat a quite old (Cragoe, 1929) relationship based on relative density $S$ is given in $J\cdotp{}kg^{-1}$ as:

\[c_{p} = \frac{1683 + 3.39T}{S}\]

Typical value of surface tension are generally around $24-38\times{}10^{-3}\:N\cdotp{}m^{-1}$ at 20 °C and present a typical slope of $-0.07\times{}10^{-3}\:N\cdotp{}m^{-1}K^{-1}$ from room temperature up to 120 °C. Notice that this may be highly affected by actual fuel composition, so estimations must be used with care.

Combustion characteristics in general: maximum droplet heating rate around $10^5\:{}K\cdotp{}s^{-1}$ and flame temperatures of $2120\:{}K$, with a fuel residence time $<2\:{}s$. Droplets are generally injected from fractions of micron to $500\:{}\mu{}m$. The mechanism of combustion generally happens as follows:

  1. Volatiles phase: occurs between 250-350 °C and is characterized by the formation of a volatiles shell around the droplets, giving an aspect of granularity. It evolves till the unset of boiling, which occurs quite sharply somewhere in range 300-400 °C. Boiling leads to distortion and swealing, favoring breakup; several ejections might occur at this stage. The competing mechanisms during this phase are distillation and pyrolysis; the fuel composition and heating rate will determine the prevailing one.

See figures 8-9 of reference for more details regarding droplet history.

+\end{cases}\]

Typical elemental composition (given in mass percentages):

Elementwt%
Carbon83-87
Hydrogen10-14
Suphur0.05-6
Nitrogen0.1-2
Oxygen0.05-1.5

Viscosity is highly dependent on temperature and used to control the characteristics of atomization in burners; for class G (main industrial application) of BS 2869 the typical kinematic viscosity at 80 °C is limited to 85 cSt; its maximum water content is 1% and ash production 0f 0.25% (see Table II for details and other classes). Viscosity is known to deviate from Newtonian at near pour point and the boiling point of its more volatile components.

When decreasing the hydrogen to carbon ratio the specific energy is also decreased, and this follows an increase of specific density of fuels. According to BS 2869, the net calorific value can be estimated from the density of the oil $\rho_{l}\:[kg\cdotp{}l^ {-1}]$ at 15 °C:

\[\Delta{}H_{net}=\left(46.423-8.792\rho_{l}^{2}+3.170\rho_{l}\right)\left(1-x-y-s\right)+9.420s-2.449x\]

where $x$ is the mass fraction of water, $y$ the mass fraction of ash, and $s$ the mass fraction of Sulphur; the resulting value is provided in $MJ\cdotp{}kg^{-1}$. Deviations are reported to be less than 1% when compared to bomb calorimetry data. Regarding specific heat a quite old (Cragoe, 1929) relationship based on relative density $S$ is given in $J\cdotp{}kg^{-1}$ as:

\[c_{p} = \frac{1683 + 3.39T}{S}\]

Typical value of surface tension are generally around $24-38\times{}10^{-3}\:N\cdotp{}m^{-1}$ at 20 °C and present a typical slope of $-0.07\times{}10^{-3}\:N\cdotp{}m^{-1}K^{-1}$ from room temperature up to 120 °C. Notice that this may be highly affected by actual fuel composition, so estimations must be used with care.

Combustion characteristics in general: maximum droplet heating rate around $10^5\:{}K\cdotp{}s^{-1}$ and flame temperatures of $2120\:{}K$, with a fuel residence time $<2\:{}s$. Droplets are generally injected from fractions of micron to $500\:{}\mu{}m$. The mechanism of combustion generally happens as follows:

  1. Volatiles phase: occurs between 250-350 °C and is characterized by the formation of a volatiles shell around the droplets, giving an aspect of granularity. It evolves till the unset of boiling, which occurs quite sharply somewhere in range 300-400 °C. Boiling leads to distortion and swealing, favoring breakup; several ejections might occur at this stage. The competing mechanisms during this phase are distillation and pyrolysis; the fuel composition and heating rate will determine the prevailing one.

See figures 8-9 of reference for more details regarding droplet history.

diff --git a/dev/References/@Lay2012/index.html b/dev/References/@Lay2012/index.html index 949776734..5d42965de 100644 --- a/dev/References/@Lay2012/index.html +++ b/dev/References/@Lay2012/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Linear algebra and its applications" authors: David C. Lay year: 2012 –-

+- · WallyToolbox.jl

title: "Linear algebra and its applications" authors: David C. Lay year: 2012 –-

diff --git a/dev/References/@Lehrer1930/index.html b/dev/References/@Lehrer1930/index.html index b3b8569a8..9ba680185 100644 --- a/dev/References/@Lehrer1930/index.html +++ b/dev/References/@Lehrer1930/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Über das eisen-wasserstoff- ammoniak-gleichgewicht authors: E. Lehrer year: 1930 –-

+- · WallyToolbox.jl

title: Über das eisen-wasserstoff- ammoniak-gleichgewicht authors: E. Lehrer year: 1930 –-

diff --git a/dev/References/@Liu1993/index.html b/dev/References/@Liu1993/index.html index 5a4dd4357..a9dcf6105 100644 --- a/dev/References/@Liu1993/index.html +++ b/dev/References/@Liu1993/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Modeling the effects of drop drag and breakup on fuel sprays authors: Alex B. Liu, Daniel Mather, Rolf D. Reitz year: 1993 URL: " https://doi.org/10.4271/930072." –- Also check Reitz1987 [14].

+- · WallyToolbox.jl

title: Modeling the effects of drop drag and breakup on fuel sprays authors: Alex B. Liu, Daniel Mather, Rolf D. Reitz year: 1993 URL: " https://doi.org/10.4271/930072." –- Also check Reitz1987 [14].

diff --git a/dev/References/@Lu2019a/index.html b/dev/References/@Lu2019a/index.html index 262da83cf..61b53d571 100644 --- a/dev/References/@Lu2019a/index.html +++ b/dev/References/@Lu2019a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "DeepXDE: A deep learning library for solving differential equations" authors: Lu Lu, Xuhui Meng, Zhiping Mao, George E. Karniadakis year: 2019 URL: https://doi.org/10.48550/arXiv.1907.04502 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla8eg-cL7mDKg_muqQ?e=hcIqTb –-

+- · WallyToolbox.jl

title: "DeepXDE: A deep learning library for solving differential equations" authors: Lu Lu, Xuhui Meng, Zhiping Mao, George E. Karniadakis year: 2019 URL: https://doi.org/10.48550/arXiv.1907.04502 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla8eg-cL7mDKg_muqQ?e=hcIqTb –-

diff --git a/dev/References/@Lu2021a/index.html b/dev/References/@Lu2021a/index.html index 75310dfbc..8a8b5a5cc 100644 --- a/dev/References/@Lu2021a/index.html +++ b/dev/References/@Lu2021a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Physics-informed neural networks with hard constraints for inverse design authors: Lu Lu, Raphael Pestourie, Wenjie Yao, Zhicheng Wang, Francesc Verdugo, Steven G. Johnson year: 2021 URL: https://doi.org/10.48550/arXiv.2102.04626 –-

+- · WallyToolbox.jl

title: Physics-informed neural networks with hard constraints for inverse design authors: Lu Lu, Raphael Pestourie, Wenjie Yao, Zhicheng Wang, Francesc Verdugo, Steven G. Johnson year: 2021 URL: https://doi.org/10.48550/arXiv.2102.04626 –-

diff --git a/dev/References/@Luikov1968a/index.html b/dev/References/@Luikov1968a/index.html index 9466dc57b..ee19a0fcd 100644 --- a/dev/References/@Luikov1968a/index.html +++ b/dev/References/@Luikov1968a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Thermal conductivity of porous systems" authors: A.V. Luikov, A.G. Shashkov, L.L. Vasiliev, Yu.E. Fraiman year: 1968 –-

+- · WallyToolbox.jl

title: "Thermal conductivity of porous systems" authors: A.V. Luikov, A.G. Shashkov, L.L. Vasiliev, Yu.E. Fraiman year: 1968 –-

diff --git a/dev/References/@Malinen2013a/index.html b/dev/References/@Malinen2013a/index.html index a0a3d6df6..c30f21be8 100644 --- a/dev/References/@Malinen2013a/index.html +++ b/dev/References/@Malinen2013a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Elmer finite element solver for multiphysics and multiscale problems" authors: Mika Malinen, Peter Råback year: 2013 –-

+- · WallyToolbox.jl

title: "Elmer finite element solver for multiphysics and multiscale problems" authors: Mika Malinen, Peter Råback year: 2013 –-

diff --git a/dev/References/@Masamune1963a/index.html b/dev/References/@Masamune1963a/index.html index 3c4cfb895..e6812414d 100644 --- a/dev/References/@Masamune1963a/index.html +++ b/dev/References/@Masamune1963a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Thermal conductivity of beds of spherical particles" authors: Shinobu Masamune, J. M. Smith year: 1963 –-

+- · WallyToolbox.jl

title: "Thermal conductivity of beds of spherical particles" authors: Shinobu Masamune, J. M. Smith year: 1963 –-

diff --git a/dev/References/@Mehrer2007/index.html b/dev/References/@Mehrer2007/index.html index 770cf8105..ae7b4448c 100644 --- a/dev/References/@Mehrer2007/index.html +++ b/dev/References/@Mehrer2007/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Diffusion in solids : Fundamentals, methods, materials, diffusion-controlled processes" authors: Helmut Mehrer year: 2007 –-

+- · WallyToolbox.jl

title: "Diffusion in solids : Fundamentals, methods, materials, diffusion-controlled processes" authors: Helmut Mehrer year: 2007 –-

diff --git a/dev/References/@Mittemeijer1988/index.html b/dev/References/@Mittemeijer1988/index.html index 86e606dcc..20bf207e2 100644 --- a/dev/References/@Mittemeijer1988/index.html +++ b/dev/References/@Mittemeijer1988/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Analysis of nonisothermal transformation kinetics; tempering of iron-carbon and iron-nitrogen martensites" authors: E. J. Mittemeijer, Liu Cheng, P. J. van der Schaaf, C. M. Brakman, B. M. Korevaar year: 1988 –-

+- · WallyToolbox.jl

title: "Analysis of nonisothermal transformation kinetics; tempering of iron-carbon and iron-nitrogen martensites" authors: E. J. Mittemeijer, Liu Cheng, P. J. van der Schaaf, C. M. Brakman, B. M. Korevaar year: 1988 –-

diff --git a/dev/References/@Mraz2021a/index.html b/dev/References/@Mraz2021a/index.html index efee746ec..3dd9b3cef 100644 --- a/dev/References/@Mraz2021a/index.html +++ b/dev/References/@Mraz2021a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Thermal conductivity of porous oxide layer: A numerical model based on CT data" authors: Krystof Mraz, Jan Bohacek, Ondrej Resl, Martin Chabicovsky, Ebrahim Karimi-Sibaki year: 2021 –-

+- · WallyToolbox.jl

title: "Thermal conductivity of porous oxide layer: A numerical model based on CT data" authors: Krystof Mraz, Jan Bohacek, Ondrej Resl, Martin Chabicovsky, Ebrahim Karimi-Sibaki year: 2021 –-

diff --git a/dev/References/@Mujumdar2006i/index.html b/dev/References/@Mujumdar2006i/index.html index f3c42465b..3f3963917 100644 --- a/dev/References/@Mujumdar2006i/index.html +++ b/dev/References/@Mujumdar2006i/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Simulation of rotary cement kilns using a one-dimensional model" authors: Kaustubh S. Mujumdar, Vivek V. Ranade year: 2006 –-

+- · WallyToolbox.jl

title: "Simulation of rotary cement kilns using a one-dimensional model" authors: Kaustubh S. Mujumdar, Vivek V. Ranade year: 2006 –-

diff --git a/dev/References/@Nabian2021a/index.html b/dev/References/@Nabian2021a/index.html index 646ad598c..b79cd8000 100644 --- a/dev/References/@Nabian2021a/index.html +++ b/dev/References/@Nabian2021a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Efficient training of physics-informed neural networks via importance sampling authors: Mohammad Amin Nabian, Rini Jasmine Gladstone, Hadi Meidani year: 2021 URL: https://doi.org/10.48550/arXiv.2104.12325 –-

+- · WallyToolbox.jl

title: Efficient training of physics-informed neural networks via importance sampling authors: Mohammad Amin Nabian, Rini Jasmine Gladstone, Hadi Meidani year: 2021 URL: https://doi.org/10.48550/arXiv.2104.12325 –-

diff --git a/dev/References/@Nakayama2023/index.html b/dev/References/@Nakayama2023/index.html index 39140a920..c8440064b 100644 --- a/dev/References/@Nakayama2023/index.html +++ b/dev/References/@Nakayama2023/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Effective thermal conductivity of porous media" authors: Akira Nakayama year: 2023 –-

+- · WallyToolbox.jl

title: "Effective thermal conductivity of porous media" authors: Akira Nakayama year: 2023 –-

diff --git a/dev/References/@Nowruzi2014/index.html b/dev/References/@Nowruzi2014/index.html index a858b336b..216774ac8 100644 --- a/dev/References/@Nowruzi2014/index.html +++ b/dev/References/@Nowruzi2014/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Numerical simulation of non-evaporating and non-reacting heavy fuel oil injection spray in medium speed engines using OpenFOAM authors: Hashem Nowruzi, Parviz Ghadimi, Mehdi Yousefifard, Mohammad A. Feiz Chekab year: 2014 URL: https://doi.org/10.14810/ijmech.2014.3206 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZlbEf-L95SgshO8_Nhg?e=jKpxyO –-

+- · WallyToolbox.jl

title: Numerical simulation of non-evaporating and non-reacting heavy fuel oil injection spray in medium speed engines using OpenFOAM authors: Hashem Nowruzi, Parviz Ghadimi, Mehdi Yousefifard, Mohammad A. Feiz Chekab year: 2014 URL: https://doi.org/10.14810/ijmech.2014.3206 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZlbEf-L95SgshO8_Nhg?e=jKpxyO –-

diff --git a/dev/References/@ORourke2010/index.html b/dev/References/@ORourke2010/index.html index 63ddad784..96e9fd20c 100644 --- a/dev/References/@ORourke2010/index.html +++ b/dev/References/@ORourke2010/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: An improved collision damping time for MP-PIC calculations of dense particle flows with applications to polydisperse sedimenting beds and colliding particle jets authors: Peter J. O’Rourke, Dale M. Snider year: 2010 URL: https://doi.org/10.1016/j.ces.2010.08.032 –-

+- · WallyToolbox.jl

title: An improved collision damping time for MP-PIC calculations of dense particle flows with applications to polydisperse sedimenting beds and colliding particle jets authors: Peter J. O’Rourke, Dale M. Snider year: 2010 URL: https://doi.org/10.1016/j.ces.2010.08.032 –-

diff --git a/dev/References/@Onsager1931/index.html b/dev/References/@Onsager1931/index.html index f2ff96d74..aab870daf 100644 --- a/dev/References/@Onsager1931/index.html +++ b/dev/References/@Onsager1931/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Reciprocal relations in irreversible processes. I. authors: Lars Onsager year: 1931 –-

+- · WallyToolbox.jl

title: Reciprocal relations in irreversible processes. I. authors: Lars Onsager year: 1931 –-

diff --git a/dev/References/@Onsager1931a/index.html b/dev/References/@Onsager1931a/index.html index eb8878477..567717dbe 100644 --- a/dev/References/@Onsager1931a/index.html +++ b/dev/References/@Onsager1931a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Reciprocal relations in irreversible processes. II. authors: Lars Onsager year: 1931 –-

+- · WallyToolbox.jl

title: Reciprocal relations in irreversible processes. II. authors: Lars Onsager year: 1931 –-

diff --git a/dev/References/@Patankar1980/index.html b/dev/References/@Patankar1980/index.html index 61e16b07b..2d8a91eb7 100644 --- a/dev/References/@Patankar1980/index.html +++ b/dev/References/@Patankar1980/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Numerical heat transfer and fluid flow authors: Suhas V. Patankar year: 1980 –-

+- · WallyToolbox.jl

title: Numerical heat transfer and fluid flow authors: Suhas V. Patankar year: 1980 –-

diff --git a/dev/References/@Pena2001a/index.html b/dev/References/@Pena2001a/index.html index bac11cc1a..8390ce49a 100644 --- a/dev/References/@Pena2001a/index.html +++ b/dev/References/@Pena2001a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Stability of Turing patterns in the Brusselator model authors: B. Peña, C. Pérez-García year: 2001 URL: https://doi.org/10.1103/PhysRevE.64.056213 Drive: –-

+- · WallyToolbox.jl

title: Stability of Turing patterns in the Brusselator model authors: B. Peña, C. Pérez-García year: 2001 URL: https://doi.org/10.1103/PhysRevE.64.056213 Drive: –-

diff --git a/dev/References/@Pia2016a/index.html b/dev/References/@Pia2016a/index.html index 5b6825d36..e5ae1eb40 100644 --- a/dev/References/@Pia2016a/index.html +++ b/dev/References/@Pia2016a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Porosity and pore size distribution influence on thermal conductivity of yttria-stabilized zirconia: Experimental findings and model predictions" authors: Giorgio Pia, Ludovica Casnedi, Ulrico Sanna year: 2016 –-

+- · WallyToolbox.jl

title: "Porosity and pore size distribution influence on thermal conductivity of yttria-stabilized zirconia: Experimental findings and model predictions" authors: Giorgio Pia, Ludovica Casnedi, Ulrico Sanna year: 2016 –-

diff --git a/dev/References/@Plessis1988/index.html b/dev/References/@Plessis1988/index.html index e2254cb7c..05d9577d6 100644 --- a/dev/References/@Plessis1988/index.html +++ b/dev/References/@Plessis1988/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Mathematical modelling of flow through consolidated isotropic porous media authors: J. Prieur Du Plessis, Jacob H. Masliyah year: 1988 URL: TODO –-

+- · WallyToolbox.jl

title: Mathematical modelling of flow through consolidated isotropic porous media authors: J. Prieur Du Plessis, Jacob H. Masliyah year: 1988 URL: TODO –-

diff --git a/dev/References/@Qiu2018a/index.html b/dev/References/@Qiu2018a/index.html index 5b724cdfa..934bd98ee 100644 --- a/dev/References/@Qiu2018a/index.html +++ b/dev/References/@Qiu2018a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Inhomogeneity in pore size appreciably lowering thermal conductivity for porous thermal insulators" authors: Lin Qiu, Hanying Zou, Dawei Tang, Dongsheng Wen, Yanhui Feng, Xinxin Zhang year: 2018 –-

+- · WallyToolbox.jl

title: "Inhomogeneity in pore size appreciably lowering thermal conductivity for porous thermal insulators" authors: Lin Qiu, Hanying Zou, Dawei Tang, Dongsheng Wen, Yanhui Feng, Xinxin Zhang year: 2018 –-

diff --git a/dev/References/@Raissi2017/index.html b/dev/References/@Raissi2017/index.html index 16055886b..52deead3f 100644 --- a/dev/References/@Raissi2017/index.html +++ b/dev/References/@Raissi2017/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Physics informed deep learning (part I): Data-driven solutions of nonlinear partial differential equations" authors: Maziar Raissi, Paris Perdikaris, George Em Karniadakis year: 2017 DOI: https://doi.org/10.48550/arXiv.1711.10561 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla5YwhmbwapFcSs-8A?e=XiDCyF –-

+- · WallyToolbox.jl

title: "Physics informed deep learning (part I): Data-driven solutions of nonlinear partial differential equations" authors: Maziar Raissi, Paris Perdikaris, George Em Karniadakis year: 2017 DOI: https://doi.org/10.48550/arXiv.1711.10561 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla5YwhmbwapFcSs-8A?e=XiDCyF –-

diff --git a/dev/References/@Ranz1952/index.html b/dev/References/@Ranz1952/index.html index 357c6188f..28e2ac2b0 100644 --- a/dev/References/@Ranz1952/index.html +++ b/dev/References/@Ranz1952/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Evaporation from drops authors: W. Ranz, W. Marshall year: 1952 –-

+- · WallyToolbox.jl

title: Evaporation from drops authors: W. Ranz, W. Marshall year: 1952 –-

diff --git a/dev/References/@Reitz1987/index.html b/dev/References/@Reitz1987/index.html index 6668470a5..bf78f530d 100644 --- a/dev/References/@Reitz1987/index.html +++ b/dev/References/@Reitz1987/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Structure of high-pressure fuel sprays authors: Rolf D. Reitz, R. Diwakar year: 1987 URL: https://doi.org/10.4271/870598 –-

+- · WallyToolbox.jl

title: Structure of high-pressure fuel sprays authors: Rolf D. Reitz, R. Diwakar year: 1987 URL: https://doi.org/10.4271/870598 –-

diff --git a/dev/References/@Saario2005a/index.html b/dev/References/@Saario2005a/index.html index b5a1f6d78..ba7fa69a9 100644 --- a/dev/References/@Saario2005a/index.html +++ b/dev/References/@Saario2005a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Heavy fuel oil combustion in a cylindrical laboratory furnace: measurements and modeling authors: A. Saario, A. Rebola, P. Coelho, M. Costa, A. Oksanen year: 2005 –-

+- · WallyToolbox.jl

title: Heavy fuel oil combustion in a cylindrical laboratory furnace: measurements and modeling authors: A. Saario, A. Rebola, P. Coelho, M. Costa, A. Oksanen year: 2005 –-

diff --git a/dev/References/@Sanchez2023a/index.html b/dev/References/@Sanchez2023a/index.html index e3e93f51a..ab77b04d8 100644 --- a/dev/References/@Sanchez2023a/index.html +++ b/dev/References/@Sanchez2023a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Biomass combustion modeling using OpenFOAM: Development of a simple computational model and study of the combustion performance of lippia origanoides bagasse" authors: Gabriel Fernando García Sánchez, Jorge Luis Chacón Velasco, David Alfredo Fuentes Díaz, Yesid Javier Rueda-Ordóñez, David Patiño, Juan Jesús Rico, Jairo René Martínez Morales year: 2023 URL: https://doi.org/10.3390/en16062932 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZlbEgWeJ66H4-cfxBiQ?e=YQGseW –-

+- · WallyToolbox.jl

title: "Biomass combustion modeling using OpenFOAM: Development of a simple computational model and study of the combustion performance of lippia origanoides bagasse" authors: Gabriel Fernando García Sánchez, Jorge Luis Chacón Velasco, David Alfredo Fuentes Díaz, Yesid Javier Rueda-Ordóñez, David Patiño, Juan Jesús Rico, Jairo René Martínez Morales year: 2023 URL: https://doi.org/10.3390/en16062932 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZlbEgWeJ66H4-cfxBiQ?e=YQGseW –-

diff --git a/dev/References/@Sanyal2022a/index.html b/dev/References/@Sanyal2022a/index.html index 602d8b856..d4db76465 100644 --- a/dev/References/@Sanyal2022a/index.html +++ b/dev/References/@Sanyal2022a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "RAMP-Net: A robust adaptive MPC for quadrotors via physics-informed neural network" authors: Sourav Sanyal, Kaushik Roy year: 2022 URL: https://doi.org/10.48550/arXiv.2209.09025 –-

+- · WallyToolbox.jl

title: "RAMP-Net: A robust adaptive MPC for quadrotors via physics-informed neural network" authors: Sourav Sanyal, Kaushik Roy year: 2022 URL: https://doi.org/10.48550/arXiv.2209.09025 –-

diff --git a/dev/References/@Schneider1978a/index.html b/dev/References/@Schneider1978a/index.html index 9cd053639..25f577872 100644 --- a/dev/References/@Schneider1978a/index.html +++ b/dev/References/@Schneider1978a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Molecular-dynamics study of a three-dimensional one-component model for distortive phase transitions" authors: T. Schneider, E. Stoll year: 1978 –-

+- · WallyToolbox.jl

title: "Molecular-dynamics study of a three-dimensional one-component model for distortive phase transitions" authors: T. Schneider, E. Stoll year: 1978 –-

diff --git a/dev/References/@Shirzad2023/index.html b/dev/References/@Shirzad2023/index.html index e78b81664..ea95fed2a 100644 --- a/dev/References/@Shirzad2023/index.html +++ b/dev/References/@Shirzad2023/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "A critical review on applications of the Avrami equation beyond materials science" authors: Kiana Shirzad, Christopher Viney year: 2023 –-

+- · WallyToolbox.jl

title: "A critical review on applications of the Avrami equation beyond materials science" authors: Kiana Shirzad, Christopher Viney year: 2023 –-

diff --git a/dev/References/@Shomate1954/index.html b/dev/References/@Shomate1954/index.html index 9e3dcea40..cf0b0dee1 100644 --- a/dev/References/@Shomate1954/index.html +++ b/dev/References/@Shomate1954/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: A method for evaluating and correlating thermodynamic data authors: C. Howard Shomate year: 1954 –-

+- · WallyToolbox.jl

title: A method for evaluating and correlating thermodynamic data authors: C. Howard Shomate year: 1954 –-

diff --git a/dev/References/@Smith2013a/index.html b/dev/References/@Smith2013a/index.html index d91229591..d99ab066f 100644 --- a/dev/References/@Smith2013a/index.html +++ b/dev/References/@Smith2013a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Thermal conductivity of porous materials" authors: David S. Smith, Arnaud Alzina, Julie Bourret, Benoît Nait-Ali, Fabienne Pennec, Nicolas Tessier-Doyen, Kodai Otsu, Hideaki Matsubara, Pierre Elser, Urs T. Gonzenbach year: 2013 –-

+- · WallyToolbox.jl

title: "Thermal conductivity of porous materials" authors: David S. Smith, Arnaud Alzina, Julie Bourret, Benoît Nait-Ali, Fabienne Pennec, Nicolas Tessier-Doyen, Kodai Otsu, Hideaki Matsubara, Pierre Elser, Urs T. Gonzenbach year: 2013 –-

diff --git a/dev/References/@Sweldens1998a/index.html b/dev/References/@Sweldens1998a/index.html index a16a271fa..027b3f812 100644 --- a/dev/References/@Sweldens1998a/index.html +++ b/dev/References/@Sweldens1998a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "The lifting scheme: A construction of second generation wavelets" authors: Wim Sweldens year: 1998 URL: https://doi.org/10.1137/S0036141095289051 Drive: –-

+- · WallyToolbox.jl

title: "The lifting scheme: A construction of second generation wavelets" authors: Wim Sweldens year: 1998 URL: https://doi.org/10.1137/S0036141095289051 Drive: –-

diff --git a/dev/References/@Tam2019/index.html b/dev/References/@Tam2019/index.html index 424842b4d..3e47aa214 100644 --- a/dev/References/@Tam2019/index.html +++ b/dev/References/@Tam2019/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: OpenSC: an open-source calculation tool for combustion mixture emissivity/absorptivity authors: Wai Cheong Tam, Walter W. Yuen year: 2019 –-

+- · WallyToolbox.jl

title: OpenSC: an open-source calculation tool for combustion mixture emissivity/absorptivity authors: Wai Cheong Tam, Walter W. Yuen year: 2019 –-

diff --git a/dev/References/@Tensorflow2015Whitepaper/index.html b/dev/References/@Tensorflow2015Whitepaper/index.html index 9e437e6ea..7a7c943d4 100644 --- a/dev/References/@Tensorflow2015Whitepaper/index.html +++ b/dev/References/@Tensorflow2015Whitepaper/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "TensorFlow: Large-scale machine learning on heterogeneous systems" authors: Martín Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro, Greg S. Corrado, Andy Davis, Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Ian Goodfellow, Andrew Harp, Geoffrey Irving, Michael Isard, Yangqing Jia, Rafal Jozefowicz, Lukasz Kaiser, Manjunath Kudlur, Josh Levenberg, Dandelion Mané, Rajat Monga, Sherry Moore, Derek Murray, Chris Olah, Mike Schuster, Jonathon Shlens, Benoit Steiner, Ilya Sutskever, Kunal Talwar, Paul Tucker, Vincent Vanhoucke, Vijay Vasudevan, Fernanda Viégas, Oriol Vinyals, Pete Warden, Martin Wattenberg, Martin Wicke, Yuan Yu, Xiaoqiang Zheng year: 2015 DOI: https://doi.org/10.5281/zenodo.4724125 –-

+- · WallyToolbox.jl

title: "TensorFlow: Large-scale machine learning on heterogeneous systems" authors: Martín Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro, Greg S. Corrado, Andy Davis, Jeffrey Dean, Matthieu Devin, Sanjay Ghemawat, Ian Goodfellow, Andrew Harp, Geoffrey Irving, Michael Isard, Yangqing Jia, Rafal Jozefowicz, Lukasz Kaiser, Manjunath Kudlur, Josh Levenberg, Dandelion Mané, Rajat Monga, Sherry Moore, Derek Murray, Chris Olah, Mike Schuster, Jonathon Shlens, Benoit Steiner, Ilya Sutskever, Kunal Talwar, Paul Tucker, Vincent Vanhoucke, Vijay Vasudevan, Fernanda Viégas, Oriol Vinyals, Pete Warden, Martin Wattenberg, Martin Wicke, Yuan Yu, Xiaoqiang Zheng year: 2015 DOI: https://doi.org/10.5281/zenodo.4724125 –-

diff --git a/dev/References/@Wang2022a/index.html b/dev/References/@Wang2022a/index.html index f563ff8fc..bd6083350 100644 --- a/dev/References/@Wang2022a/index.html +++ b/dev/References/@Wang2022a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Respecting causality is all you need for training physics-informed neural networks authors: Sifan Wang, Shyam Sankaran, Paris Perdikaris year: 2022 URL: https://doi.org/10.48550/arXiv.2203.07404 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla8hHROyjqNuK7otnA?e=U8kabk –-

Supporting materials at GitHub.

+- · WallyToolbox.jl

title: Respecting causality is all you need for training physics-informed neural networks authors: Sifan Wang, Shyam Sankaran, Paris Perdikaris year: 2022 URL: https://doi.org/10.48550/arXiv.2203.07404 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla8hHROyjqNuK7otnA?e=U8kabk –-

Supporting materials at GitHub.

diff --git a/dev/References/@Wang2023a/index.html b/dev/References/@Wang2023a/index.html index b3dc82417..fcf000c1c 100644 --- a/dev/References/@Wang2023a/index.html +++ b/dev/References/@Wang2023a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: "Auto-PINN: Understanding and optimizing physics-informed neural architecture" authors: Yicheng Wang, Xiaotian Han, Chia-Yuan Chang, Daochen Zha, Ulisses Braga-Neto, Xia Hu year: 2023 URL: https://doi.org/10.48550/arXiv.2205.13748 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla8gKwrbEVbpOVfBQg?e=5kcaTy –-

+- · WallyToolbox.jl

title: "Auto-PINN: Understanding and optimizing physics-informed neural architecture" authors: Yicheng Wang, Xiaotian Han, Chia-Yuan Chang, Daochen Zha, Ulisses Braga-Neto, Xia Hu year: 2023 URL: https://doi.org/10.48550/arXiv.2205.13748 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla8gKwrbEVbpOVfBQg?e=5kcaTy –-

diff --git a/dev/References/@Wu2022a/index.html b/dev/References/@Wu2022a/index.html index f8ed82d34..8ec7d5587 100644 --- a/dev/References/@Wu2022a/index.html +++ b/dev/References/@Wu2022a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: A comprehensive study of non-adaptive and residual-based adaptive sampling for physics-informed neural networks authors: Chenxi Wu, Min Zhu, Qinyang Tan, Yadhu Kartha, Lu Lu year: 2022 URL: https://doi.org/10.48550/arXiv.2207.10289 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla5WOX3yVxsVYZ1BSQ?e=RJSrB2 –-

+- · WallyToolbox.jl

title: A comprehensive study of non-adaptive and residual-based adaptive sampling for physics-informed neural networks authors: Chenxi Wu, Min Zhu, Qinyang Tan, Yadhu Kartha, Lu Lu year: 2022 URL: https://doi.org/10.48550/arXiv.2207.10289 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla5WOX3yVxsVYZ1BSQ?e=RJSrB2 –-

diff --git a/dev/References/@Wurth2023a/index.html b/dev/References/@Wurth2023a/index.html index 28bd724da..af88f6bb7 100644 --- a/dev/References/@Wurth2023a/index.html +++ b/dev/References/@Wurth2023a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Physics-informed neural networks for data-free surrogate modelling and engineering optimization – An example from composite manufacturing authors: Tobias Würth, Constantin Krauß, Clemens Zimmerling, Luise Kärger year: 2023 URL: https://doi.org/10.5445/IR/1000159290 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla5XEQtEiYnlp5ggtA?e=6TW8va –-

  • PINNs are alternative to SBO methods

  • Reference 6: one NN per output

  • Used same weight for all losses (domain, B.C., I.C.)

  • NNs provide automatic jacobian and hessian evaluations, what can be used for great benefit of optimization algorithms

  • Implemented in SciANN [[@Haghighat2021sciann]] wrapper to [[@Tensorflow2015Whitepaper]]

  • Solves the diffusion equation

  • Kamal-Malkin model can be seem as a more general parametrization as JMKA $\rightarrow$ maybe useful in cement hydration modeling?

  • Interesting to write a tutorial about!

+- · WallyToolbox.jl

title: Physics-informed neural networks for data-free surrogate modelling and engineering optimization – An example from composite manufacturing authors: Tobias Würth, Constantin Krauß, Clemens Zimmerling, Luise Kärger year: 2023 URL: https://doi.org/10.5445/IR/1000159290 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla5XEQtEiYnlp5ggtA?e=6TW8va –-

  • PINNs are alternative to SBO methods

  • Reference 6: one NN per output

  • Used same weight for all losses (domain, B.C., I.C.)

  • NNs provide automatic jacobian and hessian evaluations, what can be used for great benefit of optimization algorithms

  • Implemented in SciANN [[@Haghighat2021sciann]] wrapper to [[@Tensorflow2015Whitepaper]]

  • Solves the diffusion equation

  • Kamal-Malkin model can be seem as a more general parametrization as JMKA $\rightarrow$ maybe useful in cement hydration modeling?

  • Interesting to write a tutorial about!

diff --git a/dev/References/@Yu2022a/index.html b/dev/References/@Yu2022a/index.html index 761dfde6e..66e9fb50b 100644 --- a/dev/References/@Yu2022a/index.html +++ b/dev/References/@Yu2022a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Gradient-enhanced physics-informed neural networks for forward and inverse PDE problems authors: Jeremy Yu, Lu Lu, Xuhui Meng, George Em Karniadakis year: 2022 URL: https://doi.org/10.48550/arXiv.2111.02801 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla8fqTeJApcwO8Ng?e=lpsaxB –-

+- · WallyToolbox.jl

title: Gradient-enhanced physics-informed neural networks for forward and inverse PDE problems authors: Jeremy Yu, Lu Lu, Xuhui Meng, George Em Karniadakis year: 2022 URL: https://doi.org/10.48550/arXiv.2111.02801 Drive: https://1drv.ms/b/s!Ar4x-UlrYAiZla8fqTeJApcwO8Ng?e=lpsaxB –-

diff --git a/dev/References/@Zuo2000a/index.html b/dev/References/@Zuo2000a/index.html index deed5e316..5dec917c5 100644 --- a/dev/References/@Zuo2000a/index.html +++ b/dev/References/@Zuo2000a/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

title: Modelling superheated fuel sprays and vaproization authors: B. Zuo, A. M. Gomes, C. J. Rutland year: 2000 URL: https://doi.org/10.1243/1468087001545218 –-

+- · WallyToolbox.jl

title: Modelling superheated fuel sprays and vaproization authors: B. Zuo, A. M. Gomes, C. J. Rutland year: 2000 URL: https://doi.org/10.1243/1468087001545218 –-

diff --git a/dev/References/index.html b/dev/References/index.html index 9a94f8454..0339c88f9 100644 --- a/dev/References/index.html +++ b/dev/References/index.html @@ -1,2 +1,2 @@ -References · WallyToolbox.jl

References

This page contains the literature and external references cited along the toolbox documentation or supporting materials. For a full bibtex file for citing them, please check this database file.

[1]
C. J. Lawn. Principles of combustion engineering for boilers. Combustion treatise (Academic Press, 1987). Includes bibliography and index.
[2]
D. J. Gunn. Transfer of heat or mass to particles in fixed and fluidised beds. International Journal of Heat and Mass Transfer 21, 467–476 (1978).
[3]
H. Kramers and P. Croockewit. The passage of granular solids through inclined rotary kilns. Chemical Engineering Science 1, 259–265 (1952).
[4]
C. H. Shomate. A method for evaluating and correlating thermodynamic data. The Journal of Physical Chemistry 58, 368–372 (1954).
[5]
R. B. Bird, W. E. Stewart and E. N. Lightfoot. Transport phenomena. 2nd Edition (John Wiley and Sons, 2001).
[6]
C. Balaji. Essentials of radiation heat transfer (Wiley, Chichester, 2014).
[7]
A. A. Amsden, P. J. O'Rourke and T. D. Butler. KIVA-II: A computer program for chemically reactive flows with sprays (Los Alamos National Laboratory, May 1989).
[8]
T. Hanein, F. P. Glasser and M. N. Bannerman. One-dimensional steady-state thermal model for rotary kilns used in the manufacture of cement. Advances in Applied Ceramics 116, 207–215 (2017).
[9]
K. S. Mujumdar and V. V. Ranade. Simulation of rotary cement kilns using a one-dimensional model. Chemical Engineering Research and Design 84, 165–177 (2006).
[10]
W. L. Grosshandler. Radcal – a narrow-band model for radiation calculations in a combustion environment (National Institute of Standards and Technology, 1993).
[11]
J. P. Gorog, J. K. Brimacombe and T. N. Adams. Radiative heat transfer in rotary kilns. Metallurgical Transactions B 12, 55–70 (1981).
[12]
W. C. Tam and W. W. Yuen. OpenSC: an open-source calculation tool for combustion mixture emissivity/absorptivity (National Institute of Standards and Technology, 2019).
[13]
A. B. Liu, D. Mather and R. D. Reitz. Modeling the Effects of Drop Drag and Breakup on Fuel Sprays. In: SAE Technical Paper Series, ANNUAL (SAE International, Mar 1993).
[14]
R. D. Reitz and R. Diwakar. Structure of high-pressure fuel sprays. In: SAE Technical Paper Series, ANNUAL (SAE International, Feb 1987).
[15]
W. Ranz and W. Marshall. Evaporation from drops. Chemical Engineering Progress 48, 141–146 (1952).
[16]
A. Aissa, M. Abdelouahab, A. Noureddine, M. Elganaoui and B. Pateyron. Ranz and Marshall correlations limits on heat flow between a sphere and its surrounding gas at high temperature. Thermal Science 19, 1521–1528 (2015).
[17]
B. Zuo, A. M. Gomes and C. J. Rutland. Modelling superheated fuel sprays and vaproization. International Journal of Engine Research 1, 321–336 (2000).
[18]
B. Peña and C. Pérez-García. Stability of Turing patterns in the Brusselator model. Physical Review E 64, 056213 (2001).
[19]
W. Sweldens. The Lifting Scheme: A Construction of Second Generation Wavelets. SIAM Journal on Mathematical Analysis 29, 511–546 (1998).
[20]
J. Jeong and F. Hussain. On the identification of a vortex. Journal of Fluid Mechanics 285, 69–94 (1995).
[21]
T. Schneider and E. Stoll. Molecular-dynamics study of a three-dimensional one-component model for distortive phase transitions. Physical Review B 17, 1302–1322 (1978).
[22]
G. Joos. Theoretical physics. Third Edition (Dover Publications, New York, 1986).
[23]
H. Mehrer. Diffusion in Solids : Fundamentals, Methods, Materials, Diffusion-Controlled Processes. Vol. 155 of Springer Series in Solid-State Sciences (Springer Berlin Heidelberg, 2007).
[24]
L. Onsager. Reciprocal relations in irreversible processes. I. Physical Review 37, 405–426 (1931).
[25]
L. Onsager. Reciprocal relations in irreversible processes. II. Physical Review 38, 2265–2279 (1931).
[26]
M. Raissi, P. Perdikaris and G. E. Karniadakis. Physics Informed Deep Learning (Part I): Data-driven Solutions of Nonlinear Partial Differential Equations, arXiv (2017).
[27]
[28]
[29]
C. Wu, M. Zhu, Q. Tan, Y. Kartha and L. Lu. A comprehensive study of non-adaptive and residual-based adaptive sampling for physics-informed neural networks. Computer Methods in Applied Mechanics and Engineering 403, 115671 (2023).
[30]
[31]
K. Haitsiukevich and A. Ilin. Improved Training of Physics-Informed Neural Networks with Model Ensembles, arXiv (2022).
[32]
[33]
Z. Fang, S. Wang and P. Perdikaris. Ensemble learning for Physics Informed Neural Networks: a Gradient Boosting approach, arXiv (2023).
[34]
[35]
J. Yu, L. Lu, X. Meng and G. E. Karniadakis. Gradient-enhanced physics-informed neural networks for forward and inverse PDE problems. Computer Methods in Applied Mechanics and Engineering 393, 114823 (2022).
[36]
[37]
Y. Wang, X. Han, C.-Y. Chang, D. Zha, U. Braga-Neto and X. Hu. Auto-PINN: Understanding and Optimizing Physics-Informed Neural Architecture, arXiv (2023), arXiv:2205.13748 [cs.LG].
[38]
[39]
S. Wang, S. Sankaran and P. Perdikaris. Respecting causality is all you need for training physics-informed neural networks, arXiv (2022), arXiv:2203.07404 [cs.LG].
[40]
[41]
C. J. Arthurs and A. P. King. Active training of physics-informed neural networks to aggregate and interpolate parametric solutions to the Navier-Stokes equations. Journal of Computational Physics 438, 110364 (2021).
[42]
I. E. Lagaris, A. Likas and D. I. Fotiadis. Artificial neural networks for solving ordinary and partial differential equations. IEEE Transactions on Neural Networks 9, 987–1000 (1998).
[43]
E. A. Antonelo, E. Camponogara, L. O. Seman, J. P. Jordanou, E. R. de Souza and J. F. Hübner. Physics-informed neural nets for control of dynamical systems. Neurocomputing 579, 127419 (2024).
[44]
S. Cai, Z. Wang, S. Wang, P. Perdikaris and G. E. Karniadakis. Physics-Informed Neural Networks for Heat Transfer Problems. Journal of Heat Transfer 143 (2021).
[45]
S. Cuomo, V. S. di Cola, F. Giampaolo, G. Rozza, M. Raissi and F. Piccialli. Scientific Machine Learning through Physics-Informed Neural Networks: Where we are and What's next, arXiv (2022).
[46]
G. E. Karniadakis, I. G. Kevrekidis, L. Lu, P. Perdikaris, S. Wang and L. Yang. Physics-informed machine learning. Nature Reviews Physics 3, 422–440 (2021).
[47]
L. Lu, X. Meng, Z. Mao and G. E. Karniadakis. DeepXDE: A Deep Learning Library for Solving Differential Equations. SIAM Review 63, 208–228 (2021).
[48]
L. Lu, R. Pestourie, W. Yao, Z. Wang, F. Verdugo and S. G. Johnson. Physics-informed neural networks with hard constraints for inverse design, arXiv (2021).
[49]
M. A. Nabian, R. J. Gladstone and H. Meidani. Efficient training of physics‐informed neural networks via importance sampling. Computer-Aided Civil and Infrastructure Engineering 36, 962–977 (2021).
[50]
S. Sanyal and K. Roy. RAMP-Net: A Robust Adaptive MPC for Quadrotors via Physics-informed Neural Network, arXiv (2022).
[51]
T. Würth, C. Krauß, C. Zimmerling and L. Kärger. Physics-informed neural networks for data-free surrogate modelling and engineering optimization – An example from composite manufacturing. Materials & Design 231, 112034 (2023).
[52]
S. V. Patankar. Numerical heat transfer and fluid flow (Taylor & Francis, 1980); p. 197.
[53]
J. Crank and P. Nicolson. A practical method for Numerical evaluation of solutions of partial differential equations of the heat-conduction type. Advances in Computational Mathematics 6, 207–226 (1996), reprinted from Proc. Camb. Phil. Soc. 43 (1947) 50-67.
[54]
J. Hristov. Transient heat conduction with variable thermophysical properties power-law temperature-depenent heat capacity and thermal conductivity. Thermal Science 27, 411–422 (2023).
[55]
K. Shirzad and C. Viney. A critical review on applications of the Avrami equation beyond materials science. Journal of The Royal Society Interface 20 (2023).
[56]
E. J. Mittemeijer, L. Cheng, P. J. van der Schaaf, C. M. Brakman and B. M. Korevaar. Analysis of nonisothermal transformation kinetics; tempering of iron-carbon and iron-nitrogen martensites. Metallurgical Transactions A 19, 925–932 (1988).
[57]
M. Malinen and P. Råback. Elmer finite element solver for multiphysics and multiscale problems. In: Multiscale modelling methods for applications in materials science, Vol. 19, edited by I. Kondov and G. Sutmann (Forschungszentrum, Zentralbibliothek, 2013); pp. 101–113. Literaturangaben.
[58]
S. Masamune and J. M. Smith. Thermal conductivity of beds of spherical particles. Industrial and Engineering Chemistry Fundamentals 2, 136–143 (1963).
[59]
A. Luikov, A. Shashkov, L. Vasiliev and Y. Fraiman. Thermal conductivity of porous systems. International Journal of Heat and Mass Transfer 11, 117–140 (1968).
[60]
[61]
J. C. Koh and A. Fortini. Prediction of thermal conductivity and electrical resistivity of porous metallic materials. International Journal of Heat and Mass Transfer 16, 2013–2022 (1973).
[62]
T. Fiedler, E. Pesetskaya, A. Öchsner and J. Grácio. Calculations of the thermal conductivity of porous materials. Materials Science Forum 514–516, 754–758 (2006).
[63]
T. Fiedler, A. Öchsner, N. Muthubandara, I. V. Belova and G. E. Murch. Calculation of the Effective Thermal Conductivity in Composites Using Finite Element and Monte Carlo Methods. Materials Science Forum 553, 51–56 (2007).
[64]
T. Fiedler, E. Solórzano, F. Garcia‐Moreno, A. Öchsner, I. V. Belova and G. E. Murch. Computed tomography based finite element analysis of the thermal properties of cellular aluminium. Materialwissenschaft und Werkstofftechnik 40, 139–143 (2009).
[65]
D. S. Smith, A. Alzina, J. Bourret, B. Nait-Ali, F. Pennec, N. Tessier-Doyen, K. Otsu, H. Matsubara, P. Elser and U. T. Gonzenbach. Thermal conductivity of porous materials. Journal of Materials Research 28, 2260–2272 (2013).
[66]
A. Cheilytko. Finding of the generalized equation of thermal conductivity for porous heat-insulating materials. Technology audit and production reserves 5, 4–10 (2016).
[67]
G. Pia, L. Casnedi and U. Sanna. Porosity and pore size distribution influence on thermal conductivity of yttria-stabilized zirconia: Experimental findings and model predictions. Ceramics International 42, 5802–5809 (2016).
[68]
L. Qiu, H. Zou, D. Tang, D. Wen, Y. Feng and X. Zhang. Inhomogeneity in pore size appreciably lowering thermal conductivity for porous thermal insulators. Applied Thermal Engineering 130, 1004–1011 (2018).
[69]
M. Chikhi. Effective thermal conductivity of porous biomaterials: Numerical investigation. Journal of Building Engineering 32, 101763 (2020).
[70]
K. Mraz, J. Bohacek, O. Resl, M. Chabicovsky and E. Karimi-Sibaki. Thermal conductivity of porous oxide layer: A numerical model based on CT data. Materials Today Communications 28, 102705 (2021).
[71]
P. J. O'Rourke and D. M. Snider. An improved collision damping time for MP-PIC calculations of dense particle flows with applications to polydisperse sedimenting beds and colliding particle jets. Chemical Engineering Science 65, 6014–6028 (2010).
[72]
V. Garaniya and L. Goldsworthy. Heavy Fuel Oil Combustion Modelling Using Continuous Thermodynamics. Marine Engineering 47, 871–877 (2012).
[73]
R. J. Kee, M. E. Coltrin, P. Glarborg and H. Zhu. Chemically reacting flow theory, modeling, and simulation (Wiley & Sons, Incorporated, John, 2017); p. 792.
[74]
H. S. Fogler. Elements of Chemical Reaction Engineering (Prentice Hall International Series in Physical and Chemical Engineering Sciences, 1999).
[75]
[76]
J. P. Du Plessis and J. H. Masliyah. Mathematical modelling of flow through consolidated isotropic porous media. Transport in Porous Media 3, 145–161 (1988).
[77]
A. Haider and O. Levenspiel. Drag coefficient and terminal velocity of spherical and nonspherical particles. Powder Technology 58, 63–70 (1989).
[78]
D. C. Lay. Linear algebra and its applications. Fourth Edition (Addison-Wesley, 2012).
[79]
B. E. Launder and D. B. Spalding. The numerical computation of turbulent flows. Computer Methods in Applied Mechanics and Engineering 3, 269–289 (1974).
+References · WallyToolbox.jl

References

This page contains the literature and external references cited along the toolbox documentation or supporting materials. For a full bibtex file for citing them, please check this database file.

[1]
C. J. Lawn. Principles of combustion engineering for boilers. Combustion treatise (Academic Press, 1987). Includes bibliography and index.
[2]
D. J. Gunn. Transfer of heat or mass to particles in fixed and fluidised beds. International Journal of Heat and Mass Transfer 21, 467–476 (1978).
[3]
H. Kramers and P. Croockewit. The passage of granular solids through inclined rotary kilns. Chemical Engineering Science 1, 259–265 (1952).
[4]
C. H. Shomate. A method for evaluating and correlating thermodynamic data. The Journal of Physical Chemistry 58, 368–372 (1954).
[5]
R. B. Bird, W. E. Stewart and E. N. Lightfoot. Transport phenomena. 2nd Edition (John Wiley and Sons, 2001).
[6]
C. Balaji. Essentials of radiation heat transfer (Wiley, Chichester, 2014).
[7]
A. A. Amsden, P. J. O'Rourke and T. D. Butler. KIVA-II: A computer program for chemically reactive flows with sprays (Los Alamos National Laboratory, May 1989).
[8]
T. Hanein, F. P. Glasser and M. N. Bannerman. One-dimensional steady-state thermal model for rotary kilns used in the manufacture of cement. Advances in Applied Ceramics 116, 207–215 (2017).
[9]
K. S. Mujumdar and V. V. Ranade. Simulation of rotary cement kilns using a one-dimensional model. Chemical Engineering Research and Design 84, 165–177 (2006).
[10]
W. L. Grosshandler. Radcal – a narrow-band model for radiation calculations in a combustion environment (National Institute of Standards and Technology, 1993).
[11]
J. P. Gorog, J. K. Brimacombe and T. N. Adams. Radiative heat transfer in rotary kilns. Metallurgical Transactions B 12, 55–70 (1981).
[12]
W. C. Tam and W. W. Yuen. OpenSC: an open-source calculation tool for combustion mixture emissivity/absorptivity (National Institute of Standards and Technology, 2019).
[13]
A. B. Liu, D. Mather and R. D. Reitz. Modeling the Effects of Drop Drag and Breakup on Fuel Sprays. In: SAE Technical Paper Series, ANNUAL (SAE International, Mar 1993).
[14]
R. D. Reitz and R. Diwakar. Structure of high-pressure fuel sprays. In: SAE Technical Paper Series, ANNUAL (SAE International, Feb 1987).
[15]
W. Ranz and W. Marshall. Evaporation from drops. Chemical Engineering Progress 48, 141–146 (1952).
[16]
A. Aissa, M. Abdelouahab, A. Noureddine, M. Elganaoui and B. Pateyron. Ranz and Marshall correlations limits on heat flow between a sphere and its surrounding gas at high temperature. Thermal Science 19, 1521–1528 (2015).
[17]
B. Zuo, A. M. Gomes and C. J. Rutland. Modelling superheated fuel sprays and vaproization. International Journal of Engine Research 1, 321–336 (2000).
[18]
B. Peña and C. Pérez-García. Stability of Turing patterns in the Brusselator model. Physical Review E 64, 056213 (2001).
[19]
W. Sweldens. The Lifting Scheme: A Construction of Second Generation Wavelets. SIAM Journal on Mathematical Analysis 29, 511–546 (1998).
[20]
J. Jeong and F. Hussain. On the identification of a vortex. Journal of Fluid Mechanics 285, 69–94 (1995).
[21]
T. Schneider and E. Stoll. Molecular-dynamics study of a three-dimensional one-component model for distortive phase transitions. Physical Review B 17, 1302–1322 (1978).
[22]
G. Joos. Theoretical physics. Third Edition (Dover Publications, New York, 1986).
[23]
H. Mehrer. Diffusion in Solids : Fundamentals, Methods, Materials, Diffusion-Controlled Processes. Vol. 155 of Springer Series in Solid-State Sciences (Springer Berlin Heidelberg, 2007).
[24]
L. Onsager. Reciprocal relations in irreversible processes. I. Physical Review 37, 405–426 (1931).
[25]
L. Onsager. Reciprocal relations in irreversible processes. II. Physical Review 38, 2265–2279 (1931).
[26]
M. Raissi, P. Perdikaris and G. E. Karniadakis. Physics Informed Deep Learning (Part I): Data-driven Solutions of Nonlinear Partial Differential Equations, arXiv (2017).
[27]
[28]
[29]
C. Wu, M. Zhu, Q. Tan, Y. Kartha and L. Lu. A comprehensive study of non-adaptive and residual-based adaptive sampling for physics-informed neural networks. Computer Methods in Applied Mechanics and Engineering 403, 115671 (2023).
[30]
[31]
K. Haitsiukevich and A. Ilin. Improved Training of Physics-Informed Neural Networks with Model Ensembles, arXiv (2022).
[32]
[33]
Z. Fang, S. Wang and P. Perdikaris. Ensemble learning for Physics Informed Neural Networks: a Gradient Boosting approach, arXiv (2023).
[34]
[35]
J. Yu, L. Lu, X. Meng and G. E. Karniadakis. Gradient-enhanced physics-informed neural networks for forward and inverse PDE problems. Computer Methods in Applied Mechanics and Engineering 393, 114823 (2022).
[36]
[37]
Y. Wang, X. Han, C.-Y. Chang, D. Zha, U. Braga-Neto and X. Hu. Auto-PINN: Understanding and Optimizing Physics-Informed Neural Architecture, arXiv (2023), arXiv:2205.13748 [cs.LG].
[38]
[39]
S. Wang, S. Sankaran and P. Perdikaris. Respecting causality is all you need for training physics-informed neural networks, arXiv (2022), arXiv:2203.07404 [cs.LG].
[40]
[41]
C. J. Arthurs and A. P. King. Active training of physics-informed neural networks to aggregate and interpolate parametric solutions to the Navier-Stokes equations. Journal of Computational Physics 438, 110364 (2021).
[42]
I. E. Lagaris, A. Likas and D. I. Fotiadis. Artificial neural networks for solving ordinary and partial differential equations. IEEE Transactions on Neural Networks 9, 987–1000 (1998).
[43]
E. A. Antonelo, E. Camponogara, L. O. Seman, J. P. Jordanou, E. R. de Souza and J. F. Hübner. Physics-informed neural nets for control of dynamical systems. Neurocomputing 579, 127419 (2024).
[44]
S. Cai, Z. Wang, S. Wang, P. Perdikaris and G. E. Karniadakis. Physics-Informed Neural Networks for Heat Transfer Problems. Journal of Heat Transfer 143 (2021).
[45]
S. Cuomo, V. S. di Cola, F. Giampaolo, G. Rozza, M. Raissi and F. Piccialli. Scientific Machine Learning through Physics-Informed Neural Networks: Where we are and What's next, arXiv (2022).
[46]
G. E. Karniadakis, I. G. Kevrekidis, L. Lu, P. Perdikaris, S. Wang and L. Yang. Physics-informed machine learning. Nature Reviews Physics 3, 422–440 (2021).
[47]
L. Lu, X. Meng, Z. Mao and G. E. Karniadakis. DeepXDE: A Deep Learning Library for Solving Differential Equations. SIAM Review 63, 208–228 (2021).
[48]
L. Lu, R. Pestourie, W. Yao, Z. Wang, F. Verdugo and S. G. Johnson. Physics-informed neural networks with hard constraints for inverse design, arXiv (2021).
[49]
M. A. Nabian, R. J. Gladstone and H. Meidani. Efficient training of physics‐informed neural networks via importance sampling. Computer-Aided Civil and Infrastructure Engineering 36, 962–977 (2021).
[50]
S. Sanyal and K. Roy. RAMP-Net: A Robust Adaptive MPC for Quadrotors via Physics-informed Neural Network, arXiv (2022).
[51]
T. Würth, C. Krauß, C. Zimmerling and L. Kärger. Physics-informed neural networks for data-free surrogate modelling and engineering optimization – An example from composite manufacturing. Materials & Design 231, 112034 (2023).
[52]
S. V. Patankar. Numerical heat transfer and fluid flow (Taylor & Francis, 1980); p. 197.
[53]
J. Crank and P. Nicolson. A practical method for Numerical evaluation of solutions of partial differential equations of the heat-conduction type. Advances in Computational Mathematics 6, 207–226 (1996), reprinted from Proc. Camb. Phil. Soc. 43 (1947) 50-67.
[54]
J. Hristov. Transient heat conduction with variable thermophysical properties power-law temperature-depenent heat capacity and thermal conductivity. Thermal Science 27, 411–422 (2023).
[55]
K. Shirzad and C. Viney. A critical review on applications of the Avrami equation beyond materials science. Journal of The Royal Society Interface 20 (2023).
[56]
E. J. Mittemeijer, L. Cheng, P. J. van der Schaaf, C. M. Brakman and B. M. Korevaar. Analysis of nonisothermal transformation kinetics; tempering of iron-carbon and iron-nitrogen martensites. Metallurgical Transactions A 19, 925–932 (1988).
[57]
M. Malinen and P. Råback. Elmer finite element solver for multiphysics and multiscale problems. In: Multiscale modelling methods for applications in materials science, Vol. 19, edited by I. Kondov and G. Sutmann (Forschungszentrum, Zentralbibliothek, 2013); pp. 101–113. Literaturangaben.
[58]
S. Masamune and J. M. Smith. Thermal conductivity of beds of spherical particles. Industrial and Engineering Chemistry Fundamentals 2, 136–143 (1963).
[59]
A. Luikov, A. Shashkov, L. Vasiliev and Y. Fraiman. Thermal conductivity of porous systems. International Journal of Heat and Mass Transfer 11, 117–140 (1968).
[60]
[61]
J. C. Koh and A. Fortini. Prediction of thermal conductivity and electrical resistivity of porous metallic materials. International Journal of Heat and Mass Transfer 16, 2013–2022 (1973).
[62]
T. Fiedler, E. Pesetskaya, A. Öchsner and J. Grácio. Calculations of the thermal conductivity of porous materials. Materials Science Forum 514–516, 754–758 (2006).
[63]
T. Fiedler, A. Öchsner, N. Muthubandara, I. V. Belova and G. E. Murch. Calculation of the Effective Thermal Conductivity in Composites Using Finite Element and Monte Carlo Methods. Materials Science Forum 553, 51–56 (2007).
[64]
T. Fiedler, E. Solórzano, F. Garcia‐Moreno, A. Öchsner, I. V. Belova and G. E. Murch. Computed tomography based finite element analysis of the thermal properties of cellular aluminium. Materialwissenschaft und Werkstofftechnik 40, 139–143 (2009).
[65]
D. S. Smith, A. Alzina, J. Bourret, B. Nait-Ali, F. Pennec, N. Tessier-Doyen, K. Otsu, H. Matsubara, P. Elser and U. T. Gonzenbach. Thermal conductivity of porous materials. Journal of Materials Research 28, 2260–2272 (2013).
[66]
A. Cheilytko. Finding of the generalized equation of thermal conductivity for porous heat-insulating materials. Technology audit and production reserves 5, 4–10 (2016).
[67]
G. Pia, L. Casnedi and U. Sanna. Porosity and pore size distribution influence on thermal conductivity of yttria-stabilized zirconia: Experimental findings and model predictions. Ceramics International 42, 5802–5809 (2016).
[68]
L. Qiu, H. Zou, D. Tang, D. Wen, Y. Feng and X. Zhang. Inhomogeneity in pore size appreciably lowering thermal conductivity for porous thermal insulators. Applied Thermal Engineering 130, 1004–1011 (2018).
[69]
M. Chikhi. Effective thermal conductivity of porous biomaterials: Numerical investigation. Journal of Building Engineering 32, 101763 (2020).
[70]
K. Mraz, J. Bohacek, O. Resl, M. Chabicovsky and E. Karimi-Sibaki. Thermal conductivity of porous oxide layer: A numerical model based on CT data. Materials Today Communications 28, 102705 (2021).
[71]
P. J. O'Rourke and D. M. Snider. An improved collision damping time for MP-PIC calculations of dense particle flows with applications to polydisperse sedimenting beds and colliding particle jets. Chemical Engineering Science 65, 6014–6028 (2010).
[72]
V. Garaniya and L. Goldsworthy. Heavy Fuel Oil Combustion Modelling Using Continuous Thermodynamics. Marine Engineering 47, 871–877 (2012).
[73]
R. J. Kee, M. E. Coltrin, P. Glarborg and H. Zhu. Chemically reacting flow theory, modeling, and simulation (Wiley & Sons, Incorporated, John, 2017); p. 792.
[74]
H. S. Fogler. Elements of Chemical Reaction Engineering (Prentice Hall International Series in Physical and Chemical Engineering Sciences, 1999).
[75]
[76]
J. P. Du Plessis and J. H. Masliyah. Mathematical modelling of flow through consolidated isotropic porous media. Transport in Porous Media 3, 145–161 (1988).
[77]
A. Haider and O. Levenspiel. Drag coefficient and terminal velocity of spherical and nonspherical particles. Powder Technology 58, 63–70 (1989).
[78]
D. C. Lay. Linear algebra and its applications. Fourth Edition (Addison-Wesley, 2012).
[79]
B. E. Launder and D. B. Spalding. The numerical computation of turbulent flows. Computer Methods in Applied Mechanics and Engineering 3, 269–289 (1974).
diff --git a/dev/Science/01-Theoretical-Physics/index.html b/dev/Science/01-Theoretical-Physics/index.html index d7ed9701f..385dda780 100644 --- a/dev/Science/01-Theoretical-Physics/index.html +++ b/dev/Science/01-Theoretical-Physics/index.html @@ -1,2 +1,2 @@ -Theoretical Physics · WallyToolbox.jl

Theoretical Physics

This notes track my studies of theoretical physics rather than providing content by themselves. Currently I am following the text by Joos1958 [22] because of its self-contained aspects. The text assumes previous knowledge of Calculus, and the reader familiar with the subject may simply skim the first part; in some topics the author provide better physical context than normal Calculus textbooks, what may be interesting.

+Theoretical Physics · WallyToolbox.jl

Theoretical Physics

This notes track my studies of theoretical physics rather than providing content by themselves. Currently I am following the text by Joos1958 [22] because of its self-contained aspects. The text assumes previous knowledge of Calculus, and the reader familiar with the subject may simply skim the first part; in some topics the author provide better physical context than normal Calculus textbooks, what may be interesting.

diff --git a/dev/Science/02-Density-Functional-Theory/index.html b/dev/Science/02-Density-Functional-Theory/index.html index 5306ecb5a..ddc15cc45 100644 --- a/dev/Science/02-Density-Functional-Theory/index.html +++ b/dev/Science/02-Density-Functional-Theory/index.html @@ -1,2 +1,2 @@ -Density Functional Theory (DFT) · WallyToolbox.jl
+Density Functional Theory (DFT) · WallyToolbox.jl
diff --git a/dev/Science/03-Molecular-Dynamics/index.html b/dev/Science/03-Molecular-Dynamics/index.html index 8ea2b1ca5..90f696e4a 100644 --- a/dev/Science/03-Molecular-Dynamics/index.html +++ b/dev/Science/03-Molecular-Dynamics/index.html @@ -1,2 +1,2 @@ -Molecular Dynamics (MD) · WallyToolbox.jl

Molecular Dynamics (MD)

The Materials Project has many interesting for those working on MD and especially DFT. Theoretical basis can be found in the work by Hinchliffe which maybe will require some refreshing on the The Feynman Lectures on Physics to be followed.

Since molecular dynamics is a field essentially related to simulation (there is no MD without simulation!), it is worth listing the major open source projects related to the field, LAMMPS, ESPReSo, and Gromacs. Other interesting projects include HOOMD and the popular NAMD; I have refrained from the last given its greedy licensing scheme. My studies are currently focused in LAMMPS because its fields of application and system portability.

+Molecular Dynamics (MD) · WallyToolbox.jl

Molecular Dynamics (MD)

The Materials Project has many interesting for those working on MD and especially DFT. Theoretical basis can be found in the work by Hinchliffe which maybe will require some refreshing on the The Feynman Lectures on Physics to be followed.

Since molecular dynamics is a field essentially related to simulation (there is no MD without simulation!), it is worth listing the major open source projects related to the field, LAMMPS, ESPReSo, and Gromacs. Other interesting projects include HOOMD and the popular NAMD; I have refrained from the last given its greedy licensing scheme. My studies are currently focused in LAMMPS because its fields of application and system portability.

diff --git a/dev/Science/04-Continuum-Mechanics/index.html b/dev/Science/04-Continuum-Mechanics/index.html index 9490e24db..0382dd349 100644 --- a/dev/Science/04-Continuum-Mechanics/index.html +++ b/dev/Science/04-Continuum-Mechanics/index.html @@ -39,4 +39,4 @@ % \quad\text{where}\quad % -\mathrm{Da}=\frac{D}{k}L^2=\left(\frac{L}{\delta}\right)^2\]

Limiting cases are:

021

In fact it is in this lecture that the stripping of dimensions of the equation as presented above in 020 is formalized;

022

+\mathrm{Da}=\frac{D}{k}L^2=\left(\frac{L}{\delta}\right)^2\]

Limiting cases are:

021

In fact it is in this lecture that the stripping of dimensions of the equation as presented above in 020 is formalized;

022

diff --git a/dev/Science/05-Machine-Learning/index.html b/dev/Science/05-Machine-Learning/index.html index e80d27138..40e5e5b98 100644 --- a/dev/Science/05-Machine-Learning/index.html +++ b/dev/Science/05-Machine-Learning/index.html @@ -1,2 +1,2 @@ -Machine Learning · WallyToolbox.jl

Machine Learning

Data Driven Science and Engineering

Notes based on Data-Driven Science and Engineering by Steven L. Brunton and J. Nathan Kurz. Their proposed teaching materials for the book can be found here. Supplementary notes that might be useful for understanding the concepts are provided in course AMATH301. The set of open source materials proposed by Kurz's team is found here.

Singular Value Decomposition

Fourier and Wavelet Transforms

Sparsity and Compressed Sensing

Regression and Model Selection

Clustering and Classification

Neural Networks and Deep Learning

Data-Driven Dynamical Systems

Linear Control Theory

Balanced Models for Control

Data-Driven Control

Reduced Order Models (ROMs)

POD for Partial Differential equations (11.1)

  • Proxy models are much faster (lower dimensional)
  • Classical discretization (FD) lead to high dimensional schemes
  • Model expansion can produce much lower dimension problems

\[u(x,t) = \sum_{k=1}^{n}a_{k}(t)\psi_k(x)\]

  • Idea: plug the modal expansion in the PDE and expand it
  • With modal basis the approximations are non-local (global)
  • Option 1: Fourier mode expansion - FFT

\[\psi_k(x)=\frac{1}{L}\exp\left(i\frac{2\pi{}kx}{L}\right)\]

  • Goal: try to approximate with $r$ basis instead of large $n$
  • Example: try to approximate a Gaussian with FME
  • Localized structures require more expansion modes
  • Construction similar to spectral methods

Optimal Basis Elements (11.2)

  • Key idea: simulate the dynamics of the system and save snapshots of time-step solutions to then identify a modal expansion.
  • The $\tilde{U}$ POD basis $\psi_k$ found by truncating the SVD matrix $U$ at rank $r$ is the optimal in the $L^2$ sense for the given data.
  • Use energy accumulated in modes as discussed in Chapter 1 Singular Value Decomposition to define the optimal (or good enough) value of $r$.
  • The produced ROM is not assured to be safe outside the subspace to which it was identified, though that is fine for several physics.

POD and Soliton Dynamics (11.3)

Continuous Formulation of POD

POD with Symmetries

Interpolation for Parametric ROMs

Additional materials

Professor Nick Trefethen, University of Oxford, Linear Algebra Optimization


Physics-Informed Neural Networks

Physics-Informed Neural Networks (PINNs) were first introduced by Raissi2017 [26] in the context of providing data-driven solutions of nonlinear PDE's. In what follows we review the basic concepts and approaches developed in this field during the past few years. Both mathematical and application aspects will be treated in the review.

Common applications

As per Guo2024a [27] the following common applications arise from PINNs:

Predictive modeling and simulations

  • Solution of dynamical systems (even high-dimensional)
  • Acceleration of multi-physics simulations

Optimization and systems control

  • Surrogate models for design optimization
  • Inverse design (finding conditions)
  • Model predictive control
  • Optimal sensor placement

Data-driven insights

Data-driven enhancement

Monitoring, diagnostic, and health assessment

Key Ideas

  • Inject the prediction values in the governing equations to compose the loss function, enforcing the NN to obey the underlying physics.

  • There are 2 components in the loss function, the physical loss evaluated from the deviation from training data (as is commonplace in NN training) and the PDE loss, which is further divided into boundary and initial condition losses.

  • Collocation points is how we call the temporal and spacial coordinates where evaluation of physical properties are computed, corresponding to nodes or cell centers in classical numerical schemes.

Research opportunities

  • Following Guo2023a [28] citing the work by Wu2022a [29], resampling and refinement methods could be improved by better PDF's and the use of active or reinforcement learning to improve sampling.

References

Unraveling the design pattern of physics-informed neural networks:

PostSubjectMain reference(s)
Guo2023a [28]Resampling of residual pointsWu2022a [29]
Guo2023b [30]Ensemble learning and dynamic solution interval expansionHaitsiukevich2022a [31]
Guo2023c [32]Improving performance through gradient boostingFang2023a [33]
Guo2023d [34]Incorporate the gradient of residual terms as an additional loss term for stiff problemsYu2022a [35]
Guo2023e [36]Wang2023a [37]
Guo2023f [38]Wang2022a [39]
Guo2023g [40]Arthurs2021a [41]
ReferenceSubject
Lagaris1997a [42]Seminal work on PINNs.
Antonelo2021a [43]
Cai2021a [44]
Cuomo2022a [45]
Haitsiukevich2022a [31]
Karniadakis2021a [46]
Lu2019a [47]
Lu2021a [48]
Nabian2021a [49]
Sanyal2022a [50]
Wurth2023a [51]Use of PINNs to solve diffusion equation (heat transfer) during the curing of composites. The paper is more focused in the application than in the implementation. Benchmark against FDM/FEM.

Other current readings:

+Machine Learning · WallyToolbox.jl

Machine Learning

Data Driven Science and Engineering

Notes based on Data-Driven Science and Engineering by Steven L. Brunton and J. Nathan Kurz. Their proposed teaching materials for the book can be found here. Supplementary notes that might be useful for understanding the concepts are provided in course AMATH301. The set of open source materials proposed by Kurz's team is found here.

Singular Value Decomposition

Fourier and Wavelet Transforms

Sparsity and Compressed Sensing

Regression and Model Selection

Clustering and Classification

Neural Networks and Deep Learning

Data-Driven Dynamical Systems

Linear Control Theory

Balanced Models for Control

Data-Driven Control

Reduced Order Models (ROMs)

POD for Partial Differential equations (11.1)

  • Proxy models are much faster (lower dimensional)
  • Classical discretization (FD) lead to high dimensional schemes
  • Model expansion can produce much lower dimension problems

\[u(x,t) = \sum_{k=1}^{n}a_{k}(t)\psi_k(x)\]

  • Idea: plug the modal expansion in the PDE and expand it
  • With modal basis the approximations are non-local (global)
  • Option 1: Fourier mode expansion - FFT

\[\psi_k(x)=\frac{1}{L}\exp\left(i\frac{2\pi{}kx}{L}\right)\]

  • Goal: try to approximate with $r$ basis instead of large $n$
  • Example: try to approximate a Gaussian with FME
  • Localized structures require more expansion modes
  • Construction similar to spectral methods

Optimal Basis Elements (11.2)

  • Key idea: simulate the dynamics of the system and save snapshots of time-step solutions to then identify a modal expansion.
  • The $\tilde{U}$ POD basis $\psi_k$ found by truncating the SVD matrix $U$ at rank $r$ is the optimal in the $L^2$ sense for the given data.
  • Use energy accumulated in modes as discussed in Chapter 1 Singular Value Decomposition to define the optimal (or good enough) value of $r$.
  • The produced ROM is not assured to be safe outside the subspace to which it was identified, though that is fine for several physics.

POD and Soliton Dynamics (11.3)

Continuous Formulation of POD

POD with Symmetries

Interpolation for Parametric ROMs

Additional materials

Professor Nick Trefethen, University of Oxford, Linear Algebra Optimization


Physics-Informed Neural Networks

Physics-Informed Neural Networks (PINNs) were first introduced by Raissi2017 [26] in the context of providing data-driven solutions of nonlinear PDE's. In what follows we review the basic concepts and approaches developed in this field during the past few years. Both mathematical and application aspects will be treated in the review.

Common applications

As per Guo2024a [27] the following common applications arise from PINNs:

Predictive modeling and simulations

  • Solution of dynamical systems (even high-dimensional)
  • Acceleration of multi-physics simulations

Optimization and systems control

  • Surrogate models for design optimization
  • Inverse design (finding conditions)
  • Model predictive control
  • Optimal sensor placement

Data-driven insights

Data-driven enhancement

Monitoring, diagnostic, and health assessment

Key Ideas

  • Inject the prediction values in the governing equations to compose the loss function, enforcing the NN to obey the underlying physics.

  • There are 2 components in the loss function, the physical loss evaluated from the deviation from training data (as is commonplace in NN training) and the PDE loss, which is further divided into boundary and initial condition losses.

  • Collocation points is how we call the temporal and spacial coordinates where evaluation of physical properties are computed, corresponding to nodes or cell centers in classical numerical schemes.

Research opportunities

  • Following Guo2023a [28] citing the work by Wu2022a [29], resampling and refinement methods could be improved by better PDF's and the use of active or reinforcement learning to improve sampling.

References

Unraveling the design pattern of physics-informed neural networks:

PostSubjectMain reference(s)
Guo2023a [28]Resampling of residual pointsWu2022a [29]
Guo2023b [30]Ensemble learning and dynamic solution interval expansionHaitsiukevich2022a [31]
Guo2023c [32]Improving performance through gradient boostingFang2023a [33]
Guo2023d [34]Incorporate the gradient of residual terms as an additional loss term for stiff problemsYu2022a [35]
Guo2023e [36]Wang2023a [37]
Guo2023f [38]Wang2022a [39]
Guo2023g [40]Arthurs2021a [41]
ReferenceSubject
Lagaris1997a [42]Seminal work on PINNs.
Antonelo2021a [43]
Cai2021a [44]
Cuomo2022a [45]
Haitsiukevich2022a [31]
Karniadakis2021a [46]
Lu2019a [47]
Lu2021a [48]
Nabian2021a [49]
Sanyal2022a [50]
Wurth2023a [51]Use of PINNs to solve diffusion equation (heat transfer) during the curing of composites. The paper is more focused in the application than in the implementation. Benchmark against FDM/FEM.

Other current readings:

diff --git a/dev/Science/06-Maths-Cheatsheet/index.html b/dev/Science/06-Maths-Cheatsheet/index.html index 6a6599d08..4a59e1b0a 100644 --- a/dev/Science/06-Maths-Cheatsheet/index.html +++ b/dev/Science/06-Maths-Cheatsheet/index.html @@ -1,2 +1,2 @@ -Mathematics · WallyToolbox.jl

Mathematics


Linear algebra

For a full review of linear algebra, please consult Lay2012 [78].

A linear system of equations may have (1) no solution, (2) exactly one solution, or (3) infinitely many solutions. Solving and analyzing them is the task of linear algebra.

Definitions

  • Echelon form
  • Pivot position
  • Span subset of $\mathbb{R}^n$
  • Matrix-vector product as a linear combination of columns

Theorems

  • Uniqueness of the reduced echelon form: each matrix is row equivalent to one and only one reduced echelon matrix.

  • Existence and uniqueness: a linear system is consistent if and only if the rightmost column of the augmented matrix is not a pivot column. In this case, the solution set contains either (1) a unique solution (no free variables), or (2) infinitely many solutions (at least one free variable).

  • A system $A\mathbf{x}=\mathbf{b}$ has the same solution set as the augmented linear system composed of the columns of $A$ appended by $\mathrm{b}$. The same is true for the equivalent vector equation, but that is self-evident from the definition of matrix-vector product.


Calculus


Differential equations

+Mathematics · WallyToolbox.jl

Mathematics


Linear algebra

For a full review of linear algebra, please consult Lay2012 [78].

A linear system of equations may have (1) no solution, (2) exactly one solution, or (3) infinitely many solutions. Solving and analyzing them is the task of linear algebra.

Definitions

  • Echelon form
  • Pivot position
  • Span subset of $\mathbb{R}^n$
  • Matrix-vector product as a linear combination of columns

Theorems

  • Uniqueness of the reduced echelon form: each matrix is row equivalent to one and only one reduced echelon matrix.

  • Existence and uniqueness: a linear system is consistent if and only if the rightmost column of the augmented matrix is not a pivot column. In this case, the solution set contains either (1) a unique solution (no free variables), or (2) infinitely many solutions (at least one free variable).

  • A system $A\mathbf{x}=\mathbf{b}$ has the same solution set as the augmented linear system composed of the columns of $A$ appended by $\mathrm{b}$. The same is true for the equivalent vector equation, but that is self-evident from the definition of matrix-vector product.


Calculus


Differential equations

diff --git a/dev/Science/07-Finite-Volume-Method/index.html b/dev/Science/07-Finite-Volume-Method/index.html index a30624614..66bc22ee4 100644 --- a/dev/Science/07-Finite-Volume-Method/index.html +++ b/dev/Science/07-Finite-Volume-Method/index.html @@ -243,4 +243,4 @@ \Delta{}T &= T^{\tau,k+1}-T^{\tau,k}\\ T^{\tau,k+1} &= T^{\tau,k}+(1-\alpha)\Delta{}T\\ \varepsilon^{k+1} &= \vert\Delta{}T\vert\\ -\end{align}\]

+\end{align}\]

diff --git a/dev/Science/08-Conductivity-Porous-Solids/index.html b/dev/Science/08-Conductivity-Porous-Solids/index.html index 5f5132a83..1061656a5 100644 --- a/dev/Science/08-Conductivity-Porous-Solids/index.html +++ b/dev/Science/08-Conductivity-Porous-Solids/index.html @@ -1,2 +1,2 @@ -Thermal conductivity of porous solids · WallyToolbox.jl

Thermal conductivity of porous solids

Porous solids are characterized by the presence of voidance; they may be formed, for instance, through the sintering of particles with a given size distribution or through a foaming process. The former will lead to pores presenting a mostly convex geometry due to particle-particle contacts of while the latter leads to concave pores, generally due to former gas bubbles during foaming process; these morphologies and the scale of porosity will lead to a broad range of properties in macroscopic behavior of materials. Other features related to the porosity might include the communicating character of pores or the validity of continuum mechanics in a given problem due to pore sizes. This subject has been treated by scholars of many fields because of its relevance to industrial processes, heat transfer in furnaces, biological systems, and more recently in heat storage and recovery devices, not to try to be exhaustive here; specific citations come next.

In what follows we will briefly review some of the afore mentioned applications and historical developments in the field before tackling the problem of modeling heat transfer in arbitrary materials. The goal of our literature review is to determine the limits of applicability and how well accepted are the available methods proposed in the past, but also to identify potential use cases of computational methods in materials design before proposing our own scenarios. The study will comprise situations allowing for analytical solution for solver validation, reproduction of previous published results, and the modeling of arbitrary solids. Unless stated otherwise, numerical studies in two and three dimensions are carried out with Elmer Malinen2013a [57] finite element method (FEM) solver. Additional simulations with pore filling with inclusions are also included in the study, providing a basis for composite materials. A database of predicted materials properties is composed for future studies.

Literature survey

  • Masamune1963a [58]: studied the role of gas pressure below and up to atmospheric pressure over the effective thermal conductivity $k_{e}$ of a bed of spherical particles by carrying out measurements at 42 °C; mechanisms of heat transfer can be classified as transport through (1) conduction and radiation in voids, (2) effective solid-path and gas-path lengths, and (3) solid conduction through contacts. Although the authors acknowledge the role of radiation in heat transfer, it is not included in their expression, but low Knudsen number effects were considered for thermal conductivity when necessary by considering a pressure dependence in gas thermal conductivity $k_{g}^{\star}$.

  • Luikov1968a [59]:

  • Koh1971a [60]:

  • Koh1973a [61]:

  • Fiedler2006a [62]:

  • Fiedler2007a [63]:

  • Fiedler2009a [64]:

  • Smith2013a [65]:

  • Cheilytko2016a [66]:

  • Pia2016a [67]:

  • Qiu2018a [68]:

  • Chikhi2020a [69]:

  • Mraz2021a [70]:

Experimental design

No.CaseStatusGoal
1Analytical solution of dense, $k=k_{ref}$
2Analytical solution of dense, $k=k_{ref}-bT$
3Simulation of dense, $k=k_{ref}$
4Simulation of dense, $k=k_{ref}-bT$
5

Summary of results

+Thermal conductivity of porous solids · WallyToolbox.jl

Thermal conductivity of porous solids

Porous solids are characterized by the presence of voidance; they may be formed, for instance, through the sintering of particles with a given size distribution or through a foaming process. The former will lead to pores presenting a mostly convex geometry due to particle-particle contacts of while the latter leads to concave pores, generally due to former gas bubbles during foaming process; these morphologies and the scale of porosity will lead to a broad range of properties in macroscopic behavior of materials. Other features related to the porosity might include the communicating character of pores or the validity of continuum mechanics in a given problem due to pore sizes. This subject has been treated by scholars of many fields because of its relevance to industrial processes, heat transfer in furnaces, biological systems, and more recently in heat storage and recovery devices, not to try to be exhaustive here; specific citations come next.

In what follows we will briefly review some of the afore mentioned applications and historical developments in the field before tackling the problem of modeling heat transfer in arbitrary materials. The goal of our literature review is to determine the limits of applicability and how well accepted are the available methods proposed in the past, but also to identify potential use cases of computational methods in materials design before proposing our own scenarios. The study will comprise situations allowing for analytical solution for solver validation, reproduction of previous published results, and the modeling of arbitrary solids. Unless stated otherwise, numerical studies in two and three dimensions are carried out with Elmer Malinen2013a [57] finite element method (FEM) solver. Additional simulations with pore filling with inclusions are also included in the study, providing a basis for composite materials. A database of predicted materials properties is composed for future studies.

Literature survey

  • Masamune1963a [58]: studied the role of gas pressure below and up to atmospheric pressure over the effective thermal conductivity $k_{e}$ of a bed of spherical particles by carrying out measurements at 42 °C; mechanisms of heat transfer can be classified as transport through (1) conduction and radiation in voids, (2) effective solid-path and gas-path lengths, and (3) solid conduction through contacts. Although the authors acknowledge the role of radiation in heat transfer, it is not included in their expression, but low Knudsen number effects were considered for thermal conductivity when necessary by considering a pressure dependence in gas thermal conductivity $k_{g}^{\star}$.

  • Luikov1968a [59]:

  • Koh1971a [60]:

  • Koh1973a [61]:

  • Fiedler2006a [62]:

  • Fiedler2007a [63]:

  • Fiedler2009a [64]:

  • Smith2013a [65]:

  • Cheilytko2016a [66]:

  • Pia2016a [67]:

  • Qiu2018a [68]:

  • Chikhi2020a [69]:

  • Mraz2021a [70]:

Experimental design

No.CaseStatusGoal
1Analytical solution of dense, $k=k_{ref}$
2Analytical solution of dense, $k=k_{ref}-bT$
3Simulation of dense, $k=k_{ref}$
4Simulation of dense, $k=k_{ref}-bT$
5

Summary of results

diff --git a/dev/Science/09-Finite-Element-Method/index.html b/dev/Science/09-Finite-Element-Method/index.html index dbf397df2..110ffd18d 100644 --- a/dev/Science/09-Finite-Element-Method/index.html +++ b/dev/Science/09-Finite-Element-Method/index.html @@ -1,2 +1,2 @@ -Finite Element Method · WallyToolbox.jl
+Finite Element Method · WallyToolbox.jl
diff --git a/dev/Science/10-Continuum-Mechanics/index.html b/dev/Science/10-Continuum-Mechanics/index.html index a66c7bfc0..5d9024b92 100644 --- a/dev/Science/10-Continuum-Mechanics/index.html +++ b/dev/Science/10-Continuum-Mechanics/index.html @@ -71,4 +71,4 @@ f_{N-2,N-1} \\ f_{N-1,N} \\ \end{bmatrix}\]

No vetor do lado direito introduzimos uma função de $f$ dada por

\[f_{i,j} = 2aT_{s} - a(T_{i}+T_{j})\]

Solução em volumes finitos

#finite-volume-method

Como as temperaturas usadas no lado direito da equação não são conhecidas inicialmente, o problema tem um caráter iterativo intrínseco. Inicializamos o lado direito da equação para em seguida resolver o problema na entalpia, que deve ser invertida (equações não lineares) para se atualizar as temperaturas. Isso se repete até que a solução entre duas iterações consecutivas atinja um critério de convergência.

Como a estimativa inicial do campo de temperaturas pode ser extremamente ruim, usamos um método com relaxações consecutivas da solução no caminho da convergência. A ideia de base é evitar atualizações bruscas que podem gerar temperaturas negativas ou simplesmente divergir para o infinito. A cada passo, partindo das temperaturas $T^{(m)}$, aonde $m$ é o índice da iteração, resolvemos o sistema não-linear para encontrar $T^{(m+1)^\prime}$. Pelas razões citadas, não é razoável utilizar essa solução diretamente, portanto realizamos a ponderação, dita relaxação, que se segue

\[T^{(m+1)}=(1-\alpha)T^{(m+1)^\prime}+αT^{(m)}\]

O fator $\alpha$ representa neste caso a fração de contribuição da solução anterior a nova estimativa. Essa é somente a ponta do iceberg em termos de relaxação e ao longo da série veremos em mais detalhes o conceito. Como critério de parada do cálculo, o que chamamos convergência, queremos que a máxima atualização $\Delta{}T$ relativa do campo de temperaturas seja menor que um critério $\varepsilon$, ou seja

\[\max\frac{\vert{}T^{(m+1)}-T^{(m)}\vert}{\vert{}\max{T^{(m)}}\vert}= -\max\biggr\vert{}\frac{\Delta{}T{}}{\max{}T^{(m)}}\biggr\vert<\varepsilon\]

Para evitar cálculos separados da nova temperatura e então da variação, podemos usar as definições acima para chegar à

\[\Delta{}T{} = (1-\alpha)(T^{(m+1)^\prime}-T^{(m)})\]

e então atualizar a solução com $T^{(m+1)}=T^{(m)}+\Delta{}T{}$.

To-do

+\max\biggr\vert{}\frac{\Delta{}T{}}{\max{}T^{(m)}}\biggr\vert<\varepsilon\]

Para evitar cálculos separados da nova temperatura e então da variação, podemos usar as definições acima para chegar à

\[\Delta{}T{} = (1-\alpha)(T^{(m+1)^\prime}-T^{(m)})\]

e então atualizar a solução com $T^{(m+1)}=T^{(m)}+\Delta{}T{}$.

To-do

diff --git a/dev/Science/Drafts/index.html b/dev/Science/Drafts/index.html index a8b0b5ec0..125ba47cc 100644 --- a/dev/Science/Drafts/index.html +++ b/dev/Science/Drafts/index.html @@ -1,2 +1,2 @@ -- · WallyToolbox.jl

Courses to follow:

\item\href{https://ocw.mit.edu/courses/mathematics/18-075-advanced-calculus-for-engineers-fall-2004/}{Advanced Calculus}

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-06-fluid-dynamics-spring-2013/}{Fluid Dynamics}:

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-25-advanced-fluid-mechanics-fall-2013/}{Advanced Fluid Mecanics}

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-27-turbulent-flow-and-transport-spring-2002/}{Turbulent Flow and Transport}

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-051-introduction-to-heat-transfer-fall-2015/}{Introduction to Heat Transfer}

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-51-intermediate-heat-and-mass-transfer-fall-2008/}{Intermediate Heat Transfer}

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-58j-radiative-transfer-spring-2006/}{Radiative Transfer}

\item\href{https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-336j-introduction-to-numerical-simulation-sma-5211-fall-2003/}{Introduction to Simulation}

\item\href{https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-920j-numerical-methods-for-partial-differential-equations-sma-5212-spring-2003/}{Numerical Methods for PDE}

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-29-numerical-fluid-mechanics-spring-2015/}{Numerical Fluid Mechanics}

\item\href{https://ppc.cs.aalto.fi/}{Programming Parallel Computers} (and its extension to \href{https://github.com/parallel-rust-cpp}{Rust})

\item\href{https://www.youtube.com/playlist?list=PLfF–3o8i4r82vJ0kjCVYgqKgyVM5QwN0}{Fluid Mechanics (classical)}

\item\href{https://www.youtube.com/playlist?list=PL6S8U84PCLB27bdd15l1xnTSQKf3AOOoj}{Turbulent mixing conference (ICTP)}

\item\href{https://www.youtube.com/playlist?list=PL80xBr8Wq0b5qXRPwyTxmGDOhO4obKOiC}{Turbulent flows}

\item\href{https://www.youtube.com/playlist?list=PLp0hSY2uBeP8rhCbecD1Icahfbr6GSZ19}{Mathematical methods (ICTP)}

\item\href{https://www.youtube.com/playlist?list=PLp0hSY2uBeP_7jL7uqlsxDmvimK2q6eF5}{Fluid dynamics (ICTP)}

\item\href{https://www.youtube.com/channel/UCYlD7XynaJIBuYvmXlRBtnQ}{Pr. Dr. Carlos Thompson channel}

  • [ ] Proof of mean value theorem (null integral implies null integrand)
  • [ ] Derivation of Gauss (divergence) theorem

Thermodynamics quick review

  • When order increases entropy decreases.
  • An endothermic process is a process that absorbs heat from its surroundings; on the other hand, an exothermic process releases heat to its surroundings.

Granular flows

  • Parcel is a computational particle unit that may be composed of several particles which are all identical sharing a state, which include velocity, size, temperature, etc. See ORourke2010 [71] for details.

  • Cloud is the term OpenFOAM uses to describe particle flows. Here we will use both MPPICCloud andcollidingCloud, other types being available for reacting or multiphase solvers, such as thermoCloud.

Technological

  • Siwek chamber is a reactor often used to determine the dispersion of solid fuels for combustion. Validation of simulations can be done through this and this paper. Other than the OpenFOAM case there is also this setup available on Fetch CFD.

Mathematical

  • Hopf bifurcation  is a critical point where, as a parameter changes, a system's stability switches and a periodic solution arises. (see this).

Combustion

  • HyChem is an approach for modeling combustion of real liquid fuels by decomposing the problem into a lumped parameter model of evaporation/devolatilization and a detailed or simplified chemical kinetics approach applied to the gas phase. It is available for high-end fuels such as jet fuel and gasoline.

Condensate fuel combustion

This matter enters a intrinsically multiphysics domain and problem formulation needs to take into account at what level the model is required to act. For liquids, that might include spray droplets formation, evaporation, devolatilization, mass transfer to gas phase, and finally, oxidation kinetics of gas products. In the case of solids, due to high uncertainty and variability in material properties, and complex mass transfer phenomena, one must expect qualitative or semi-quantitative agreement of models and measurements. Furthermore, lumped-parameter modeling is a requirement in the field, making it difficult to be generalized to a physical level as of today.

[[@Saario2005a]] used Ansys Fluent to simulate HFO (heavy-fuel oil) combustion using the standard mixture fraction approach coupled to a Lagrangian particle tracking for evaporating droplets and $k-\epsilon$ turbulence modeling. This is a highly standard industrial application of global combustion simulation from an energy standpoint but lacks the generality of considering a detailed chemistry of gas phase (for instance, for coupling with solid calcination reactions, if that is the case).

[[@Garaniya2012a]] used StarCD to simulate HFO in the context of ship engines. From the same authors Garaniya2012b [72], we also have the the thermodynamic formulation of the problem.

[[@Nowruzi2014]] successfully simulated a spray jet of HFO with OpenFOAM without accounting for chemistry and combustion. In the absence of a proper PSD (particle size-distribution) this step is required to initialize a simulation, but can hardly be integrated in a reacting flow simulation, which would become overly complex.

[[@Sanchez2023a]] studied the combustion of biomass with help of OpenFOAM with some semi-quantitative results within 13% from the measurements, what is already considered a very good agreement in the field.

  • [ ] Continue the research here.

Combustion of heavy oil fuel

[[@Lawn1987]]

+- · WallyToolbox.jl

Courses to follow:

\item\href{https://ocw.mit.edu/courses/mathematics/18-075-advanced-calculus-for-engineers-fall-2004/}{Advanced Calculus}

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-06-fluid-dynamics-spring-2013/}{Fluid Dynamics}:

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-25-advanced-fluid-mechanics-fall-2013/}{Advanced Fluid Mecanics}

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-27-turbulent-flow-and-transport-spring-2002/}{Turbulent Flow and Transport}

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-051-introduction-to-heat-transfer-fall-2015/}{Introduction to Heat Transfer}

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-51-intermediate-heat-and-mass-transfer-fall-2008/}{Intermediate Heat Transfer}

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-58j-radiative-transfer-spring-2006/}{Radiative Transfer}

\item\href{https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-336j-introduction-to-numerical-simulation-sma-5211-fall-2003/}{Introduction to Simulation}

\item\href{https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-920j-numerical-methods-for-partial-differential-equations-sma-5212-spring-2003/}{Numerical Methods for PDE}

\item\href{https://ocw.mit.edu/courses/mechanical-engineering/2-29-numerical-fluid-mechanics-spring-2015/}{Numerical Fluid Mechanics}

\item\href{https://ppc.cs.aalto.fi/}{Programming Parallel Computers} (and its extension to \href{https://github.com/parallel-rust-cpp}{Rust})

\item\href{https://www.youtube.com/playlist?list=PLfF–3o8i4r82vJ0kjCVYgqKgyVM5QwN0}{Fluid Mechanics (classical)}

\item\href{https://www.youtube.com/playlist?list=PL6S8U84PCLB27bdd15l1xnTSQKf3AOOoj}{Turbulent mixing conference (ICTP)}

\item\href{https://www.youtube.com/playlist?list=PL80xBr8Wq0b5qXRPwyTxmGDOhO4obKOiC}{Turbulent flows}

\item\href{https://www.youtube.com/playlist?list=PLp0hSY2uBeP8rhCbecD1Icahfbr6GSZ19}{Mathematical methods (ICTP)}

\item\href{https://www.youtube.com/playlist?list=PLp0hSY2uBeP_7jL7uqlsxDmvimK2q6eF5}{Fluid dynamics (ICTP)}

\item\href{https://www.youtube.com/channel/UCYlD7XynaJIBuYvmXlRBtnQ}{Pr. Dr. Carlos Thompson channel}

  • [ ] Proof of mean value theorem (null integral implies null integrand)
  • [ ] Derivation of Gauss (divergence) theorem

Thermodynamics quick review

  • When order increases entropy decreases.
  • An endothermic process is a process that absorbs heat from its surroundings; on the other hand, an exothermic process releases heat to its surroundings.

Granular flows

  • Parcel is a computational particle unit that may be composed of several particles which are all identical sharing a state, which include velocity, size, temperature, etc. See ORourke2010 [71] for details.

  • Cloud is the term OpenFOAM uses to describe particle flows. Here we will use both MPPICCloud andcollidingCloud, other types being available for reacting or multiphase solvers, such as thermoCloud.

Technological

  • Siwek chamber is a reactor often used to determine the dispersion of solid fuels for combustion. Validation of simulations can be done through this and this paper. Other than the OpenFOAM case there is also this setup available on Fetch CFD.

Mathematical

  • Hopf bifurcation  is a critical point where, as a parameter changes, a system's stability switches and a periodic solution arises. (see this).

Combustion

  • HyChem is an approach for modeling combustion of real liquid fuels by decomposing the problem into a lumped parameter model of evaporation/devolatilization and a detailed or simplified chemical kinetics approach applied to the gas phase. It is available for high-end fuels such as jet fuel and gasoline.

Condensate fuel combustion

This matter enters a intrinsically multiphysics domain and problem formulation needs to take into account at what level the model is required to act. For liquids, that might include spray droplets formation, evaporation, devolatilization, mass transfer to gas phase, and finally, oxidation kinetics of gas products. In the case of solids, due to high uncertainty and variability in material properties, and complex mass transfer phenomena, one must expect qualitative or semi-quantitative agreement of models and measurements. Furthermore, lumped-parameter modeling is a requirement in the field, making it difficult to be generalized to a physical level as of today.

[[@Saario2005a]] used Ansys Fluent to simulate HFO (heavy-fuel oil) combustion using the standard mixture fraction approach coupled to a Lagrangian particle tracking for evaporating droplets and $k-\epsilon$ turbulence modeling. This is a highly standard industrial application of global combustion simulation from an energy standpoint but lacks the generality of considering a detailed chemistry of gas phase (for instance, for coupling with solid calcination reactions, if that is the case).

[[@Garaniya2012a]] used StarCD to simulate HFO in the context of ship engines. From the same authors Garaniya2012b [72], we also have the the thermodynamic formulation of the problem.

[[@Nowruzi2014]] successfully simulated a spray jet of HFO with OpenFOAM without accounting for chemistry and combustion. In the absence of a proper PSD (particle size-distribution) this step is required to initialize a simulation, but can hardly be integrated in a reacting flow simulation, which would become overly complex.

[[@Sanchez2023a]] studied the combustion of biomass with help of OpenFOAM with some semi-quantitative results within 13% from the measurements, what is already considered a very good agreement in the field.

  • [ ] Continue the research here.

Combustion of heavy oil fuel

[[@Lawn1987]]

diff --git a/dev/index.html b/dev/index.html index 65959076c..5d6f0c27f 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Home · WallyToolbox.jl

WallyToolbox

My name is Walter (CV) and I like writing about science and engineering topics. I have more than a decade of scientific computing experience and a broad experience with open source software, especially in the fields of fluid dynamics and gas phase kinetics; a little of it being shared here.

During the years I tried to different formats to organize my study materials and working tools, but it was only recently that I realized that coupling my knowledge base with the documentation of my personal code was the best approach in terms of maintenance. Obviously I cannot migrate all the content I have ever produced here at once, so my decision was to restructure everything and have a fresh start, feeding content as required, i.e. somebody asked me a hand in a certain subject or I need to refresh certain skill at work. In this page you will also find the supporting materials of my Medium articles and some additional content.

The core package of WallyToolbox ecosystem provides shared functionalities and types that are used in more specialized packages. This allows for standardization of interfaces, employed quantities, and avoid boilerplate code. This page organizes everything to facilitate the understanding of the end-user.

Info

Over the time it is expected that many functionalities from other modules will integrate WallyToolbox as they become stable. In some cases, entire modules may become sub-modules, so you might need to check where to import some utilities as this package is rolling release.

Citing

Found it useful? See CITATION.bib for the relevant reference.

Contact

You can contact me by mail.

Questions and proposalsZulip Chat
Found and error or bugCreate and issue
+Home · WallyToolbox.jl

WallyToolbox

My name is Walter (CV) and I like writing about science and engineering topics. I have more than a decade of scientific computing experience and a broad experience with open source software, especially in the fields of fluid dynamics and gas phase kinetics; a little of it being shared here.

During the years I tried to different formats to organize my study materials and working tools, but it was only recently that I realized that coupling my knowledge base with the documentation of my personal code was the best approach in terms of maintenance. Obviously I cannot migrate all the content I have ever produced here at once, so my decision was to restructure everything and have a fresh start, feeding content as required, i.e. somebody asked me a hand in a certain subject or I need to refresh certain skill at work. In this page you will also find the supporting materials of my Medium articles and some additional content.

The core package of WallyToolbox ecosystem provides shared functionalities and types that are used in more specialized packages. This allows for standardization of interfaces, employed quantities, and avoid boilerplate code. This page organizes everything to facilitate the understanding of the end-user.

Info

Over the time it is expected that many functionalities from other modules will integrate WallyToolbox as they become stable. In some cases, entire modules may become sub-modules, so you might need to check where to import some utilities as this package is rolling release.

Citing

Found it useful? See CITATION.bib for the relevant reference.

Contact

You can contact me by mail.

Questions and proposalsZulip Chat
Found and error or bugCreate and issue
diff --git a/dev/toc/index.html b/dev/toc/index.html index edd1a6046..14a7c05b1 100644 --- a/dev/toc/index.html +++ b/dev/toc/index.html @@ -1,2 +1,2 @@ -Table of contents · WallyToolbox.jl

Table of contents

+Table of contents · WallyToolbox.jl

Table of contents