<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel rdf:about="https://community.wolfram.com">
    <title>Community RSS Feed</title>
    <link>https://community.wolfram.com</link>
    <description>RSS Feed for Wolfram Community showing any discussions tagged with Calculus sorted by most viewed.</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2286246" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2593151" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/748854" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/163848" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2041687" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2411604" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3241186" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1551098" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/161277" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/413906" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2110266" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2017849" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/214757" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/139357" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/441498" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/273260" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1280423" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/126143" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/134089" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/352165" />
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2286246">
    <title>$\int_0^\infty e^{i \pi  x} \left(1-(x+1)^{\frac{1}{x+1}}\right) dx$</title>
    <link>https://community.wolfram.com/groups/-/m/t/2286246</link>
    <description>$\int_0^\infty e^{i \pi  x} \left(1-(x+1)^{\frac{1}{x+1}}\right) dx$&#xD;
![enter image description here][1]&#xD;
![enter image description here][2]&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
    f[x_] = E^(I*Pi*x)*(1 - (x + 1)^(1/(x + 1))); &#xD;
    g[x_] = x^(1/x); u := t/(1 - t); &#xD;
    &#xD;
    sub = Im[NIntegrate[(f[(-I t)] - f[( I t)])/(Exp[2 Pi t] - 1), {t,&#xD;
              0, Infinity}, WorkingPrecision -&amp;gt; 100]]&#xD;
    &#xD;
    0.1170836031505383167089899122239912286901483986967757585888318959258587743002\&#xD;
    7817712246477316693025869&#xD;
    &#xD;
    m = NSum[f[( t)] , {t, 0, Infinity}, WorkingPrecision -&amp;gt; 100, &#xD;
      Method -&amp;gt; &amp;#034;AlternatingSigns&amp;#034;]&#xD;
    &#xD;
    0.1878596424620671202485179340542732300559030949001387861720046840894772315646\&#xD;
    6021370329665443217278&#xD;
    &#xD;
    m - sub&#xD;
    &#xD;
    0.0707760393115288035395280218302820013657546962033630275831727881636184572643\&#xD;
    8203658083188126524252&#xD;
    &#xD;
    Is the same as &#xD;
    &#xD;
    &#xD;
    {Re[NIntegrate[f[t], {t, 0, Infinity}]], and, &#xD;
     Re[NIntegrate[f[t], {t, 0, Infinity I}, WorkingPrecision -&amp;gt; 100]]}&#xD;
    &#xD;
    NIntegrate::deodiv: DoubleExponentialOscillatory returns a finite integral estimate, but the integral might be divergent.&#xD;
    &#xD;
    NIntegrate::deodiv: DoubleExponentialOscillatory returns a finite integral estimate, but the integral might be divergent.&#xD;
    &#xD;
    {0.070776, and, \&#xD;
    0.0707760393115288035395280218302820013657546962033630275831727881636184572643\&#xD;
    8203658083188126617723821}&#xD;
&#xD;
To be continued.&#xD;
----------------&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=01.jpg&amp;amp;userId=366611&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=02.jpg&amp;amp;userId=366611&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=03.jpg&amp;amp;userId=366611</description>
    <dc:creator>Marvin Ray Burns A.G.S. (cum laude)</dc:creator>
    <dc:date>2021-06-09T05:56:08Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2593151">
    <title>⭐ [R&amp;amp;DL] Wolfram R&amp;amp;D Developers on LIVE Stream</title>
    <link>https://community.wolfram.com/groups/-/m/t/2593151</link>
    <description>**Introducing our brand new YouTube channel, [Wolfram R&amp;amp;D][1]! Our channel features livestreams, behind-the-scenes creator presentations, insider videos, and more.**&#xD;
&#xD;
----------&#xD;
&#xD;
Join us for the unique Wolfram R&amp;amp;D livestreams on [Twitch][2] and [YouTube][3] led by our developers! &#xD;
&#xD;
You will see **LIVE** stream indicators on these channels on the dates listed below. The live streams provide tutorials and behind the scenes look at Mathematica and the Wolfram Language directly from developers.&#xD;
&#xD;
Join our livestreams every Wednesday at 11 AM CST and interact with developers who work on data science, machine learning, image processing, visualization, geometry, and other areas.&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
⭕ **UPCOMING** EVENTS&#xD;
&#xD;
&#xD;
- Jan 29 -- Reinforcement Learning Applied to Feedback Control with [Suba Thomas][61]&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
✅ **PAST** EVENTS  &#xD;
&#xD;
&#xD;
- April 24 -- [FeynCalc][60]&#xD;
- April 3 -- [Explore the Total Solar Eclipse of April 2024][59]&#xD;
- Mar 22 -- [20 Years of xAct Tensor Computer Algebra][58] &#xD;
- Feb 28 -- [Zero Knowledge Authentication][57]&#xD;
- Jan 17 -- [Nutrients by the Numbers][56]&#xD;
- Dec 13 -- [Understanding Graphics][55]&#xD;
- Oct 18 -- [Overview of Number Theory][54]&#xD;
- Sep 27 -- [QMRITools: Processing Quantitative MRI Data][52]&#xD;
- Sep 13 -- [Make High Quality Graph Visualization][51]&#xD;
- Sep 6 -- [Insider&amp;#039;s View of Graphs &amp;amp; Networks][53]&#xD;
- Aug 30 -- [Labeling Everywhere][49]&#xD;
- Aug 22 -- [Equation Generator for Equation-of-Motion Coupled Cluster Assisted by CAS][48]&#xD;
- Aug 16 -- [Foreign Function Interface][4]&#xD;
- July 26 -- [Modeling Fluid Circuits][6]&#xD;
- July 19 -- [Geocomputation][5]&#xD;
- July 5 -- [Protein Visualization][7]&#xD;
- Jun 14 -- [Chat Notebooks bring the power of Notebooks to LLMs][8]&#xD;
- May 31-- [Probability and Statistics: Random Sampling][9]&#xD;
- May 24 -- [Problem Solving][10]&#xD;
- May 17 -- [The state of Optimization][11]&#xD;
- May 10 -- [Building a video game with Wolfram notebooks][12]&#xD;
- April 26 -- [Control Systems: An Overview][13]&#xD;
- April 19 -- [MaXrd: A crystallography package developed for research support][14]&#xD;
- April 5th -- [Relational database in the Wolfram Language][15]&#xD;
- Mar 29th -- [Build your first game in the Wolfram Language with Unity game engine] [16]&#xD;
- Mar 22nd -- [Everything to know about Mellin-Barnes Integrals - Part II][17]&#xD;
- Mar 15th -- [Building your own Shakespearean GPT - a ChatGPT like GPT model][18]&#xD;
- Mar 8th -- [Understand Time, Date and Calendars][19]&#xD;
- Mar 1st -- [Introducing Astro Computation][20]&#xD;
- Feb 22nd -- [Latest features in System Modeler][21]&#xD;
- Feb 15th -- [Everything to know about Mellin-Barnes Integrals][22]&#xD;
- Feb 8th -- [Dive into Video Processing][23]&#xD;
- Feb 1st -- [PDE Modeling][24]&#xD;
- Jan. 25th -- [Ask Integration Questions to Oleg Marichev][25]&#xD;
- Jan. 18th -- [My Developer Tools][26]&#xD;
- Jan. 11th -- [Principles of Dynamic Interfaces][27]&#xD;
- Dec. 14th -- [Wolfram Resource System: Repositories &amp;amp; Archives][28]&#xD;
- Dec. 7th -- [Inner Workings of ImageStitch: Image Registration, Projection and Blending][29]&#xD;
- Nov. 30th -- [Q&amp;amp;A for Calculus and Algebra][30]&#xD;
- Nov. 23rd -- [xAct: Efficient Tensor Computer Algebra][31]&#xD;
- Nov. 16th -- [Latest in Machine Learning][32]&#xD;
- Nov. 9th -- [Computational Geology][33]&#xD;
- Nov. 2nd -- [Behind the Scenes at the Wolfram Technology Conference 2022][34]&#xD;
- Oct 26th -- [Group Theory Package (GTPack) and Symmetry Principles in Condensed Matter][35]&#xD;
- Oct 12th -- [Tree Representation for XML, JSON and Symbolic Expressions][36]&#xD;
- Oct. 5th -- [A Computational Exploration of Alcoholic Beverages][37]&#xD;
- Sept. 28th -- [Q&amp;amp;A with Visualization &amp;amp; Graphics Developers][38]&#xD;
- Sept. 14th -- [Paclet Development][39]&#xD;
- Sept. 7th -- [Overview of Chemistry][40]&#xD;
- Aug. 24th -- [Dive into Visualization][41]  &#xD;
- Aug. 17th -- [Latest in Graphics &amp;amp; Shaders][42]   &#xD;
- Aug. 10th -- [What&amp;#039;s new in Calculus &amp;amp; Algebra][43]   &#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&#xD;
&amp;gt; **What are your interests? Leave a comment here on this post to share your favorite topic suggestions for our livestreams.**  &#xD;
**Follow us on our live broadcasting channels [Twitch][44] and [YouTube][45] and for the up-to-date announcements on our social media: [Facebook][46] and [Twitter][47].**&#xD;
&#xD;
&#xD;
  [1]: https://wolfr.am/1eatWLcDA&#xD;
  [2]: https://www.twitch.tv/wolfram&#xD;
  [3]: https://wolfr.am/1eatWLcDA&#xD;
  [4]: https://www.youtube.com/watch?v=C82NHpy7D6k&#xD;
  [5]: https://community.wolfram.com/groups/-/m/t/2985580&#xD;
  [6]: https://community.wolfram.com/groups/-/m/t/2982197&#xD;
  [7]: https://community.wolfram.com/groups/-/m/t/2982114&#xD;
  [8]: https://youtu.be/ZqawtrWwE0c&#xD;
  [9]: https://community.wolfram.com/groups/-/m/t/2946101&#xD;
  [10]: https://community.wolfram.com/groups/-/m/t/2925156&#xD;
  [11]: https://community.wolfram.com/groups/-/m/t/2921756&#xD;
  [12]: https://community.wolfram.com/groups/-/m/t/2918746&#xD;
  [13]: https://community.wolfram.com/groups/-/m/t/2917597&#xD;
  [14]: https://community.wolfram.com/groups/-/m/t/2911327&#xD;
  [15]: https://community.wolfram.com/groups/-/m/t/2907390&#xD;
  [16]: https://community.wolfram.com/groups/-/m/t/2921593&#xD;
  [17]: https://community.wolfram.com/groups/-/m/t/2861119&#xD;
  [18]: https://community.wolfram.com/groups/-/m/t/2847286&#xD;
  [19]: https://community.wolfram.com/groups/-/m/t/2851575&#xD;
  [20]: https://community.wolfram.com/groups/-/m/t/2852934&#xD;
  [21]: https://community.wolfram.com/groups/-/m/t/2842136&#xD;
  [22]: https://community.wolfram.com/groups/-/m/t/2838335&#xD;
  [23]: https://community.wolfram.com/groups/-/m/t/2827166&#xD;
  [24]: https://community.wolfram.com/groups/-/m/t/2823264&#xD;
  [25]: https://community.wolfram.com/groups/-/m/t/2821053&#xD;
  [26]: https://youtu.be/istKGqpDUsw&#xD;
  [27]: https://community.wolfram.com/groups/-/m/t/2777853&#xD;
  [28]: https://youtu.be/roCkXVkDuLA&#xD;
  [29]: https://youtu.be/pYHAz-NatXI&#xD;
  [30]: https://youtu.be/r7Hjdr_D7c4&#xD;
  [31]: https://community.wolfram.com/groups/-/m/t/2713818&#xD;
  [32]: https://community.wolfram.com/groups/-/m/t/2705779&#xD;
  [33]: https://community.wolfram.com/groups/-/m/t/2701172&#xD;
  [34]: https://youtu.be/UrM-OBu3H9o&#xD;
  [35]: https://community.wolfram.com/groups/-/m/t/2678940&#xD;
  [36]: https://community.wolfram.com/groups/-/m/t/2649407&#xD;
  [37]: https://community.wolfram.com/groups/-/m/t/2635049&#xD;
  [38]: https://community.wolfram.com/groups/-/m/t/2618033&#xD;
  [39]: https://community.wolfram.com/groups/-/m/t/2616863&#xD;
  [40]: https://community.wolfram.com/groups/-/m/t/2613617&#xD;
  [41]: https://community.wolfram.com/groups/-/m/t/2605432&#xD;
  [42]: https://community.wolfram.com/groups/-/m/t/2600997&#xD;
  [43]: https://community.wolfram.com/groups/-/m/t/2596451&#xD;
  [44]: https://www.twitch.tv/wolfram&#xD;
  [45]: https://wolfr.am/1eatWLcDA&#xD;
  [46]: https://www.facebook.com/wolframresearch&#xD;
  [47]: https://twitter.com/WolframResearch&#xD;
  [48]: https://www.youtube.com/live/ElP55ZILxPw?si=nsAPOQ3u-RbvuGKX&#xD;
  [49]: https://community.wolfram.com/groups/-/m/t/3007543&#xD;
  [50]: https://community.wolfram.com/web/charlesp&#xD;
  [51]: https://community.wolfram.com/groups/-/m/t/3019288&#xD;
  [52]: https://www.youtube.com/live/KM1yWHRrF2k?si=g2R7rHB2IinVRpo6&#xD;
  [53]: https://community.wolfram.com/groups/-/m/t/3009184&#xD;
  [54]: https://community.wolfram.com/groups/-/m/t/3064700&#xD;
  [55]: https://community.wolfram.com/groups/-/m/t/3084291&#xD;
  [56]: https://community.wolfram.com/groups/-/m/t/3104670&#xD;
  [57]: https://community.wolfram.com/groups/-/m/t/3164204&#xD;
  [58]: https://youtube.com/playlist?list=PLdIcYTEZ4S8TSEk7YmJMvyECtF-KA1SQ2&amp;amp;si=paXZHs0ZzGdB7y1y&#xD;
  [59]: https://youtube.com/playlist?list=PLdIcYTEZ4S8RyjEB7JSAsGerbYHl5xXeJ&amp;amp;si=xkNtkIDvKHFWHVmD&#xD;
  [60]: https://youtu.be/KUWK19Gx2LE?si=qbKISbL8FtvweSWo&#xD;
  [61]: https://community.wolfram.com/web/subat</description>
    <dc:creator>Charles Pooh</dc:creator>
    <dc:date>2022-08-05T21:37:19Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/748854">
    <title>What syntax to display roots (like squareroot --&amp;gt; nth root)?</title>
    <link>https://community.wolfram.com/groups/-/m/t/748854</link>
    <description>Hello,&#xD;
I teach in school and regularly provide links to wolframalpha with the calculation so that students know my results are correct.&#xD;
For this I want to have the input exactly as provided to the students.&#xD;
&#xD;
In Latex I can write the n&amp;#039;th root of x as &amp;#034; \sqrt[n]{x}&amp;#034;  unfortunately wolframalpha didn&amp;#039;t recognize this command at all and takes the squareroot of n times x. (I am aware that \sqrt as command for a general root is misleading)&#xD;
For the life of me I can&amp;#039;t find the right syntax  to get the input of n&amp;#039;th root of x.&#xD;
&#xD;
Please be aware that I know it&amp;#039;s the same as x^(1/n) but I would like my students to see that root symbol with a little n over it.&#xD;
I hope you can help and perhaps upvote to implement this LaTeX notation in Wolframalpha as well.&#xD;
Kind regards&#xD;
Richard</description>
    <dc:creator>Rick K.</dc:creator>
    <dc:date>2015-12-02T12:21:12Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/163848">
    <title>My thoughts on Wolfram Problem Generator</title>
    <link>https://community.wolfram.com/groups/-/m/t/163848</link>
    <description>Hi everyone,

I would like to briefly present the [url=http://www.wolframalpha.com/problem-generator/][b]Wolfram Problem Generator[/b][/url], which I have been working on for the past months. There are two features that I think make it special: the ability to generate unlimited problems and free-form input for answers.

[url=http://www.wolframalpha.com/problem-generator/][img=width: 505px; height: 360px;]http://blog.wolframalpha.com/data/uploads/2013/10/Topic-List.png[/img][/url]

Some problem generators do not make random problems on the fly: in fact, they take problems from a repository (which, even if big, is still finite). By contrast, our system generates a totally new problem just for you. Also, we double-check that we haven&amp;#039;t shown it already--in this case, we just show you a new one!

Our free-form input takes full advantage of all the technology created by Wolfram|Alpha. Given a problem to try, you can write your answer in whatever way makes sense to you and we will be able to recognize it each time. For example, for

[img=float: left;]/c/portal/getImageAttachment?filename=ScreenShot2013-12-02at12.18.49PM.png&amp;amp;userId=50011[/img]



you can type &amp;#034;2 sqrt(3)&amp;#034;, &amp;#034;two times square root of three&amp;#034;, &amp;#034;two radical 3&amp;#034; or &amp;#034;2 * 3^(1/2)&amp;#034;.

Wolfram Problem Generator was not without its challenges in development. The most challenging aspect of this project was implementing a way to distinguish right answers from incorrect attempts. For example, if your problem is &amp;#034;6 x = 10&amp;#034;, Wolfram Problem Generator asks you to simplify your result to &amp;#034;5/3&amp;#034; (or &amp;#034;x = 5/3&amp;#034;, or &amp;#034;five thirds&amp;#034;, etc.), and not leave the answer as &amp;#034;10/6&amp;#034;. Because &amp;#034;10/6&amp;#034; is a mathematically correct answer, we relied on Mathematica&amp;#039;s powerful pattern matcher to ensure that the answer really was simplified.

You can try Wolfram Problem Generator if you&amp;#039;re a member of Wolfram|Alpha Pro. Right now, we have coverage for six core subjects, with a lot more in the works. Let us know what subjects and what types of problems you&amp;#039;d like to see!

Enjoy!
Luca</description>
    <dc:creator>Luca Belli</dc:creator>
    <dc:date>2013-12-02T17:46:23Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2041687">
    <title>[WSG20] Calculus Daily Study Group begins August 3 (Free!)</title>
    <link>https://community.wolfram.com/groups/-/m/t/2041687</link>
    <description>The latest [Wolfram Daily Study Group][1] features one of our favorite math instructors, [Devendra Kapadia][at1], and focuses on building fundamental concepts in calculus. This is a great opportunity for students to refresh their knowledge or get a head start on the subject. Sign up: https://wolfr.am/od7nlnga&#xD;
&#xD;
&#xD;
  [1]: https://www.wolfram.com/wolfram-u/special-event/study-groups/&#xD;
&#xD;
 [at0]: https://community.wolfram.com/web/dkapadia&#xD;
&#xD;
 [at1]: https://community.wolfram.com/web/dkapadia</description>
    <dc:creator>Jamie Peterson</dc:creator>
    <dc:date>2020-07-21T15:27:37Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2411604">
    <title>[WSG21] Daily Study Group: Differential Equations (begins November 29)</title>
    <link>https://community.wolfram.com/groups/-/m/t/2411604</link>
    <description>A new study group devoted to Differential Equations begins next Monday! A list of daily topics can be found on our [Daily Study Groups][1] page. This group will be led by one of our outstanding Wolfram certified instructors, Luke Titus, and will meet daily, Monday to Friday, over the next three weeks. Luke will share the excellent lesson videos created by him for the upcoming Wolfram U course &amp;#034;[Introduction to Differential Equations][2]&amp;#034;. Study group sessions include time for exercises, discussion and Q&amp;amp;A. This study group will help you achieve the &amp;#034;Course Completion&amp;#034; certificate for the &amp;#034;Introduction to Differential Equations&amp;#034; course after you complete the course quizzes.&#xD;
&#xD;
Sign up: [Study group registration page][3]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolfram.com/wolfram-u/special-event/study-groups/&#xD;
  [2]: https://www.wolfram.com/wolfram-u/introduction-to-differential-equations/&#xD;
  [3]: https://www.bigmarker.com/series/daily-study-group-intro-to-differential-equations/series_details?utm_bmcr_source=community</description>
    <dc:creator>Devendra Kapadia</dc:creator>
    <dc:date>2021-11-22T16:35:30Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3241186">
    <title>[WSG24]  Daily Study Group: Introduction to Calculus</title>
    <link>https://community.wolfram.com/groups/-/m/t/3241186</link>
    <description>A Wolfram U Daily Study Group on [&amp;#034;Introduction to Calculus&amp;#034;][1] begins on Monday, August 12, 2024.&#xD;
&#xD;
Join a cohort of fellow mathematics enthusiasts to learn about the fundamentals of calculus from the recent [Introduction to Calculus][2] ebook by John Clark and myself. Our topics will include functions and limits, differential and integral calculus, and practical applications of calculus.&#xD;
&#xD;
The study group will be led by expert Wolfram U instructor [Luke Titus][4], and I will stop by occasionally to check in with the group. It should be a lot of fun!&#xD;
&#xD;
No prior Wolfram Language experience is required.&#xD;
&#xD;
Please feel free to use this thread to collaborate and share ideas, materials and links to other resources with fellow learners.&#xD;
&#xD;
**Dates**&#xD;
&#xD;
August 12- September 6, 2024, &#xD;
11am-12pm CT (4-5pm GMT)&#xD;
&#xD;
&amp;gt; **[REGISTER HERE][5]**&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
  [1]: https://www.bigmarker.com/series/introduction-to-calculus-wsg56/series_details?utm_bmcr_source=community&#xD;
  [2]: https://www.wolfram-media.com/products/introduction-to-calculus/&#xD;
  [3]: https://www.wolfram.com/wolfram-u/courses/mathematics/introduction-to-calculus/&#xD;
  [4]: https://community.wolfram.com/web/luket&#xD;
  [5]: https://www.bigmarker.com/series/introduction-to-calculus-wsg56/series_details?utm_bmcr_source=community&#xD;
  [6]: https://community.wolfram.com//c/portal/getImageAttachment?filename=wolframu-banner.png&amp;amp;userId=26786</description>
    <dc:creator>Devendra Kapadia</dc:creator>
    <dc:date>2024-08-05T20:01:27Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1551098">
    <title>Modeling jump conditions in interphase mass transfer</title>
    <link>https://community.wolfram.com/groups/-/m/t/1551098</link>
    <description>***NOTE: Download Full Article as a Notebook from the Attachment Below***&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
Interphase mass transfer operations such as gas absorption or liquid-liquid extraction pose a modeling challenge because the molar species concentration can jump between 2 states at the interface as shown below (from [here][2]).&#xD;
![enter image description here][3]&#xD;
I wanted to see if I could create a Finite Element Method (FEM) model of jump conditions in the Wolfram Language. I found the results to be reasonable, aesthetically pleasing, and somewhat mesmerizing. The remainder of this post documents my workflow for those that might be interested.  I have attached a notebook to reproduce the results.&#xD;
## Preamble on analytical solutions to PDE&amp;#039;s&#xD;
&#xD;
There seems to be quite a few posts where people are trying to find the analytical solution to a system of PDE&amp;#039;s. Generally, closed formed analytical solutions only exist in rare-highly symmetric cases.  Let us consider the heat equation below.&#xD;
&#xD;
$$\frac{\partial T}{\partial t}=\alpha \frac{\partial^2 T}{\partial x^2}$$&#xD;
&#xD;
For the case of a semi-infinite bar subjected to a unit step change in temperature at $x=0$, Mathematica&amp;#039;s DSolve\[\] handles this readily.&#xD;
&#xD;
    u[x, t] /. &#xD;
     First@DSolve[{ D[u[x, t], t] == alpha D[u[x, t], {x, 2}], &#xD;
        u[x, 0] == 0, u[0, t] == UnitStep[t]}, u[x, t], {x, t}, &#xD;
       Assumptions -&amp;gt; alpha &amp;gt; 0 &amp;amp;&amp;amp; 0 &amp;lt; x]&#xD;
    (*Erfc[x/(2*Sqrt[alpha]*Sqrt[t])]*)&#xD;
&#xD;
So far so good. Now, let us break symmetry by making it a finite bar of length $l$ (See [Documentation][4]).&#xD;
&#xD;
    heqn = D[u[x, t], t] == alpha D[u[x, t], {x, 2}];&#xD;
    bc = {u[0, t] == 1, u[l, t] == 0};&#xD;
    ic = u[x, 0] == 0;&#xD;
    sol = DSolve[{heqn, bc, ic}, u[x, t], {x, t}]&#xD;
    (*{{u[x, t] -&amp;gt; 1 - x/l - (2*Inactive[Sum][Sin[(Pi*x*K[1])/l]/(E^((alpha*Pi^2*t*K[1]^2)/l^2)*&#xD;
             K[1]), {K[1], 1, Infinity}])/Pi}}*)&#xD;
&#xD;
This little change going from a semi-infinite to finite domain has turned the solution into an unwieldy infinite sum. We should expect that it will only go down hill from here if we add additional complexity to the equation or system of equations. My advice is to abandon the search for an analytical solution quickly because it will likely take great effort and will be unlikely to yield a result. Instead, focus efforts on more productive avenues such as dimensional analysis and numerical solutions.&#xD;
&#xD;
# Introduction&#xD;
&#xD;
&amp;gt;&amp;#034;All models are wrong, some are useful.&amp;#034; -- George E. P. Box&#xD;
&amp;gt;&amp;#034;However, many systems are highly complex, so that valid&#xD;
mathematical models of them are themselves complex, precluding any&#xD;
possibility of an analytical solution. In this case, the model must be studied&#xD;
by means of simulation, i.e. , numerically exercising the model for the inputs&#xD;
in question to see how they affect the output measures of performance.&amp;#034; -- Dr. Averill Law, Simulation Modeling and Analysis&#xD;
&#xD;
I find the quotes above help me overcome inertia when starting a modeling and simulation project.  Create your wrong model.  Calibrate how wrong it is versus a known standard. If it is not too bad, put the model through its paces.&#xD;
&#xD;
One thing that I appreciate about the Wolfram Language is that I can document a modeling workflow development process from beginning to end in a single notebook.  The typical model workflow development process includes:&#xD;
&#xD;
* A sketch of the system of interest.&#xD;
* Equations.&#xD;
    * Initial development.&#xD;
    * Simplification.&#xD;
    * Non-dimensionalization for better scaling and reducing parameter space.&#xD;
* Mathematica implementation.&#xD;
    * Mesh&#xD;
        * Boundaries&#xD;
        * Refinement&#xD;
    * NDSolve set-up&#xD;
    * Post-process results&#xD;
* Verification/Validation&#xD;
&#xD;
Mathematica notebooks tend to age well. I routinely resurrect notebooks that are over a decade old and they generally still work. &#xD;
&#xD;
## Absorption&#xD;
I did a quick Google search on absorption and came across this figure describing gas absorption in an open access article by [Danish _et al_][5].&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
This image looked very similar to an image that I produced in a [related post](http://community.wolfram.com/groups/-/m/t/1470252) to the Wolfram community regarding porous media energy transport.&#xD;
&#xD;
![enter image description here][7]&#xD;
&#xD;
The systems look so similar, that we ought to be able to reuse much of the modeling. An area of concern would be for gas absorption where the ratio of the gas diffusion coefficient to liquid diffusion coefficient can exceed 4 orders of magnitude.  Such differences often can cause instability in numerical approaches.&#xD;
# Modeling&#xD;
## System description&#xD;
For clarity, I always like to begin with a system description. Typically, absorption processes utilize gravity to create a thin liquid film to contact the gas. To reuse the modeling that we did for porous media, we will assume that gravity is in the positive $x$ direction leading us to the image below.&#xD;
&#xD;
![enter image description here][8]&#xD;
&#xD;
We will assume that the liquid film is a uniform thickness and is laminar (note that for gas liquid contact the liquid velocity is fastest at the interface leading to the parabolic profile shown).  We will assume that the gas has a uniform velocity. Further, we will assume that the incoming concentrations of the absorbing species are zero and we will impose a concentration of $C=C_0$ at the lower boundary.&#xD;
&#xD;
The basic dimensions of the box are shown below. For simplicity, we will make the height and length unit dimensions and set $R$ to be $\frac{1}{2}$.&#xD;
&#xD;
![enter image description here][9]&#xD;
&#xD;
## Balance equations&#xD;
### Dilute species balance&#xD;
For the purposes of this exercise, we will consider the system to be dilute such that diffusion does not affect the overall flow velocities. Within a single phase, the molar balance of concentration is given by equation (1). We will assume steady-state operation with no reactions so that we can eliminate the red terms. &#xD;
&#xD;
$${\color{Red}{\frac{{\partial {C}}}{{\partial t}}}} + &#xD;
\mathbf{v} \cdot \nabla C -&#xD;
 \nabla \cdot \mathcal{D} \nabla C - {\color{Red}{r^{&amp;#039;&amp;#039;&amp;#039;}}}&#xD;
 = 0 \qquad (1)$$&#xD;
 &#xD;
### Species balance in each phase&#xD;
For convenience, I will denote the phases by a subscript G and L for gas and liquid with the understanding that these equations could also apply to a liquid-liquid extraction problem.  This leads to the following concentration balance equations for the liquid and gas phases.&#xD;
 &#xD;
$$\begin{gathered} &#xD;
\begin{matrix}&#xD;
\mathbf{v}_L \cdot \nabla C_L +&#xD;
 \nabla \cdot \left(-\mathcal{D}_L \nabla C_L\right)  = 0 &amp;amp; x,y\in \Omega_L  &amp;amp; (2*) \\ &#xD;
\mathbf{v}_G \cdot \nabla C_G +&#xD;
 \nabla \cdot \left(-\mathcal{D}_G \nabla C_G\right)  = 0 &amp;amp; x,y\in \Omega_G  &amp;amp; (3*) \\&#xD;
\end{matrix}&#xD;
\end{gathered}$$&#xD;
&#xD;
Or in Laplacian form&#xD;
&#xD;
$$\begin{gathered} &#xD;
\begin{matrix}&#xD;
\mathbf{v}_L \cdot \nabla C_L -\mathcal{D}_L&#xD;
 \nabla^2 C_L  = 0 &amp;amp; x,y\in \Omega_L  &amp;amp; (2*) \\ &#xD;
\mathbf{v}_G \cdot \nabla C_G -\mathcal{D}_G&#xD;
 \nabla^2 C_G  = 0 &amp;amp; x,y\in \Omega_G  &amp;amp; (3*)  \\&#xD;
\end{matrix}&#xD;
\end{gathered}$$&#xD;
&#xD;
#### Creating a No-Flux Boundary Condition at the Interface&#xD;
To prevent the gas species diffusing into the liquid layer and _vice versa_, I will set the velocities to zero and the diffusion coefficients to a very small value in the other phase.  From a visualization standpoint, it will appear that the gas species has diffused into the liquid layer and _vice versa_, but the flux is effectively zero.  To clean up the visualization, we will define plot ranges by gas, interphase, and liquid regions.&#xD;
&#xD;
### Species balance including a thin interphase region&#xD;
&#xD;
We will define a thin Interphase region between the 2 phases that will allow us to couple the phases in the interphase region via a source term creating the jump discontinuity in concentration as shown in the figure below.&#xD;
&#xD;
![enter image description here][10]&#xD;
&#xD;
We will modify (2\*) and (3\*) with the coupling source term as shown below.&#xD;
&#xD;
$$\begin{gathered} &#xD;
\begin{matrix}&#xD;
\mathbf{v}_L \cdot \nabla C_L -\mathcal{D}_L&#xD;
 \nabla^2 C_L -&#xD;
\sigma\left(\Omega \right )k\left(K C_G-C_L \right ) = 0 &amp;amp; x,y\in \Omega  &amp;amp; (2) \\ &#xD;
\mathbf{v}_G \cdot \nabla C_G -\mathcal{D}_G&#xD;
 \nabla^2 C_G + \sigma\left(\Omega \right )k\left(K C_G-C_L \right ) = 0 &amp;amp; x,y\in \Omega  &amp;amp; (3)  \\&#xD;
\end{matrix}&#xD;
\end{gathered}$$&#xD;
&#xD;
Where $K$ is a vapor-liquid equilibrium constant, $k$ is in interphase mass transfer coefficient (we will make this large because we want a fast approach to equilibrium), and $\sigma$ is a switch that turns on (=1) in the interface region and 0 otherwise.&#xD;
&#xD;
## Dimensional analysis&#xD;
&#xD;
We will multiply equations (2) and (3) by $\frac{{R^2}}{C_0 \mathcal{D}_G}$ to obtain their non-dimensionalized forms (4) and (5).&#xD;
&#xD;
$$\begin{gathered} &#xD;
\begin{matrix}&#xD;
 C_0\left (\frac{\mathbf{v}_L}{R} \cdot \nabla^* C_{L}^{*} -\frac{\mathcal{D}_L}{R^2}&#xD;
 \nabla^{*2} C_{L}^{*} -&#xD;
\sigma\left(\Omega \right )k\left(K C_{G}^{*}-C_{L}^{*} \right )  \right ) =  0\left\| {\frac{{R^2}}{C_0 \mathcal{D}_G}} \right.  \\ &#xD;
C_0\left (\frac{\mathbf{v}_G}{R} \cdot \nabla^* C_{G}^{*} -\frac{\mathcal{D}_G}{R^2}&#xD;
 \nabla^{*2} C_{G}^{*} + \sigma\left(\Omega \right )k\left(K C_{G}^{*}-C_{L}^{*} \right )  \right ) = 0\left\| {\frac{{R^2}}{C_0 \mathcal{D}_G}} \right. \\&#xD;
\end{matrix}&#xD;
\end{gathered}$$&#xD;
&#xD;
$$\begin{gathered} &#xD;
\begin{matrix}&#xD;
\frac{\mathcal{D}_L}{\mathcal{D}_G} \frac{R\mathbf{v}_L}{\mathcal{D}_L} \cdot \nabla^* C_{L}^{*} -\delta &#xD;
 \nabla^{*2} C_{L}^{*} -&#xD;
\sigma\left(\Omega \right )\kappa\left(K C_{G}^{*}-C_{L}^{*} \right )  = 0  \\ &#xD;
\frac{R\mathbf{v}_G}{\mathcal{D}_G} \cdot \nabla^* C_{G}^{*} -&#xD;
 \nabla^{*2} C_{G}^{*} + \sigma\left(\Omega \right )\kappa\left(K C_{G}^{*}-C_{L}^{*} \right ) = 0\\&#xD;
\end{matrix}&#xD;
\end{gathered}$$&#xD;
&#xD;
$$\begin{gathered} &#xD;
\begin{matrix}&#xD;
 \delta{Pe}_L\mathbf{v}_{L}^* \cdot \nabla^* C_{L}^{*} -\delta &#xD;
 \nabla^{*2} C_{L}^{*} -&#xD;
\sigma\left(\Omega \right )\kappa\left(K C_{G}^{*}-C_{L}^{*} \right )  = 0 &amp;amp; (4)  \\ &#xD;
{Pe}_G\mathbf{v}_{G}^* \cdot \nabla^* C_{G}^{*} -&#xD;
 \nabla^{*2} C_{G}^{*} + \sigma\left(\Omega \right )\kappa\left(K C_{G}^{*}-C_{L}^{*} \right ) = 0 &amp;amp;(5)\\&#xD;
\end{matrix}&#xD;
\end{gathered}$$&#xD;
&#xD;
Where&#xD;
&#xD;
$$\delta=\frac{\mathcal{D}_L}{\mathcal{D}_G}$$&#xD;
$$Pe_L=\frac{R\mathbf{v}_L}{\mathcal{D}_L}$$&#xD;
$$Pe_G=\frac{R\mathbf{v}_G}{\mathcal{D}_G}$$&#xD;
&#xD;
With a good dimensionless model in place, we can start with our Wolfram Language implementation.&#xD;
&#xD;
# Wolfram Language Implementation&#xD;
&#xD;
## Mesh creation&#xD;
We start by loading the FEM package.&#xD;
&#xD;
    Needs[&amp;#034;NDSolve`FEM`&amp;#034;]&#xD;
&#xD;
When I started this effort, I considered co-current flow only. I realized that converting the model to counter-current flow was a simple matter of changing boundary markers.  I wrapped the process up in a module that returns an association whose parameters can be used to set up an NDSolve solution.  In the counter-current case, I changed the bottom boundary to a wall and the gas inlet concentration to 1.&#xD;
&#xD;
    makeMesh[h_, l_, rat_, gf_, cf_] := &#xD;
     Module[{bR, tp, bt, lf, rt, th, interfacel, interfaceg, buf, bnds, &#xD;
       rgs, crds, lelms, boundaryMarker, bcEle, bmsh, liquidCenter, &#xD;
       liquidReg, interfaceCenter, interfaceReg, gasCenter, gasReg, &#xD;
       meshRegs, msh, mDic},&#xD;
      (* Domain Dimensions *)&#xD;
      bR = rat h;&#xD;
      tp = bR;&#xD;
      bt = bR - h;&#xD;
      lf = 0;&#xD;
      rt = l;&#xD;
      th = h/gf;&#xD;
      interfacel = 0;&#xD;
      interfaceg = interfacel - th;&#xD;
      buf = 2.5 th;&#xD;
      &#xD;
      (* Use associations for clearer assignment later *)&#xD;
      bnds = &amp;lt;|liquidinlet -&amp;gt; 1, gasinlet -&amp;gt; 2, bottom -&amp;gt; 3|&amp;gt;;&#xD;
      rgs = &amp;lt;|gas -&amp;gt; 10, liquid -&amp;gt; 20, interface -&amp;gt; 15|&amp;gt;;&#xD;
      &#xD;
      (* Meshing Definitions *)&#xD;
      (* Coordinates *)&#xD;
      crds = {{lf, bt}(*1*), {rt, bt}(*2*), {rt, tp}(*3*), {lf, &#xD;
         tp}(*4*), {lf, interfacel}(*5*), {rt, interfacel}(*6*), {lf, &#xD;
         interfaceg}(*7*), {rt, interfaceg}(*8*)};&#xD;
      &#xD;
      (* Edges *)&#xD;
      lelms = {{1, 7}, {7, 5}, {5, 4}, {1, 2},&#xD;
               {2, 8}, {8, 6}, {6, 3}, {3, 4}, &#xD;
               {5, 6}, {7, 8}};&#xD;
      &#xD;
      (* Conditional Boundary Markers depending on configuration *)&#xD;
      boundaryMarker := {bnds[gasinlet], bnds[liquidinlet], &#xD;
         bnds[liquidinlet], bnds[bottom], 4, 4, 4, 4, 4, 4} /; cf == &amp;#034;Co&amp;#034;;&#xD;
      boundaryMarker := {4, 4, bnds[liquidinlet], bnds[bottom], &#xD;
         bnds[gasinlet], 4, 4, 4, 4, 4} /; cf == &amp;#034;Counter&amp;#034;;&#xD;
      &#xD;
      (* Create Boundary Mesh *)&#xD;
      bcEle = {LineElement[lelms, boundaryMarker]};&#xD;
      bmsh = ToBoundaryMesh[&amp;#034;Coordinates&amp;#034; -&amp;gt; crds, &#xD;
        &amp;#034;BoundaryElements&amp;#034; -&amp;gt; bcEle];&#xD;
      &#xD;
      (* 2D Regions *)&#xD;
      (* Identify Center Points of Different Material Regions *)&#xD;
      liquidCenter = {(lf + rt)/2, (tp + interfacel)/2};&#xD;
      liquidReg = {liquidCenter, rgs[liquid], 0.0005};&#xD;
      interfaceCenter = {(lf + rt)/2, (interfacel + interfaceg)/2};&#xD;
      interfaceReg = {interfaceCenter, rgs[interface], 0.5*0.000005};&#xD;
      gasCenter = {(lf + rt)/2, (bt + interfaceg)/2};&#xD;
      gasReg = {gasCenter, rgs[gas], 0.0005};&#xD;
      meshRegs = {liquidReg, interfaceReg, gasReg};&#xD;
      &#xD;
      msh = ToElementMesh[bmsh, &amp;#034;RegionMarker&amp;#034; -&amp;gt; meshRegs,&#xD;
        MeshRefinementFunction -&amp;gt; Function[{vertices, area},&#xD;
          Block[{x, y},&#xD;
           {x, y} = Mean[vertices];&#xD;
           If[&#xD;
            (y &amp;gt; interfaceCenter[[2]] - buf &amp;amp;&amp;amp;&#xD;
                y &amp;lt; interfaceCenter[[2]] + buf)  ||&#xD;
             (y &amp;lt; bt + 1.5 buf &amp;amp;&amp;amp;&#xD;
                x &amp;lt; lf + 1.5 buf)&#xD;
            , area &amp;gt; 0.0000125, area &amp;gt; 0.01&#xD;
            ]&#xD;
           ]&#xD;
          ]&#xD;
        ];&#xD;
      &#xD;
      mDic = &amp;lt;|&#xD;
        height -&amp;gt; h,&#xD;
        length -&amp;gt; l,&#xD;
        ratio -&amp;gt; rat,&#xD;
        gapfactor -&amp;gt; gf,&#xD;
        r -&amp;gt; bR,&#xD;
        top -&amp;gt; tp,&#xD;
        bot -&amp;gt; bt,&#xD;
        left -&amp;gt; lf,&#xD;
        right -&amp;gt; rt,&#xD;
        intl -&amp;gt; interfacel,&#xD;
        intg -&amp;gt; interfaceg,&#xD;
        intcx -&amp;gt; interfaceCenter[[1]],&#xD;
        intcy -&amp;gt; interfaceCenter[[2]],&#xD;
        buffer -&amp;gt; buf,&#xD;
        mesh -&amp;gt; msh,&#xD;
        bmesh -&amp;gt; bmsh,&#xD;
        bounds -&amp;gt; bnds,&#xD;
        regs -&amp;gt; rgs,&#xD;
        cfg -&amp;gt; cf&#xD;
        |&amp;gt;;&#xD;
      mDic]&#xD;
    &#xD;
    Options[meshfn] = {height -&amp;gt; 1, length -&amp;gt; 1, ratio -&amp;gt; 0.5, &#xD;
       gapfactor -&amp;gt; 100, config -&amp;gt; &amp;#034;Co&amp;#034;};&#xD;
    meshfn[OptionsPattern[]] := &#xD;
     makeMesh[OptionValue[height], OptionValue[length],&#xD;
      OptionValue[ratio], OptionValue[gapfactor], OptionValue[config]]&#xD;
&#xD;
We can create a mesh instance of a co-current flow case by invoking the meshfn\[\]. I will color the liquid inlet $\color{Green}{Green}$, the gas inlet $\color{Red}{Red}$ and the bottom boundary $\color{Orange}{Orange}$ (the rest of the boundaries are default).&#xD;
&#xD;
    mDicCo = meshfn[config -&amp;gt; &amp;#034;Co&amp;#034;];&#xD;
    mDicCo[bmesh][&#xD;
     &amp;#034;Wireframe&amp;#034;[&amp;#034;MeshElementMarkerStyle&amp;#034; -&amp;gt; Blue, &#xD;
      &amp;#034;MeshElementStyle&amp;#034; -&amp;gt; {Green, Red, Orange, Black}, &#xD;
      ImageSize -&amp;gt; Large]]&#xD;
&#xD;
![enter image description here][11]&#xD;
&#xD;
By setting the optional config parameter to &amp;#034;Counter&amp;#034;, we can easily generate a counter-current case as shown below (note how the gas inlet shifted to the right side.&#xD;
&#xD;
    mDic = meshfn[config -&amp;gt; &amp;#034;Counter&amp;#034;];&#xD;
    mDic[bmesh][&#xD;
     &amp;#034;Wireframe&amp;#034;[&amp;#034;MeshElementMarkerStyle&amp;#034; -&amp;gt; Blue, &#xD;
      &amp;#034;MeshElementStyle&amp;#034; -&amp;gt; {Green, Red, Orange, Black}, &#xD;
      ImageSize -&amp;gt; Large]]&#xD;
&#xD;
![enter image description here][12]&#xD;
&#xD;
For the co-current case, the bottom wall and the gas inlet have inconsistent Dirichlet conditions.  To reduce the effect, I refined the mesh in the lower left corner as shown below.&#xD;
&#xD;
![enter image description here][13]&#xD;
&#xD;
I also meshed the interface region finely.&#xD;
&#xD;
![enter image description here][14]&#xD;
&#xD;
Sometimes it can get confusing to setup alternative boundaries.  To visualize the coordinate IDs, you could use something like:&#xD;
&#xD;
    With[{pts = mDic[bmesh][&amp;#034;Coordinates&amp;#034;]}, &#xD;
     Graphics[{Opacity[1], Black, &#xD;
       GraphicsComplex[pts, &#xD;
        Text[Style[ToString[#], Background -&amp;gt; White, 12], #] &amp;amp; /@ &#xD;
         Range[Length[pts]]]}]]&#xD;
&#xD;
![enter image description here][15]&#xD;
&#xD;
## Solving and Visualization&#xD;
&#xD;
I have created a module that will solve and visualize depending on the mesh type (co-flow or counter-flow).  Hopefully, it is well enough commented that further discussion is not needed.&#xD;
&#xD;
    model[md_, kequil_, d_, pel_, peg_, title_] := &#xD;
      Module[{n, pecletgas, por, vl, vg, fac, facg, coefl, coefg, &#xD;
        dcliquidinletliquid, dcliquidinletgas, dcinletgas, &#xD;
        dcgasinletliquid, dcgasinletgas, dcbottomliquid, dcbottomgas, &#xD;
        eqnliquid, eqngas, eqns, ifun, pltl, pltint, pltg, pltarr, sz, &#xD;
        grid, lf, rt, tp, bt, interfaceg, interfacel, interfaceCenterY, &#xD;
        plrng, arrequil, arrdiff, arrgas, &#xD;
        arrliq},&#xD;
       (*localize Mesh Dict Values*)lf = md[left];&#xD;
       rt = md[right];&#xD;
       tp = md[top];&#xD;
       bt = md[bot];&#xD;
       interfaceg = md[intg];&#xD;
       interfacel = md[intl];&#xD;
       interfaceCenterY = md[intcy];&#xD;
       (*Must swtich gas flow direction for counter-flow*)&#xD;
       pecletgas = If[md[cfg] == &amp;#034;Co&amp;#034;, peg, -peg];&#xD;
       (*Dimensionless Mass Transfer Coefficient in Interphase Region*)&#xD;
       n = 10000;&#xD;
       (*&amp;#034;Porosity&amp;#034; to weight concentration in interphase*)&#xD;
       por[y_, intg_, intl_] := (y - intg)/(intl - intg);&#xD;
       (*Region Dependent Properties with Piecewise \&#xD;
    Functions*)(*velocity*)(*Liquid parabolic profile*)&#xD;
       vl = Evaluate[&#xD;
         Piecewise[{{{pel d (1 - (y/md[r])^2), 0}, &#xD;
            ElementMarker == md[regs][liquid]}, {{pecletgas, 0}, &#xD;
            ElementMarker == md[regs][gas]}, {{0, 0}, True}}]];&#xD;
       (*Gas Uniform Velocity*)&#xD;
       vg = Evaluate[&#xD;
         Piecewise[{{{pecletgas, 0}, &#xD;
            ElementMarker == md[regs][gas]}, {{pel d (1 - (y/md[r])^2), &#xD;
             0}, ElementMarker == md[regs][liquid]}, {{0, 0}, True}}]];&#xD;
       (*fac switches on mass transfer coefficient in interphase*)&#xD;
       fac = Evaluate[If[ElementMarker == md[regs][interface], n, 0]];&#xD;
       (*diffusion coefficients*)(*Liquid*)&#xD;
       coefl = Evaluate[&#xD;
         Piecewise[{{d, ElementMarker == md[regs][liquid]}, {1, &#xD;
            ElementMarker == md[regs][interface]}, {d/1000000, &#xD;
            True} (*Effectively No Flux at Interface*)}]];&#xD;
       (*Gas*)coefg = &#xD;
        Evaluate[&#xD;
         Piecewise[{{1, ElementMarker == md[regs][gas]}, {1, &#xD;
            ElementMarker == md[regs][interface]}, {d/1000000, &#xD;
            True} (*Effectively No Flux at Interface*)}]];&#xD;
       (*Dirichlet Conditions for Liquid at Inlets*)&#xD;
       dcliquidinletliquid = &#xD;
        DirichletCondition[cl[x, y] == 0, &#xD;
         ElementMarker == md[bounds][liquidinlet]];&#xD;
       dcliquidinletgas = &#xD;
        DirichletCondition[cg[x, y] == 0, &#xD;
         ElementMarker == md[bounds][liquidinlet]];&#xD;
       dcgasinletliquid = &#xD;
        DirichletCondition[cl[x, y] == 0, &#xD;
         ElementMarker == md[bounds][gasinlet]];&#xD;
       (*Conditional BCs for gas dependent on configuration*)&#xD;
       dcgasinletgas := &#xD;
        DirichletCondition[cg[x, y] == 0, &#xD;
          ElementMarker == md[bounds][gasinlet]] /; md[cfg] == &amp;#034;Co&amp;#034;;&#xD;
       dcgasinletgas := &#xD;
        DirichletCondition[cg[x, y] == 1, &#xD;
          ElementMarker == md[bounds][gasinlet]] /; md[cfg] == &amp;#034;Counter&amp;#034;;&#xD;
       (*Dirichlet Conditions for the Bottom Wall*)&#xD;
       dcbottomliquid = &#xD;
        DirichletCondition[cl[x, y] == 0, &#xD;
         ElementMarker == md[bounds][bottom]];&#xD;
       dcbottomgas = &#xD;
        DirichletCondition[cg[x, y] == 1, &#xD;
         ElementMarker == md[bounds][bottom]];&#xD;
       (*Balance Equations for Gas and Liquid Concentrations*)&#xD;
       eqnliquid = &#xD;
        vl.Inactive[Grad][cl[x, y], {x, y}] - &#xD;
          coefl Inactive[Laplacian][cl[x, y], {x, y}] - &#xD;
          fac (kequil cg[x, y] - cl[x, y]) == 0;&#xD;
       eqngas = &#xD;
        vg.Inactive[Grad][cg[x, y], {x, y}] - &#xD;
          coefg Inactive[Laplacian][cg[x, y], {x, y}] + &#xD;
          fac (kequil cg[x, y] - cl[x, y]) == 0;&#xD;
       (*Equations to be solved depending on configuration*)&#xD;
       eqns := {eqnliquid, eqngas, dcliquidinletliquid, dcliquidinletgas, &#xD;
          dcgasinletliquid, dcgasinletgas, dcbottomliquid, dcbottomgas} /;&#xD;
          md[cfg] == &amp;#034;Co&amp;#034;;&#xD;
       eqns := {eqnliquid, eqngas, dcliquidinletliquid, dcliquidinletgas, &#xD;
          dcgasinletliquid, dcgasinletgas} /; md[cfg] == &amp;#034;Counter&amp;#034;;&#xD;
       (*Solve the PDE*)&#xD;
       ifun = NDSolveValue[eqns, {cl, cg}, {x, y} \[Element] md[mesh]];&#xD;
       (*Visualizations*)(*Create Arrows to represent magnitude of \&#xD;
    dimensionless groups*)(*Equilibrium Arrow*)&#xD;
       arrequil = {CapForm[&amp;#034;Square&amp;#034;], Red, Arrowheads[0.03], &#xD;
         Arrow[Tube[{{1 - 0.0125, 0.025, 1}, {1 - 0.0125, 0.025, kequil}},&#xD;
            0.005], -0.03]};&#xD;
       (*Diffusion Arrow*)&#xD;
       arrdiff = {Darker[Green, 1/2], &#xD;
         Arrowheads[0.03, Appearance -&amp;gt; &amp;#034;Flat&amp;#034;], &#xD;
         Arrow[Tube[{{-0.025, 0.0, 0.0 .025}, {-0.025, &#xD;
             0.5 (1 + Log10[d]/4), 0.025}}, 0.005], -0.03]};&#xD;
       (*Liquid Peclet Arrow*)&#xD;
       arrliq = {Blue, Dashed, Arrowheads[1.5 0.03], &#xD;
         Arrow[Tube[{{0.0, mDic[top] + 0.025, 0.035}, {pel/50, &#xD;
             mDic[top] + 0.025, 0.035}}, 1.5 0.005], -0.03 1.5]};&#xD;
       (*Conditional Gas Peclet Arrow*)&#xD;
       arrgas := {Black, Dashed, Arrowheads[1.5 0.03], &#xD;
          Arrow[Tube[{{0.0, mDic[bot], 1.035}, {peg/50, mDic[bot], &#xD;
              1.035}}, 1.5 0.005], -0.03 1.5]} /; md[cfg] == &amp;#034;Co&amp;#034;;&#xD;
       arrgas := {Black, Dashed, Arrowheads[1.5 0.03], &#xD;
          Arrow[Tube[{{mDic[right], mDic[bot], &#xD;
              1.035}, {mDic[right] - peg/50, mDic[bot], 1.035}}, &#xD;
            1.5 0.005], -0.03 1.5]} /; md[cfg] == &amp;#034;Counter&amp;#034;;&#xD;
       (*Set up plots*)(*Common plot options*)&#xD;
       plrng = {{lf, rt}, {bt, tp}, {0, 1}};&#xD;
       SetOptions[Plot3D, PlotRange -&amp;gt; plrng, PlotPoints -&amp;gt; {200, 200}, &#xD;
        ColorFunction -&amp;gt; &#xD;
         Function[{x, y, z}, Directive[ColorData[&amp;#034;DarkBands&amp;#034;][z]]], &#xD;
        ColorFunctionScaling -&amp;gt; False, MeshFunctions -&amp;gt; {#3 &amp;amp;}, &#xD;
        Mesh -&amp;gt; 18, AxesLabel -&amp;gt; Automatic, ImageSize -&amp;gt; Large];&#xD;
       (*Liquid Plot*)&#xD;
       pltl = Plot3D[ifun[[1]][x, y], {x, lf, rt}, {y, interfacel, tp}, &#xD;
         MeshStyle -&amp;gt; {Black, Thick}];&#xD;
       (*Interface region Plot*)&#xD;
       pltint = &#xD;
        Plot3D[ifun[[2]][x, y] (1 - por[y, interfaceg, interfacel]) + &#xD;
          por[y, interfaceg, interfacel] ifun[[1]][x, y], {x, lf, rt}, {y,&#xD;
           interfaceg, interfacel}, &#xD;
         MeshStyle -&amp;gt; {DotDashed, Black, Thick}];&#xD;
       (*Gas Plot*)&#xD;
       pltg = Plot3D[ifun[[2]][x, y], {x, lf, rt}, {y, bt, interfaceg}, &#xD;
         MeshStyle -&amp;gt; {Dashed, Black, Thick}];&#xD;
       (*Grid Plot*)sz = 300;&#xD;
       grid = &#xD;
        Grid[{{Show[{pltl, pltint, pltg}, &#xD;
            ViewProjection -&amp;gt; &amp;#034;Orthographic&amp;#034;, ViewPoint -&amp;gt; Front, &#xD;
            ImageSize -&amp;gt; sz, Background -&amp;gt; RGBColor[0.84`, 0.92`, 1.`], &#xD;
            Boxed -&amp;gt; False], &#xD;
           Show[{pltl, pltint, pltg}, ViewProjection -&amp;gt; &amp;#034;Orthographic&amp;#034;, &#xD;
            ViewPoint -&amp;gt; Left, ImageSize -&amp;gt; sz, &#xD;
            Background -&amp;gt; RGBColor[0.84`, 0.92`, 1.`], &#xD;
            Boxed -&amp;gt; False]}, {Show[{pltl, pltint, pltg}, &#xD;
            ViewProjection -&amp;gt; &amp;#034;Orthographic&amp;#034;, ViewPoint -&amp;gt; Top, &#xD;
            ImageSize -&amp;gt; sz, Background -&amp;gt; RGBColor[0.84`, 0.92`, 1.`], &#xD;
            Boxed -&amp;gt; False], &#xD;
           Show[{pltl, pltint, pltg}, ViewProjection -&amp;gt; &amp;#034;Perspective&amp;#034;, &#xD;
            ViewPoint -&amp;gt; {Above, Left, Back}, ImageSize -&amp;gt; sz, &#xD;
            Background -&amp;gt; RGBColor[0.84`, 0.92`, 1.`], Boxed -&amp;gt; False]}}, &#xD;
         Dividers -&amp;gt; Center];&#xD;
       (*Reset Plot Options to Default*)&#xD;
       SetOptions[Plot3D, PlotStyle -&amp;gt; Automatic];&#xD;
       pltarr = &#xD;
        Grid[{{Text[Style[title, Blue, Italic, 24]]}, {Style[&#xD;
            StringForm[&#xD;
             &amp;#034;\!\(\*SubscriptBox[\(K\), \(C\)]\)=``, \[Delta]=``, \&#xD;
    \!\(\*SubscriptBox[\(Pe\), \(L\)]\)=``, and \&#xD;
    \!\(\*SubscriptBox[\(Pe\), \(G\)]\)=``&amp;#034;, &#xD;
             NumberForm[kequil, {3, 2}, NumberPadding -&amp;gt; {&amp;#034; &amp;#034;, &amp;#034;0&amp;#034;}], &#xD;
             NumberForm[d, {5, 4}, NumberPadding -&amp;gt; {&amp;#034; &amp;#034;, &amp;#034;0&amp;#034;}], &#xD;
             NumberForm[pel, {2, 1}, NumberPadding -&amp;gt; {&amp;#034; &amp;#034;, &amp;#034;0&amp;#034;}], &#xD;
             NumberForm[peg, {2, 1}, NumberPadding -&amp;gt; {&amp;#034; &amp;#034;, &amp;#034;0&amp;#034;}]], &#xD;
            18]}, {Show[{pltl, pltint, pltg, &#xD;
             Graphics3D[{arrequil, arrdiff, arrliq, arrgas}](*,arrequil,&#xD;
             arrdiff,arrliq,arrgas*)}, ViewProjection -&amp;gt; &amp;#034;Perspective&amp;#034;, &#xD;
            ViewPoint -&amp;gt; {Above, Left, Back}, ImageSize -&amp;gt; 640, &#xD;
            Background -&amp;gt; RGBColor[0.84`, 0.92`, 1.`], Boxed -&amp;gt; False, &#xD;
            PlotRange -&amp;gt; {{md[left] - 0.05, md[right]}, {md[bot], &#xD;
               md[top] + 0.05}, {0, 1 + 0.1}}]}}];&#xD;
       (*Return values*){ifun, {pltl, pltint, pltg}, pltarr, grid}];&#xD;
    &#xD;
    Options[modelfn] = {md -&amp;gt; mDic, k -&amp;gt; 0.5, dratio -&amp;gt; 1, pel -&amp;gt; 50, &#xD;
       peg -&amp;gt; 50, title -&amp;gt; &amp;#034;Test&amp;#034;};&#xD;
    modelfn[OptionsPattern[]] := &#xD;
     model[OptionValue[md], OptionValue[k], OptionValue[dratio], &#xD;
      OptionValue[pel], OptionValue[peg], OptionValue[title]]&#xD;
&#xD;
## Testing of Meshing and Solving Modules&#xD;
Now, that we wrapped our meshing and solving work flow into modules, I will demonstrate how to create an instance of a simulation.&#xD;
&#xD;
    (* Create a Co-Flow Mesh *)&#xD;
    mDic = meshfn[config -&amp;gt; &amp;#034;Co&amp;#034;];&#xD;
    (* Simulate and return results *)&#xD;
    res = modelfn[md -&amp;gt; mDic, k -&amp;gt; 0.5, dratio -&amp;gt; 0.1, pel -&amp;gt; 10, &#xD;
       peg -&amp;gt; 5, title -&amp;gt; &amp;#034;Co-Flow&amp;#034;];&#xD;
&#xD;
To visualize a 3D plot with arrows representing the magnitude of dimensionless parameters, we access the third part of the results list.&#xD;
&#xD;
    res[[3]]&#xD;
&#xD;
![enter image description here][16]&#xD;
&#xD;
The solid lines, dashed lines, and dashed-dotted lines represent contours of species concentration in the liquid, gas, and interphase regions, respectively.  The $\color{Red}{Red}$ arrow is proportional to (1-K), the $\color{Green}{Green}$ arrow is proportional to the log of the diffusion ratio $\delta$, the $\color{Blue}{Blue}$ arrow is proportional to $Pe_L$, and the $\color{Black}{Black}$ arrow is proportional to $Pe_G$.  Multiple views are contained in part 4 of the results list.&#xD;
&#xD;
    res[[4]]&#xD;
&#xD;
![enter image description here][17]&#xD;
&#xD;
## Validation (Comparison to another code)&#xD;
&#xD;
Before continuing, it is always good practice to validate your model versus experiment or at least another code.  The other code supports a partition conditions for the concentration jump so that I do not need to create an interface layer.  The results are shown below:&#xD;
&#xD;
![enter image description here][18]&#xD;
&#xD;
The contour plots look very similar to the image in the lower left corner of the grid plot.  To be more quantitative, I have highlighted contours at approximately y=-0.15 and y=0.05 in the gas and liquid layers at x=1 corresponding to concentrations of 0.68 and 0.28, respectively.  The first part of the results list returns an interpolation function of the liquid and gas species.  We can see that we are within a percent of the other code, which is reasonable given that the interface layer is about 1% of the domain.  This check gives me good confidence that my model is not too wrong and that I can start to make it useful (i.e., exercising the model by changing parameters). &#xD;
&#xD;
    res[[1]][[2]][1, -0.15] (*0.6769985984321076`*)&#xD;
    res[[1]][[1]][1, 0.05] (* 0.27374616012596314`*)&#xD;
&#xD;
# Generating Animations&#xD;
&#xD;
I like to animate.  For me, animations are the best way to demonstrate how a system evolves as a function of time or parameter changes. We can export an animated gif file to study the effects of dimensionless parameter changes for both flow configurations as shown in the following code. It will take about 30 minutes per animation and about 5 GB of RAM. Undoubtedly, this code could be optimized for speed and memory usage, but you still can create a dozen animations while you sleep.&#xD;
&#xD;
    SetDirectory[NotebookDirectory[]];&#xD;
    &#xD;
    f = ((#1 - #2)/(#3 - #2)) &amp;amp;; (* Scale for progress bar *)&#xD;
    &#xD;
    mDic = meshfn[config -&amp;gt; &amp;#034;Counter&amp;#034;]; (* Create Mesh Instance *)&#xD;
        &#xD;
    Export[&amp;#034;CounterFlow.gif&amp;#034;,&#xD;
     Monitor[&#xD;
      Table[&#xD;
       modelfn[md -&amp;gt; mDic, k -&amp;gt; kc, dratio -&amp;gt; 1, pel -&amp;gt; 0, peg -&amp;gt; 0, &#xD;
         title -&amp;gt; &amp;#034;Counter-Flow&amp;#034;][[3]], {kc, 1, 0.01, -0.01}&#xD;
       	],&#xD;
      Grid[&#xD;
       	{{&amp;#034;Total progress:&amp;#034;, &#xD;
         ProgressIndicator[&#xD;
          Dynamic[f[kc, 1, &#xD;
            0.01, -0.01]]]}, {&amp;#034;\!\(\*SubscriptBox[\(K\), \(C\)]\)=&amp;#034;, \&#xD;
    {Dynamic@kc}}}]&#xD;
      	],&#xD;
     &amp;#034;AnimationRepetitions&amp;#034; -&amp;gt; \[Infinity]]&#xD;
&#xD;
# Examples&#xD;
&#xD;
I combined the co- (left) and counter-current (right) gif animations for several cases below. Péclet numbers approaching 100 start to look uninteresting visually (all the action is very close to the interface).  This should inform the user that perhaps another model is in order with new assumptions to study the small-scale behavior near the interface.&#xD;
&#xD;
## Changing the Equilibrium Constant @ No Flow&#xD;
&#xD;
![enter image description here][19]&#xD;
&#xD;
As the equilibrium constant, $K$, reduces, the jump condition increases.&#xD;
&#xD;
## Changing the Diffusion Ratio $\delta$ @ No Flow&#xD;
&#xD;
![enter image description here][20]&#xD;
&#xD;
As the liquid-gas diffusion ratio, $\delta$, decreases, the concentration in the gas layer increases.  We also see that the solution does not change much for $\delta&amp;lt;0.01$.&#xD;
## Changing  $Pe_L$  @ No Gas Flow&#xD;
&#xD;
![enter image description here][21]&#xD;
&#xD;
As $Pe_L$ increases, the concentration gradient increases at the interface.&#xD;
## Changing  $Pe_G$  @ No Liquid Flow&#xD;
&#xD;
![enter image description here][22]&#xD;
&#xD;
As $Pe_G$ increases, we see the concentration in the liquid layer decrease for co-flow and increase for counter-current flow. This should make sense since the inlet concentration for co-flow is 0 and 1 for counter-current flow. &#xD;
&#xD;
## Changing the Diffusion Ratio $\delta$ @ Middle Conditions&#xD;
&#xD;
![enter image description here][23]&#xD;
&#xD;
Again, we do not see much change for $\delta&amp;lt;0.01$.  One may have noticed that the concentration in the liquid layer goes up as the diffusion coefficient ratio goes down, which may, at first, seem counterintuitive.  The reason for this behavior is that the dimensionless velocity in the liquid layer depends on both $Pe_L$ and $\delta$ so it decreases with decreasing $\delta$. &#xD;
&#xD;
# Summary&#xD;
&#xD;
- Constructed an FEM model in the Wolfram Language to study concentration jump conditions in interphase mass transfer.&#xD;
- Results compare favorably to another code designed to handle jump conditions.&#xD;
- Showed several examples of the effect of dimensionless parameter changes on two model flow configurations.&#xD;
- Notebook provided.&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=varyKlv0gv0.gif&amp;amp;userId=1402928&#xD;
  [2]: http://appliedchem.unideb.hu/Muvtan/Transport%20Processes%20and%20Unit%20Operations,%20Third%20Edition.pdf&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=ConcJumps.png&amp;amp;userId=1402928&#xD;
  [4]: https://reference.wolfram.com/language/ref/DSolve.html&#xD;
  [5]: https://ac.els-cdn.com/S0307904X07000601/1-s2.0-S0307904X07000601-main.pdf?_tid=adb2e542-50f1-44ce-ad9f-54ffaaa83bcb&amp;amp;acdnat=1539987146_3e6ce710d8016d91587f466be8e4ada7&#xD;
  [6]: https://community.wolfram.com//c/portal/getImageAttachment?filename=AbsorptionModel.png&amp;amp;userId=1402928&#xD;
  [7]: https://community.wolfram.com//c/portal/getImageAttachment?filename=PMSystemDescription.png&amp;amp;userId=1402928&#xD;
  [8]: https://community.wolfram.com//c/portal/getImageAttachment?filename=AbsorptionSystem.png&amp;amp;userId=1402928&#xD;
  [9]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Dimensions.png&amp;amp;userId=1402928&#xD;
  [10]: https://community.wolfram.com//c/portal/getImageAttachment?filename=AbsorptionSystem2.png&amp;amp;userId=1402928&#xD;
  [11]: https://community.wolfram.com//c/portal/getImageAttachment?filename=CoCurrentBoundaryMesh.png&amp;amp;userId=1402928&#xD;
  [12]: https://community.wolfram.com//c/portal/getImageAttachment?filename=CounterCurrentBoundaryMesh.png&amp;amp;userId=1402928&#xD;
  [13]: https://community.wolfram.com//c/portal/getImageAttachment?filename=CornerRefinement.png&amp;amp;userId=1402928&#xD;
  [14]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Interface.png&amp;amp;userId=1402928&#xD;
  [15]: https://community.wolfram.com//c/portal/getImageAttachment?filename=CoordIDs.png&amp;amp;userId=1402928&#xD;
  [16]: https://community.wolfram.com//c/portal/getImageAttachment?filename=testresult3.png&amp;amp;userId=1402928&#xD;
  [17]: https://community.wolfram.com//c/portal/getImageAttachment?filename=TestGrid.png&amp;amp;userId=1402928&#xD;
  [18]: https://community.wolfram.com//c/portal/getImageAttachment?filename=comsolresults.png&amp;amp;userId=1402928&#xD;
  [19]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Cmb_varyKld1v0gv0.gif&amp;amp;userId=1402928&#xD;
  [20]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Cmb_varydelta.gif&amp;amp;userId=1402928&#xD;
  [21]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Cmb_varyliqvelocity.gif&amp;amp;userId=1402928&#xD;
  [22]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Cmb_varygasvelocity.gif&amp;amp;userId=1402928&#xD;
  [23]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Cmb_varydeltalv5gv5.gif&amp;amp;userId=1402928</description>
    <dc:creator>Tim Laska</dc:creator>
    <dc:date>2018-11-15T19:31:17Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/161277">
    <title>How to show step-by-step solutions for Laplace transforms?</title>
    <link>https://community.wolfram.com/groups/-/m/t/161277</link>
    <description>Hello,

I tried to compute Laplace transform(sin(3t-2)*e^(-2t)) using WolframAlpha and I see no step-by-step solution. I hope anyone could guide me on a way to show step-by-step solutions for solving Laplace tranforms. I am using WolframAplha Pro.

Thank you.</description>
    <dc:creator>George Ayoub</dc:creator>
    <dc:date>2013-11-27T15:54:58Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/413906">
    <title>Why are some professors negative on Mathematica?</title>
    <link>https://community.wolfram.com/groups/-/m/t/413906</link>
    <description>In discussions with several university physics professors,,,theoreticians...they profess a strong dislike for Mathematica and caution their students about using it. I can fully understand cautioning a user to make sure they have used the correct syntax or correctly formulated a problem or model, but their caution was stronger than that. They, in effect, prefer to roll their own algorithms. They also claim Mathematica gives bad results, though it was unclear whether the fault lay in the execution or the formulation of a problem.&#xD;
&#xD;
I am troubled by this attitude, since users in all technical disciplines use Mathematica and rely on it to supply solutions to various designs, models, and analyses, some that are mission critical.&#xD;
&#xD;
I performed a literature search on evaluation of Mathematica and the most recent published critique and evaluation I found was for Mathematica 5. Other than this, there does not appear to be an undercurrent of suspicion except from these specific profs.&#xD;
&#xD;
What is going on? I can defend my mathematical models but I cannot defend the outcomes of executions of these models if there is skepticism over the validity of solutions obtained by Mathematica. I can also understand that anyone who has not come up on the learning curve might simply be covering their own inadequacies, hence the attitude of rolling their own. However, everyone should be skeptical of published results from the use of personal algorithms, for which no validation or user community exists.&#xD;
&#xD;
How can the quality of the results from the use of Mathmatica be supported? Are there published evaluations? What might some organizations such as DARPA do to validate some work for which Mathematica has been a cornerstone of the analyses?&#xD;
&#xD;
Or am I the only person to have run into this level of skepticism...which is ironic since I am more skeptical of analytical results than most.</description>
    <dc:creator>Luther Nayhm</dc:creator>
    <dc:date>2014-12-30T15:36:06Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2110266">
    <title>Graph derivative or partial derivatives?</title>
    <link>https://community.wolfram.com/groups/-/m/t/2110266</link>
    <description>Why can&amp;#039;t I graph derivative or partial derivatives in Mathematica?I am trying to plot dc/dt=d2c/dt2+kc(1-c).&#xD;
![enter image description here][1]&#xD;
&#xD;
Here is my code: &#xD;
&#xD;
    Manipulate[&#xD;
     StreamPlot[{V, Dc&amp;#039;&amp;#039; + Kc (c0 - c)}, {c, -2, 2}, {t, -2, 2}],&#xD;
     {{k, 1}, -2, 2}, {c0, 1000}]&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2020-11-07at2.35.36PM.png&amp;amp;userId=2110252</description>
    <dc:creator>k d</dc:creator>
    <dc:date>2020-11-07T20:47:06Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2017849">
    <title>How black holes and accretion disks around them actually look</title>
    <link>https://community.wolfram.com/groups/-/m/t/2017849</link>
    <description>#Introduction&#xD;
&#xD;
One of the most thrilling parts in Nolan&amp;#039;s movie &amp;#034;Interstellar&amp;#034; is the black hole Gargantua and its accretion disk. Its weird shape has surely attracted lots of attention. But do black holes and their accretion disks actually look like that? Not exactly.&#xD;
&#xD;
![BH and accretion disk in Interstellar][1]&#xD;
&#xD;
In the paper &amp;#034;Gravitational lensing by spinning black holes in astrophysics, and in the movie Interstellar&amp;#034;, the authors say that in the movie, redshift and blueshift, as well as the intensity difference is ignored to prevent confusion to the audience. So, although the outline of the accretion disk in &amp;#034;Interstellar&amp;#034; is accurate, the color and the intensity are not. Furthermore, even in the paper, effects brought by the time delay in the propagation of light are ignored, and the influence of gravity lensing on light intensity is simplified.&#xD;
&#xD;
Though I cannot easily render a spinning black hole (Kerr black hole), what I can do is try to render an accretion disk around a Schwarzschild black hole, and as physically correct as possible. The result would be something like this (observer static at 6 times the Schwarzschild radius):&#xD;
&#xD;
![my rendering result, static observer][2]&#xD;
&#xD;
I strongly recommend you to see the videos at [Bilibili](https://www.bilibili.com/video/BV1Fp4y1S7EF) or [Youtube](https://www.youtube.com/watch?v=Dux1NkTaqwo) (Both have English subtitles) first to have a first impression, and it would be the best if you can click the vote up button XD. After that, If you would like to know more about the Mathematica realization and physical principles behind the scene, please continue.&#xD;
&#xD;
**A disclaimer first:** I know nothing about accretion disk physics, so the property of accretion disks are set arbitrarily. Furthermore, actual accretion disks are actually blazingly bright, and you would be blind instantly if you are looking at it from a short distance, so I have to make some modifications.&#xD;
&#xD;
#Analytics&#xD;
&#xD;
###Physics Perspective&#xD;
&#xD;
First, we need to analyze this problem from the physics perspective, get to know about the problems we should consider. **For observers**, the intensity of light is determined by how much photons reached their eye in a certain angle range, and the color is determined by the spectrum of the light. However, the orientation, spectrum, and intensity of light beams can be influenced by the observer&amp;#039;s movement, so we have to consider that. Naturally, the next question should be, where the light comes? Well, all the light must have come from some **light-emitting materials**, so we have to consider the light-emitting materials&amp;#039; property and movement. But the **light should travel** for some time and distance before reaching the observer&amp;#039;s eye. This process involves tracing the light from the emitter to the observer to determine the direction of light the observer perceived, as well as how much portion of light can reach the observer&amp;#039;s eyes. Till now, we have already listed out all effects, from the emission to the perception, which could influence our view, so I believe this rendering is &amp;#034;physically accurate&amp;#034;.&#xD;
&#xD;
&#xD;
### Programming Perspective&#xD;
&#xD;
But view from the programming perspective, the zeroth problem should be how lights travel around a black hole: we need the light path to calculate all other effects. Then, based on the light path, we can directly compute the equivalent of &amp;#034;brighter when closer&amp;#034; rule, as well as the time delay between light emission and observation. If combined with the movement of the light-emitting materials and the observer, we can compute the redshift and the blueshift. &#xD;
&#xD;
#Details, Theory, Coding and Results&#xD;
&#xD;
Now let&amp;#039;s assume that we are stationary observers viewing from 6 times the Schwarzchild radius.&#xD;
&#xD;
##Ray Tracing&#xD;
The first problem to solve is tracing the light beam. Light bends around black holes following the geodesics, and the most apparent consequence of this would be that the accretion disk we see would not be on a plane, but rather curved and bent. Fortunately for us, because Schwartzchild black holes are spherically symmetric, we can reduce the problem to 2D. The parametric equation of geodesics around a Schwarzschild black hole can be derived as follows:&#xD;
&#xD;
$$&#xD;
	\left\{&#xD;
	\begin{aligned}&#xD;
		t&amp;#039;&amp;#039;(\lambda)&amp;amp;=\frac{R_s r&amp;#039; t&amp;#039;}{R_s r-r^2}\\&#xD;
		r&amp;#039;&amp;#039;(\lambda)&amp;amp;=\frac{-R_s r^2 r&amp;#039;^2-2r^3\theta&amp;#039;^2(R_s-r)^2+R_s(R_s-r)^2t&amp;#039;^2}{2r^3(R_s-r)}\\&#xD;
		\theta&amp;#039;&amp;#039;(\lambda)&amp;amp;=-\frac{2r&amp;#039;\theta&amp;#039;}{r}&#xD;
	\end{aligned}&#xD;
	\right.&#xD;
$$&#xD;
&#xD;
&#xD;
Where $\lambda$ is the ray parameter.&#xD;
&#xD;
Now we construct a set of light which originates from the observer, and trace them backward:&#xD;
&#xD;
![Possible light paths][3]&#xD;
&#xD;
![Definition of variables][4]&#xD;
&#xD;
![How interpolation works][5]&#xD;
&#xD;
On each ray, we take some sample points and record the corresponding angle $\theta_0$, $\theta_1$, and time $\Delta T$. By interpolating them, we know about how a random object will look like in our eyes.&#xD;
&#xD;
    (*Initial definitions*)&#xD;
    Rs = 1;&#xD;
    R0 = 6 Rs;&#xD;
    Rmax = 6 Rs + 1.*^-6;&#xD;
    (*Tracking the light*)&#xD;
    parfunc = &#xD;
      ParametricNDSolveValue[{{tt&amp;#039;&amp;#039;[\[Tau]], &#xD;
          rr&amp;#039;&amp;#039;[\[Tau]], \[Theta]\[Theta]&amp;#039;&amp;#039;[\[Tau]]} == {(&#xD;
          Derivative[1][rr][\[Tau]] Derivative[1][tt][\[Tau]])/(&#xD;
          rr[\[Tau]] - rr[\[Tau]]^2), (&#xD;
           rr[\[Tau]]^2 Derivative[1][&#xD;
              rr][\[Tau]]^2 - (-1 + rr[\[Tau]])^2 Derivative[1][&#xD;
              tt][\[Tau]]^2)/(&#xD;
           2 (-1 + rr[\[Tau]]) rr[\[Tau]]^3) + (-1 + &#xD;
              rr[\[Tau]]) Derivative[1][\[Theta]\[Theta]][\[Tau]]^2, -((&#xD;
           2 Derivative[1][rr][\[Tau]] Derivative[&#xD;
             1][\[Theta]\[Theta]][\[Tau]])/rr[\[Tau]])}, {tt&amp;#039;[0], &#xD;
          rr&amp;#039;[0], \[Theta]\[Theta]&amp;#039;[&#xD;
           0]} == {1/(1 - Rs/R0), -Cos[\[Theta]0], &#xD;
          Sqrt[1/(1 - Rs/R0)]/R0 Sin[\[Theta]0]}, {tt[0], &#xD;
          rr[0], \[Theta]\[Theta][0]} == {0, R0, 0}, &#xD;
        WhenEvent[&#xD;
         1.01 Rs &amp;gt;= rr[\[Tau]] || &#xD;
          rr[\[Tau]] &amp;gt;= Rmax || \[Theta]\[Theta][\[Tau]] &amp;gt;= 3.1 Pi, &#xD;
         &amp;#034;StopIntegration&amp;#034;]}, {tt[\[Tau]], &#xD;
        rr[\[Tau]], \[Theta]\[Theta][\[Tau]]}, {\[Tau], 0, &#xD;
        1000}, {\[Theta]0}];&#xD;
    (*data used in interpolation*)&#xD;
    datp = Catenate@&#xD;
       Table[With[{pf = parfunc[\[Theta]]}, &#xD;
         With[{\[Tau]max = pf[[1, 0, 1, 1, 2]], df = D[Rest@pf, \[Tau]], &#xD;
           f = Rest@pf}, &#xD;
          Block[{\[Tau] = &#xD;
             Range[RandomReal[{0, \[Tau]max/500}], \[Tau]max, \[Tau]max/&#xD;
               500]}, Select[&#xD;
            Thread[(Thread@f -&amp;gt; &#xD;
               Thread@{\[Theta], &#xD;
                 ArcTan[-df[[1]], df[[2]] f[[1]] Sqrt[1 - Rs/f[[1]]]], &#xD;
                 pf[[1]]})], &#xD;
            2.4 Rs &amp;lt; #[[1, 1]] &amp;lt; 5.6 Rs &amp;amp;&amp;amp; -0.05 Pi &amp;lt; #[[1, 1]] &amp;lt; &#xD;
               3.08 Pi &amp;amp;]]]], {\[Theta], &#xD;
         Range[-2.5 Degree, 80 Degree, 1 Degree]~Join~&#xD;
          Range[20.2 Degree, 28.2 Degree, 0.5 Degree]~Join~&#xD;
          Range[23.025 Degree, 24.05 Degree, 0.05 Degree]~Join~&#xD;
          Range[23.2825 Degree, 23.4 Degree, 0.005 Degree]~Join~&#xD;
          Range[23.28525 Degree, 23.30025 Degree, 0.001 Degree]}];&#xD;
    datp = First /@ GatherBy[datp, Floor[#[[1]]/{0.01 Rs, 1 Degree}] &amp;amp;];&#xD;
    &#xD;
    (*Construct InterpolatingFunctions*)&#xD;
    ReceiveAngleFunction = &#xD;
      Interpolation[Thread[{datp[[;; , 1]], datp[[;; , 2, 1]]}], &#xD;
       InterpolationOrder -&amp;gt; 1];&#xD;
    EmitAngleFunction = &#xD;
     Interpolation[Thread[{datp[[;; , 1]], datp[[;; , 2, 2]]}], &#xD;
      InterpolationOrder -&amp;gt; 1];&#xD;
    DelayFunction = &#xD;
     Interpolation[Thread[{datp[[;; , 1]], datp[[;; , 2, 3]]}], &#xD;
      InterpolationOrder -&amp;gt; 1];&#xD;
    (*Angle vs time of observation*)&#xD;
    GenerateAngleFunctions[R1_, \[Theta]1_] := Block[{\[Phi]1},&#xD;
      With[{interpol = &#xD;
           Interpolation@&#xD;
            Table[{DelayFunction[R1, #] + &#xD;
               Sqrt[2 R1^3] \[Phi]1, \[Phi]1}, {\[Phi]1, 0., 2 Pi, &#xD;
              10. Degree}]},&#xD;
         With[{ts = interpol[[1, 1, 1]], tperiod = 2. Pi Sqrt[2 R1^3]}, &#xD;
          Function[t, interpol[t - Floor[t - ts, tperiod]]]]] &amp;amp; /@ ({#, &#xD;
           2 Pi - #, 2 Pi + #} &amp;amp;@ArcCos[Sin[\[Phi]1] Sin[\[Theta]1]])]&#xD;
&#xD;
If we only consider this effect, then we will have something like this:&#xD;
&#xD;
![Light bending included][6]&#xD;
&#xD;
The inner two rings correspond to the light that rotates around the black hole for more than half a round.&#xD;
&#xD;
And if we consider the propagation time of light, the right side will be a bit brighter.&#xD;
&#xD;
![Time correction included][7]&#xD;
&#xD;
This is because on the right, objects are moving away from you. So from your point of view, these particles will stay for a longer time on the right. (The reason is explained in the figure)&#xD;
&#xD;
![Illustration of how velocity influence timing][8]&#xD;
&#xD;
##&amp;#034;Brighter when Closer&amp;#034;&#xD;
The next question is about the &amp;#034;brighter when closer&amp;#034; rule. We all know that the further a bulb is, the dimmer it would appear to be. This is because the light from the bulb is approximately evenly distributed across solid angles, but as we move further, the solid angle corresponding to our eyes will be smaller. Mathematically, this is saying $I\propto S_0 \frac{d\Omega}{dS}$ where $S_0$ is the surface area of our eyes, $S$ is area, and $\Omega$ is the solid angle.&#xD;
&#xD;
![&amp;#034;Brighter when closer&amp;#034; rule in flat space][9]&#xD;
&#xD;
The same rules apply here in curved spacetime, except the light beams are weirder.&#xD;
&#xD;
![&amp;#034;Brighter when closer&amp;#034; rule in curved space][10]&#xD;
&#xD;
We know that $\frac{d\Omega}{dS}=(\frac{dx}{d\theta_x}\frac{dy}{d\theta_y})^{-1}$. While $\frac{dy}{d\theta_y}=\frac{R_0 \sin \alpha}{\sin \theta_1}$ can be derived using basic solid geometry, $\frac{dx}{d\theta_x}$ must be calculated numerically by tracing the light from the object to the observer. Similarly, we use interpolating function to generalize the result from a set of sample points to the whole space.&#xD;
&#xD;
    (*Reverse ray tracing*)&#xD;
    parfuncrev = &#xD;
      ParametricNDSolveValue[{{tt&amp;#039;&amp;#039;[\[Tau]], &#xD;
          rr&amp;#039;&amp;#039;[\[Tau]], \[Theta]\[Theta]&amp;#039;&amp;#039;[\[Tau]]} == {(&#xD;
          Derivative[1][rr][\[Tau]] Derivative[1][tt][\[Tau]])/(&#xD;
          rr[\[Tau]] - rr[\[Tau]]^2), (&#xD;
           rr[\[Tau]]^2 Derivative[1][&#xD;
              rr][\[Tau]]^2 - (-1 + rr[\[Tau]])^2 Derivative[1][&#xD;
              tt][\[Tau]]^2)/(&#xD;
           2 (-1 + rr[\[Tau]]) rr[\[Tau]]^3) + (-1 + &#xD;
              rr[\[Tau]]) Derivative[1][\[Theta]\[Theta]][\[Tau]]^2, -((&#xD;
           2 Derivative[1][rr][\[Tau]] Derivative[&#xD;
             1][\[Theta]\[Theta]][\[Tau]])/rr[\[Tau]])}, {tt&amp;#039;[0], &#xD;
          rr&amp;#039;[0], \[Theta]\[Theta]&amp;#039;[0]} == {1/(1 - Rs/R1), &#xD;
          Cos[\[Theta]0], -Sqrt[1/(1 - Rs/R1)]/R1 Sin[\[Theta]0]}, {tt[0],&#xD;
           rr[0], \[Theta]\[Theta][0]} == {0, R1, \[Theta]1}, &#xD;
        WhenEvent[\[Theta]\[Theta][\[Tau]] == 0, &#xD;
         &amp;#034;StopIntegration&amp;#034;]}, {tt[\[Tau]], &#xD;
        rr[\[Tau]], \[Theta]\[Theta][\[Tau]]}, {\[Tau], 0, &#xD;
        100}, {\[Theta]0, R1, \[Theta]1}];&#xD;
    (*data used in interpolation*)&#xD;
    \[CapitalDelta]\[Phi] = 1.*^-5;&#xD;
    intensity = &#xD;
      Catenate@Table[{{R, \[Theta]}, &#xD;
         R0^2 With[{\[Theta] = Abs[\[Theta]]}, &#xD;
           Abs[Sin[EmitAngleFunction[&#xD;
                R, \[Theta]]]/(R0 \&#xD;
    Sin[\[Theta]])]*(\[CapitalDelta]\[Phi]/(Sin[&#xD;
                 ReceiveAngleFunction[R, \[Theta]]]* &#xD;
                Subtract @@ (With[{f = &#xD;
                       parfuncrev[&#xD;
                        EmitAngleFunction[&#xD;
                        R, \[Theta]] + # \[CapitalDelta]\[Phi], &#xD;
                        R, \[Theta]][[2, 0]]}, f@f[[1, 1, -1]]] &amp;amp; /@ {-1, &#xD;
                    1})))]}, {R, 2.45 Rs, 5.55 Rs, &#xD;
         0.02 Rs}, {\[Theta], -3 Degree, 543 Degree, 2 Degree}];&#xD;
    &#xD;
    (*Construct InterpolatingFunction*)&#xD;
    IntensityFunction1 = Interpolation[intensity];&#xD;
&#xD;
![With intensity correction 1][11]&#xD;
&#xD;
The figure will be much more realistic in the aspect of intensity after we added this effect. The inner two rings are much dimmer because light bent dramatically is rare after all.&#xD;
&#xD;
##Doppler Effect and Headlight Effect&#xD;
Now its time for Doppler effect and headlight effect. These two effects are related to the movement of light-emitting objects and observers. Though the names of these effects can be forbidding, these effects are quite common in everyday life. Blueshift refers to the phenomenon that when a car is approaching you, the noise made by the car would be more acute and loud, and redshift means when the car is leaving you, the noise would quieter and be of lower frequency. &#xD;
&#xD;
![Doppler effect][12]&#xD;
&#xD;
The equation for the relativistic Doppler effect is:&#xD;
&#xD;
$$&#xD;
    f&amp;#039;=f\frac{\sqrt{1-\beta^2}}{1-\beta \cos \theta}&#xD;
$$&#xD;
&#xD;
where $\beta=\frac{v}{c}$ and $\theta$ is the angle between the velocity direction of the light-emitting object and the light emitted, as observed by an external observer. In this case, we should further add a coefficient of &#xD;
&#xD;
$$&#xD;
 f&amp;#039;&amp;#039;=f&amp;#039;\sqrt{\frac{1 - R_s/R_1}{1 - R_s/R_0}}&#xD;
$$&#xD;
&#xD;
due to general relativistic effects.&#xD;
&#xD;
Headlight effect means when you are driving a car on rainy days, no matter how the wind blows, the raindrops will always run towards the windshield. But if you stop your vehicle, you can see how the wind influences the dropping direction of rain.  &#xD;
&#xD;
![Headlight effect][13]&#xD;
&#xD;
The equation for angle transformation is:&#xD;
&#xD;
$$&#xD;
    \cos \theta&amp;#039;= \frac{\cos \theta +\beta}{1+\beta \cos \theta}&#xD;
$$&#xD;
&#xD;
and such, the intensity difference introduced by this can be written as:&#xD;
&#xD;
$$&#xD;
    \frac{dP&amp;#039;}{d\Omega}= \frac{dP}{d\Omega}\frac{\sin \theta}{\sin \theta&amp;#039;}\frac{d \theta}{d \theta&amp;#039;}=\frac{dP}{d\Omega}\frac{1 - \beta^2}{(1 -\beta \cos \theta)^2}&#xD;
$$&#xD;
&#xD;
Except for the difference in timing brought by the curved spacetime, these two effects are purely in the special relativity regime. The only thing involved in coding is tedious coordinate transformation. &#xD;
&#xD;
    (*Calculate moving speed*)&#xD;
    Calc\[Beta][{R1_, \[Theta]_, \[Phi]_}, {vr_, v\[Theta]_, v\[Phi]_}] :=&#xD;
      Sqrt[vr^2/(1 - &#xD;
           Rs/R1) + (R1 v\[Theta])^2 + (R1 Sin[\[Theta]] v\[Phi])^2]/&#xD;
      Sqrt[1 - Rs/R1]&#xD;
    (*Calculate inner product between moving direction and light direction*)&#xD;
    CalcCosAngle[{R1_, \[Theta]_, \[Phi]_}, {vr_, v\[Theta]_, v\[Phi]_}] :=&#xD;
      With[{v = {vr/Sqrt[1 - Rs/R1], R1 v\[Theta], &#xD;
         R1 Sin[\[Theta]] v\[Phi]}}, &#xD;
      MapThread[With[{\[Theta]0 = EmitAngleFunction[R1, #1]},&#xD;
         With[{vnormed = MapThread[Normalize@*List, v]}, &#xD;
          MapThread[&#xD;
           Dot, {vnormed, Thread@{Cos[\[Theta]0], #2 Sin[\[Theta]0], 0}}, &#xD;
           1]]] &amp;amp;, {{\[Theta], 2 Pi - \[Theta], 2 Pi + \[Theta]}, {-1, &#xD;
         1, -1}}]]&#xD;
    (*Frequency shift, Doppler effect + GR timing effects*)&#xD;
    FrequencyMult[R1_, \[Beta]_, cos_] := &#xD;
     Sqrt[(1 - Rs/R1)/(1 - Rs/R0)]*Sqrt[1 - \[Beta]^2]/(1 - \[Beta] cos)&#xD;
    (*Intensity shift due to headlight effect only*)&#xD;
    IntensityMult2[\[Beta]_, &#xD;
      cos_] := (Sqrt[1 - \[Beta]^2]/(1 - \[Beta] cos))^2&#xD;
&#xD;
Then we can put all these effects together and see how things works out!&#xD;
&#xD;
    &amp;lt;&amp;lt; PhysicalColor`&#xD;
    &#xD;
    IntensityFunctionScaling::usage = &amp;#034;Scale Intensity.&amp;#034;;&#xD;
    Protect@IntensityFunctionScaling;&#xD;
    &#xD;
    Options[RenderFunc] = {ColorFunction -&amp;gt; TemperatureColor, &#xD;
       ColorFunctionScaling -&amp;gt; (# &amp;amp;), IntensityFunctionScaling -&amp;gt; (# &amp;amp;), &#xD;
       &amp;#034;StaticObserver&amp;#034; -&amp;gt; True};&#xD;
    &#xD;
    RenderFunc[R1_, {\[Theta]1_, t1_, \[Gamma]1_}, {T0_, I0_}, &#xD;
      OptionsPattern[]] :=&#xD;
     Function[t, Through[#[t]]] &amp;amp;@Module[{&#xD;
        (*Velocity of observer*)&#xD;
        vobs = N@Sqrt[(1 - Rs/R0) Rs/(2 R0)],&#xD;
        (*list of \[Phi]1 parameters*)&#xD;
        \[Phi]1l = Range[0., 2 Pi, 1 Degree],&#xD;
        (*Polar coordinates \[Theta] and \[Phi]*)&#xD;
        \[Theta]l0, \[Phi]l0,&#xD;
        (*velocity of object and its norm*)&#xD;
        vrl, v\[Theta]l, v\[Phi]l, vnorml&#xD;
        },&#xD;
       (*Polar coordinate \[Theta]*)&#xD;
       \[Theta]l0 = ArcCos[Sin[\[Phi]1l] Sin[\[Theta]1]];&#xD;
       &#xD;
       (*Original \[Phi]*)&#xD;
       \[Phi]l0 = &#xD;
        ArcTan[Cos[\[Phi]1l], Sin[\[Phi]1l] Cos[\[Theta]1]] + \[Gamma]1;&#xD;
       &#xD;
       (*velocity of object*)&#xD;
       vrl = ConstantArray[0, Length@\[Phi]1l];&#xD;
       v\[Theta]l = -(Cos[\[Phi]1l] Sin[\[Theta]1])/&#xD;
          Sqrt[1 - Sin[\[Theta]1]^2 Sin[\[Phi]1l]^2]*Sqrt[Rs/(2 R1^3)];&#xD;
       v\[Phi]l = &#xD;
        1/(Cos[\[Phi]1l]^2/Cos[\[Theta]1] + &#xD;
            Cos[\[Theta]1] Sin[\[Phi]1l]^2)*Sqrt[Rs/(2 R1^3)];&#xD;
       &#xD;
       (*velocity norm*)&#xD;
       vnorml = &#xD;
        Calc\[Beta][{R1, \[Theta]l0, 0}, {vrl, v\[Theta]l, v\[Phi]l}];&#xD;
       &#xD;
       MapThread[Module[{&#xD;
           (*Observed \[Phi]1 parameter - t*)&#xD;
           \[Phi]1t = #3,&#xD;
           (*actual \[Theta] of object*)&#xD;
           \[Theta]l = #1,&#xD;
           (*angle between velocy and ray*)&#xD;
           cosl = #4,&#xD;
           (*Observed values - \[Phi]1*)&#xD;
           (*Geometry*)&#xD;
           \[Theta]obsl, \[Phi]obsl = \[Phi]l0 + #2,&#xD;
           (*Frequency and intensity shift*)&#xD;
           freqobsl, intobsl,&#xD;
           (*helper function*)&#xD;
           helpf&#xD;
           },&#xD;
          \[Theta]obsl = ReceiveAngleFunction[R1, \[Theta]l];&#xD;
          &#xD;
          (*Frequency*)&#xD;
          freqobsl = FrequencyMult[R1, vnorml, cosl];&#xD;
          &#xD;
          (*Process with the non-static observer*)&#xD;
          If[OptionValue[&amp;#034;StaticObserver&amp;#034;] =!= True,&#xD;
           Module[{\[Theta]transl, \[Phi]transl, \[Delta] = ArcSin[vobs]},&#xD;
            (*Geometrics, static frame*)&#xD;
            \[Theta]transl = ArcCos[Sin[\[Theta]obsl] Cos[\[Phi]obsl]];&#xD;
            \[Phi]transl = &#xD;
             ArcTan[Sin[\[Theta]obsl] Sin[\[Phi]obsl], Cos[\[Theta]obsl]];&#xD;
            (*Frequency shift due to movement of observer, &#xD;
            intensity shift is calculated together later*)&#xD;
            freqobsl *= (1 + vobs Cos[\[Theta]transl])/Sqrt[1 - vobs^2];&#xD;
            (*Angle shift due to movement of observer*)&#xD;
            \[Theta]transl = &#xD;
             ArcCos[(vobs + Cos[\[Theta]transl])/(1 + &#xD;
                 vobs Cos[\[Theta]transl])];&#xD;
            (*Transform back*)&#xD;
            (*Here we change the center of viewing angle so that the \&#xD;
    black hole&amp;#039;s center is at {0,0}*)&#xD;
            \[Theta]obsl = &#xD;
             ArcCos[Sin[\[Delta]] Cos[\[Theta]transl] + &#xD;
               Cos[\[Delta]] Sin[\[Theta]transl] Sin[\[Phi]transl]];&#xD;
            \[Phi]obsl = &#xD;
             ArcTan[Cos[\[Delta]] Cos[\[Theta]transl] - &#xD;
               Sin[\[Delta]] Sin[\[Theta]transl] Sin[\[Phi]transl], &#xD;
              Sin[\[Theta]transl] Cos[\[Phi]transl]]&#xD;
            ]&#xD;
           ];&#xD;
          &#xD;
          \[Phi]obsl = &#xD;
           Catenate[&#xD;
            MapIndexed[#1 + 2 Pi #2[[1]] &amp;amp;, Split[\[Phi]obsl, Less]]];&#xD;
          &#xD;
          (*Intensity*)&#xD;
          intobsl = &#xD;
           freqobsl^2*IntensityFunction1[R1, \[Theta]l]*&#xD;
            IntensityMult2[vnorml, cosl]*&#xD;
            TemperatureIntensity[freqobsl T0]/TemperatureIntensity[T0]/&#xD;
             freqobsl^4;&#xD;
          &#xD;
          (*Helper function to construct interpolating functions*)&#xD;
          helpf[l_] := Interpolation[Thread[{\[Phi]1l, l}]];&#xD;
          &#xD;
          With[{&#xD;
            cf = OptionValue[ColorFunction],&#xD;
            (*Interpolating functions*)&#xD;
            t11 = t1,&#xD;
            \[Phi]1f = #3,&#xD;
            \[Theta]func = helpf[\[Theta]obsl],&#xD;
            \[Phi]func = helpf[\[Phi]obsl],&#xD;
            freqfunc = &#xD;
             helpf[OptionValue[ColorFunctionScaling][T0 freqobsl]],&#xD;
            intfunc = &#xD;
             helpf[OptionValue[IntensityFunctionScaling][I0 intobsl]]&#xD;
            },&#xD;
            &#xD;
           (*Final function*)&#xD;
           Function[t,&#xD;
            With[{\[Phi]11 = \[Phi]1f[t + t11]},&#xD;
             {Append[cf[freqfunc[\[Phi]11]], intfunc[\[Phi]11]],&#xD;
              &#xD;
              With[{\[Theta] = \[Theta]func[\[Phi]11], \[Phi] = \&#xD;
    \[Phi]func[\[Phi]11]},&#xD;
               (*Point[{Sin[\[Theta]]Cos[\[Phi]],Sin[\[Theta]]Sin[\[Phi]],&#xD;
               Cos[\[Theta]]}]*)&#xD;
               Point[Tan[\[Theta]] {Cos[\[Phi]], Sin[\[Phi]]}]]}&#xD;
             ]]&#xD;
           ]&#xD;
          ] &amp;amp;, {{\[Theta]l0, 2 Pi - \[Theta]l0, 2 Pi + \[Theta]l0}, {0, &#xD;
          Pi, 0}, GenerateAngleFunctions[R1, \[Theta]1], &#xD;
         CalcCosAngle[{R1, \[Theta]l0, 0}, {vrl, v\[Theta]l, v\[Phi]l}]}]]&#xD;
    (*My version of rasterize, which increase color precision in dimmer areas*)&#xD;
    HDRRasterize[gr_Graphics, convertfunc_, &#xD;
      opts : OptionsPattern[Rasterize]] :=&#xD;
     Module[{rasterl = &#xD;
        Join[ColorSeparate[ColorConvert[Rasterize[gr, opts], &amp;#034;HSB&amp;#034;]], &#xD;
         ColorSeparate[&#xD;
          ColorConvert[&#xD;
           Rasterize[&#xD;
            gr /. RGBColor[r_, g_, b_, op_] :&amp;gt; RGBColor[r, g, b, 16 op], &#xD;
            opts], &amp;#034;HSB&amp;#034;]]], mask, invmask},&#xD;
      mask = Binarize[rasterl[[3]], 1/16];&#xD;
      invmask = 1 - mask;&#xD;
      ColorCombine[{&#xD;
        mask*rasterl[[1]] + invmask*rasterl[[4]],&#xD;
        mask*rasterl[[2]] + invmask*rasterl[[5]],&#xD;
        mask*convertfunc[rasterl[[3]]] + &#xD;
         invmask*convertfunc[rasterl[[6]]/16.]}, &amp;#034;HSB&amp;#034;]&#xD;
      ]&#xD;
    (*Preliminary computation*)&#xD;
    npts = 5000;&#xD;
    rflist = MapThread[&#xD;
       Function[{R1, \[Theta]1, t1, \[Gamma]1, T0, I0}, &#xD;
        RenderFunc[R1, {\[Theta]1, t1, \[Gamma]1}, {T0, I0}, &#xD;
         &amp;#034;StaticObserver&amp;#034; -&amp;gt; False(*,&#xD;
         IntensityFunctionScaling\[Rule](.7(#/.5)^0.5&amp;amp;)*)]],&#xD;
       {RandomReal[{3, 4.5}, npts],&#xD;
        RandomReal[-{83, 86} Degree, npts],&#xD;
        RandomReal[{0, 10000}, npts],&#xD;
        RandomReal[15 Degree + {-2, 2} Degree, npts],&#xD;
        RandomReal[{4000, 10000}, npts],&#xD;
        RandomReal[{.03, .1}, npts]&#xD;
        }&#xD;
       ];&#xD;
    (*rendering!!!*)&#xD;
    g = Graphics[{(*AbsolutePointSize@.1,White,Point[{Sin[20Degree]Cos[#],&#xD;
        Sin[20Degree]Sin[#],Cos[20Degree]}&amp;amp;/@Range[0.,360.Degree,&#xD;
        60.Degree]],*)AbsoluteThickness@2, &#xD;
        Map[Line[#[[;; , 2, 1]], &#xD;
           VertexColors -&amp;gt; &#xD;
            MapThread[&#xD;
             Function[{col, len, mult}, &#xD;
              MapAt[mult^2*#*0.006/len &amp;amp;, col, 4]], {#[[;; , 1]], &#xD;
              Prepend[#, #[[1]]] &amp;amp;@&#xD;
               BlockMap[Norm[#[[2]] - #[[1]]] &amp;amp;, #[[;; , 2, 1]], 2, 1], &#xD;
              Subdivide[Length[#] - 1]}]] &amp;amp;, &#xD;
         Reverse@Transpose[&#xD;
           Through[rflist[#]] &amp;amp; /@ (Range[0, 3, .1]), {3, 2, 1}], {2}]}, &#xD;
       Background -&amp;gt; Black, ImageSize -&amp;gt; {500, Automatic}, &#xD;
       PlotRange -&amp;gt; {{-1.28, 1.28}, {-0.72, 0.72}}];&#xD;
&#xD;
    HDRRasterize[g, #^(1/2.2) &amp;amp;, ImageSize -&amp;gt; {1920, 1080}]&#xD;
&#xD;
![With all effects, static observer][14]&#xD;
&#xD;
Well, because objects at left are moving towards you, they will appear much brighter and blue-ish, while objects at right are much dimmer and red-ish.&#xD;
&#xD;
We can also consider the movement of the observer, which will make the image something like this:&#xD;
&#xD;
![With all effects, observer moving][15]&#xD;
&#xD;
Hooray!&#xD;
&#xD;
The notebook can be found in the attachment or at [my github repo](https://github.com/wjxway/Realistic_Blackhole_Accretion_Disk).&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=bh10.png&amp;amp;userId=1340903&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=T_001.png&amp;amp;userId=1340903&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Path_4.png&amp;amp;userId=1340903&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=illus2.png&amp;amp;userId=1340903&#xD;
  [5]: https://community.wolfram.com//c/portal/getImageAttachment?filename=illus1.png&amp;amp;userId=1340903&#xD;
  [6]: https://community.wolfram.com//c/portal/getImageAttachment?filename=LightBending.png&amp;amp;userId=1340903&#xD;
  [7]: https://community.wolfram.com//c/portal/getImageAttachment?filename=WithTimeCorrection.png&amp;amp;userId=1340903&#xD;
  [8]: https://community.wolfram.com//c/portal/getImageAttachment?filename=illus3.png&amp;amp;userId=1340903&#xD;
  [9]: https://community.wolfram.com//c/portal/getImageAttachment?filename=IntensityIllus.png&amp;amp;userId=1340903&#xD;
  [10]: https://community.wolfram.com//c/portal/getImageAttachment?filename=illus4.png&amp;amp;userId=1340903&#xD;
  [11]: https://community.wolfram.com//c/portal/getImageAttachment?filename=WithIntensity1.png&amp;amp;userId=1340903&#xD;
  [12]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Doppler.jpg&amp;amp;userId=1340903&#xD;
  [13]: https://community.wolfram.com//c/portal/getImageAttachment?filename=FrontLight.jpg&amp;amp;userId=1340903&#xD;
  [14]: https://community.wolfram.com//c/portal/getImageAttachment?filename=WithAllEffects.png&amp;amp;userId=1340903&#xD;
  [15]: https://community.wolfram.com//c/portal/getImageAttachment?filename=WithObserverMoving.png&amp;amp;userId=1340903</description>
    <dc:creator>Jingxian Wang</dc:creator>
    <dc:date>2020-07-02T11:26:03Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/214757">
    <title>Drawing tangent line on a curve</title>
    <link>https://community.wolfram.com/groups/-/m/t/214757</link>
    <description> Hi All !

 I am new to Mathematica...
 Could someone pl. suggest how to draw a tangent line on a curve... a demo would be great
 I am working on finding instanteous rate of change of at a point ...

 Thanx</description>
    <dc:creator>tmehmoodraza</dc:creator>
    <dc:date>2014-03-08T14:14:18Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/139357">
    <title>Why won&amp;#039;t Mathematica plot my functions?</title>
    <link>https://community.wolfram.com/groups/-/m/t/139357</link>
    <description>I am trying to plot a certain piecewise function using RevolutionPlot3D, so it revolves around an axis.
[mcode]u[x_] := Piecewise[{{.5, {0 &amp;lt;= x &amp;lt;= pi/6, 5 pi/6 &amp;lt; x &amp;lt;= 13 pi/6, 
     17 pi/6 &amp;lt; x &amp;lt;= 10}}, {Sin[x], {pi/6 &amp;lt; x &amp;lt;= 5 pi/6, 
     13 pi/6 &amp;lt; x &amp;lt;= 17 pi/6}}}][/mcode](It&amp;#039;s the upper portion of [url=http://www.wolframalpha.com/input/?i=Plot+sin%28x%29+and+0.5%2C+0%3Cx%3C10]this graph[/url])

However, whatever I try, the plot is always blank.  I can&amp;#039;t even plot it in 2d; it is still blank.  Here are some things I&amp;#039;ve tried:[mcode]RevolutionPlot3D[u[x], {x, 0, 2}][/mcode][mcode]RevolutionPlot3D[Evaluate[u[x]], {x, 0, 2}, 
 RevolutionAxis -&amp;gt; {1, 0, 0}][/mcode][mcode]RevolutionPlot3D[Piecewise[{{.5, {0 &amp;lt;= x &amp;lt;= pi/6, 5 pi/6 &amp;lt; x &amp;lt;= 13 pi/6, 
     17 pi/6 &amp;lt; x &amp;lt;= 10}}, {Sin[x], {pi/6 &amp;lt; x &amp;lt;= 5 pi/6, 
     13 pi/6 &amp;lt; x &amp;lt;= 17 pi/6}}}], {x, 1, 2}, 
 RevolutionAxis -&amp;gt; {1, 0, 0}][/mcode][mcode]Plot[Evaluate[u[x]], {x, 0, 2}][/mcode][mcode]Plot[u[x], {x, 0, 2}][/mcode]Why won&amp;#039;t Mathematica plot my function?</description>
    <dc:creator>Frederick Fleitz</dc:creator>
    <dc:date>2013-10-15T17:14:00Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/441498">
    <title>How do I repeat/loop multiple functions that are related?</title>
    <link>https://community.wolfram.com/groups/-/m/t/441498</link>
    <description>Hello guys, I&amp;#039;m stuck with this question for some time.&#xD;
For my equation, I need to use WolframAlpha for my data.&#xD;
Firstly, I fix my initial water temperature as 500 Kelvin. Eg:&#xD;
&#xD;
    Twater = 300&#xD;
    Cwater = QuantityMagnitude[&#xD;
      ThermodynamicData[&amp;#034;Water&amp;#034;, &#xD;
       &amp;#034;ThermalConductivity&amp;#034;, {&amp;#034;Temperature&amp;#034; -&amp;gt; &#xD;
         Quantity[Twater, &amp;#034;Kelvins&amp;#034;]}]]&#xD;
&#xD;
With Cwater determined,&#xD;
I can implement the next 2 functions&#xD;
&#xD;
    Dwater = (5 Cwater)/\[Pi]&#xD;
    Ewater = Dwater^3 + 2 Cwater&#xD;
&#xD;
Then by using ParametricNDSolveValue, I can determine the value of Z&#xD;
&#xD;
    ClassicalRungeKuttaCoefficients[4, prec_] := &#xD;
      With[{amat = {{1/2}, {0, 1/2}, {0, 0, 1}}, &#xD;
        bvec = {1/6, 1/3, 1/3, 1/6}, cvec = {1/2, 1/2, 1}}, &#xD;
       N[{amat, bvec, cvec}, prec]];&#xD;
    &#xD;
    f = ParametricNDSolveValue[{Derivative[1][y][x] == &#xD;
         Piecewise[{{(y[x] + x^3 + 3 z - 120*Ewater), 0 &amp;lt;= x &amp;lt;= 1},&#xD;
           {(y[x] + x^2 + 2 z), 1 &amp;lt;= x &amp;lt;= 2},&#xD;
           {(y[x] + x + z), 2 &amp;lt;= x &amp;lt;= 3}}],&#xD;
        y[0] == 0},&#xD;
       y[3.],&#xD;
       {x, 0., 3.},&#xD;
       z,&#xD;
       Method -&amp;gt; {&amp;#034;ExplicitRungeKutta&amp;#034;, &amp;#034;DifferenceOrder&amp;#034; -&amp;gt; 4, &#xD;
         &amp;#034;Coefficients&amp;#034; -&amp;gt; ClassicalRungeKuttaCoefficients}, &#xD;
       StartingStepSize -&amp;gt; 1/10];&#xD;
    &#xD;
    point = {z /. FindRoot[f[z] == 100., {z, 1}, Evaluated -&amp;gt; False], &#xD;
       100.};&#xD;
    &#xD;
    FindRoot[f[z] == 100., {z, 1}, Evaluated -&amp;gt; False]&#xD;
    &#xD;
Lastly, to find the new temperature of water&#xD;
&#xD;
    Tnew = 170 + 1.89*z /. &#xD;
      FindRoot[f[z] == 100., {z, 1}, Evaluated -&amp;gt; False]&#xD;
    &#xD;
I wanted to repeat Twater with Tnew until Twater=Tnew-&amp;gt;True and the loop stop.&#xD;
I need to start Twater with a value, (only to replace Twater=Tnew after the first equation and keep press shift+enter repeatedly)&#xD;
&#xD;
I&amp;#039;ve tried some Do Loop or For Loop and even FixedPoint but still don&amp;#039;t know how to combine multiple functions/equations into 1 loop....&#xD;
I apologize because I&amp;#039;ve been asking this question a few times, or maybe some of you have answered me in some way, but I still did not understand how to do this.&#xD;
Thank you very much for your time.</description>
    <dc:creator>Thai Kee Gan</dc:creator>
    <dc:date>2015-02-13T05:57:04Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/273260">
    <title>Derivative of a list of data values</title>
    <link>https://community.wolfram.com/groups/-/m/t/273260</link>
    <description>Dear All,

I want to ask your advise. I have a variable q as a function of time but I already have the values of q for each time step.
So do you know any command in Mathematica for getting the derivative values of q?
There are some commands such as:
dq/dt = D[q[t],t] or dq/dt = q&amp;#039;[t] but I think I can use that command if I have q as an equation but I have q as values.

So I used the below method to calculate the derivative:

    dqdt = Table[(q[t + 1] - q[t - 1])/2, {t, 1, 99}]

Please refer to attach. titled &amp;#034;Derivative.nb&amp;#034; for the script.
So may I know if the above method is correct? And may I know the alternative ways for calculating derivative like in this case?
Thanks a lot for your kind attention.

Best Regards,
Intan</description>
    <dc:creator>INTAN SUPRABA</dc:creator>
    <dc:date>2014-06-10T01:43:43Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1280423">
    <title>[?] Plot two equations and find the intersection point?</title>
    <link>https://community.wolfram.com/groups/-/m/t/1280423</link>
    <description>Does anyone know how to plot these two equations  x=cos x in the interval [0,\[Pi]/2] and find the intersection point. Please help</description>
    <dc:creator>Lexie Tutwiler</dc:creator>
    <dc:date>2018-02-06T22:40:34Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/126143">
    <title>Fitting system of Differential equations to a dataset</title>
    <link>https://community.wolfram.com/groups/-/m/t/126143</link>
    <description>Hello everyone! I am trying to model the kinetics of an experimental system. I am trying to find the values of 3 variables in a system of differential equations by fitting them to an experimental data set. I have values for &amp;#034;g&amp;#034; as a function of time and I would like to find the values of &amp;#034;k1&amp;#034;, &amp;#034;k2&amp;#034;, and &amp;#034;k3&amp;#034; that provide the best fit to my data with minimun and maximum value constraints. The values of the k&amp;#039;s in my example below are the correct values, as I have set this up to learn how so I can apply it to a more complex system. I&amp;#039;ve tried to learn through the online resources of Mathematica but I am having trouble getting it to work for me. [b]So in short, I would like to find the values of k1, k2, and k3 that solve my set of equations to best fit my experimental values of g. [/b]

Notebook below: [mcode]k1 = 20;
k2 = 10;
k3 = 2;
totaltime = 3;[/mcode][mcode]dataset1 = {{0, 0}, {0.15, 0.271161}, {0.3, 0.525314}, {0.45, 
    0.68284}, {0.6, 0.782049}, {0.75, 0.846992}, {0.9, 
    0.890934}, {1.05, 0.921414}, {1.5, 0.969472}};[/mcode][mcode]solution = NDSolve[
   {a&amp;#039;[t] == -k1*a[t]*b[t],
    b&amp;#039;[t] == -k1*a[t]*b[t],
    c&amp;#039;[t] == k1*a[t]*b[t] - k3*c[t]*f[t],
    d&amp;#039;[t] == -k2*d[t]*e[t],
    e&amp;#039;[t] == -k2*d[t]*e[t],
    f&amp;#039;[t] == k2*d[t]*e[t] - k3*c[t]*f[t],
    g&amp;#039;[t] == k3*c[t]*f[t],
    a[0] == 5,
    b[0] == 2,
    c[0] == 0,
    d[0] == 2,
    e[0] == 1,
    f[0] == 0,
    g[0] == 0},
   {a, b, c, d, e, f, g},
   {t, 0, totaltime},
   MaxSteps -&amp;gt; Infinity];
Show[{ListPlot[dataset1, PlotRange -&amp;gt; {{0, 1.6}, {0, 1}}, 
   PlotRangeClipping -&amp;gt; True]}, 
 Plot[Evaluate[{f[t], g[t]} /. solution],
  {t, 0, totaltime}, PlotLegends -&amp;gt; {&amp;#034;f&amp;#034;, &amp;#034;g&amp;#034;}]][/mcode]</description>
    <dc:creator>A Magyar</dc:creator>
    <dc:date>2013-09-18T16:34:21Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/134089">
    <title>How to export a graph produced by Manipulate - with CURRENT parameters</title>
    <link>https://community.wolfram.com/groups/-/m/t/134089</link>
    <description>Suppose I have a graph produced by Manipulate, for example[mcode]Manipulate[Plot[Sin[k x], {x, 0, 6}], {k, 1, 10}][/mcode]and would like to produce a pdf file of the graph AFTER moving the k parameter slider. That is, I&amp;#039;d like to have a snapshot of what is actually being shown on the screen with the CURREN value of k. Trying to export directly with[mcode]Export[&amp;#034;graph.pdf&amp;#034;, %][/mcode]does not work - the graph produced is that for the initial value k = 1 and NOT for the current value of k showing on the screen. Is there some setting I can make to force it to produce the current view?</description>
    <dc:creator>Boris Blankleider</dc:creator>
    <dc:date>2013-10-04T02:23:05Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/352165">
    <title>Solve the probability distribution for the Forward Kolmogorov.</title>
    <link>https://community.wolfram.com/groups/-/m/t/352165</link>
    <description>Hello everybody, &#xD;
&#xD;
I would be forever grateful if you can get me started on how to solve the following:&#xD;
&#xD;
![enter image description here][1] &#xD;
&#xD;
I understand how to go from the stochastic differential equation to the Forward Kolmogorov; but, I do not know how to solve for p(t,x). Furthermore, the textbooks that I read specify that at t=0, the probability distribution is the DIrac Delta function. I am assuming this implies that we integrate the system of equations somehow?!&#xD;
&#xD;
Also important for me is to learn how to  define the joint density (the solution) so I can use the Maximum Likelihood to fit a given set of data. &#xD;
&#xD;
Thank you in advance! Again - any help would be greatly appreciated.&#xD;
&#xD;
Edvin &#xD;
&#xD;
  [1]: /c/portal/getImageAttachment?filename=ForwardDensity.PNG&amp;amp;userId=311193</description>
    <dc:creator>Edvin Beqari</dc:creator>
    <dc:date>2014-09-23T01:11:16Z</dc:date>
  </item>
</rdf:RDF>

