<?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 ideas tagged with Material Sciences with no replies sorted by active.</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3763003" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3638297" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3156289" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2620767" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1730455" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1566977" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1139687" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1135393" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/987710" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/893945" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/380693" />
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3763003">
    <title>[WSRI26] Adaptive Evolution of Solid Structures under Simulated Incompressible Fluid Flows</title>
    <link>https://community.wolfram.com/groups/-/m/t/3763003</link>
    <description>![Hero Image Fluid Flow Plots and Fitness Plot][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=image-2026-07-16T22-48-38Z.png&amp;amp;userId=3760122&#xD;
  [2]: https://www.wolframcloud.com/obj/b031cffe-f752-4963-8d1a-dcf891569c3c</description>
    <dc:creator>Olgar Ozturk</dc:creator>
    <dc:date>2026-07-16T22:57:49Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3638297">
    <title>[WELP25] Simulating plastic polymer degradation</title>
    <link>https://community.wolfram.com/groups/-/m/t/3638297</link>
    <description>![Simulating Plastic Polymer Degradation][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=7682image.png&amp;amp;userId=911151&#xD;
  [2]: https://www.wolframcloud.com/obj/cde0818d-a5d1-40b6-88d8-a26734298c8f</description>
    <dc:creator>Wolfram Education Programs</dc:creator>
    <dc:date>2026-02-11T16:24:46Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3156289">
    <title>Lithographic imaging by electromagnetic interaction</title>
    <link>https://community.wolfram.com/groups/-/m/t/3156289</link>
    <description>![Photo Lithography][1]&#xD;
&#xD;
The fundamental theory describing “Electrodynamic Fields” has been developed by James Clerk Maxwell and has not changed since Maxwell’s publication in 1862. However this theory is incomplete and fundamentally wrong. Maxwell’s theory, describing Electrodynamics, has been based on the assumption of the superposition of electric fields and magnetic fields. For this reason Maxwell’s equations are linear differential equations. Images in Lithography are considered to be the superposition of a collection of fundamental images. &#xD;
&#xD;
In this New Theory in Physics a new “Non-Linear Electrodynamic” equation has been developed which describes the mutual interaction between different fundamental images.  The final  resulting image is not any more the superposition of the fundamental images but the final image becomes the result of the mutual interaction between the separate images. This final image is fundamentally different than the superposition of the original separate images. &#xD;
&#xD;
Lithographic Imaging (Photolithography) represents the border area between the material world (silicon wafer) and the energy world (mutual electromagnetic imaging). Existing theories to describe these material-energy interactions are far from the required necessary theoretical physics to realize mutual imaging interaction processes at the surface of the silicon wafer. The only possibility to describe these complex interaction processes correctly is to develop a new theory in physics which describes the electro-magnetic force density interactions (expressed in N/m3) (equation 8). The integration of these force densities of the total interaction volume describes the total force between separate images which is deforming the final image. In this way it is possible to project line thicknesses on a silicon wafer smaller than the wavelength of the used optical light source (LASER). &#xD;
 &#xD;
The superposition of images is valid over distances larger than the wavelength of the used optical light source. The electromagnetic interaction between images (contraction of the final image) is valid over distances shorter than the wavelength of the used optical light source.&#xD;
&#xD;
The new theory will be tested at large cosmic scale: Gravitational RedShift, Black Holes and Dark Matter and at sub-atomic levels. And at small atomic scale:  The absorption and emission of light at sub-atomic levels in concentric spheres by an atom at discrete energy levels. Evidence will be demonstrated about the correctness of this new electro-dynamic theory which represents the only theory which connects electro-dynamics in a correct way. &#xD;
&#xD;
Mathematical Proof of Light Propagation and Gravitational Redshift via the LIFE Framework&#xD;
Wim Vegt&#xD;
Wim Vegt, Eindhoven University of Technology&#xD;
Posted 4 years ago&#xD;
Author: Wim Vegt, Physicist &amp;amp; Researcher (Ret.), Eindhoven University of Technology&#xD;
&#xD;
Introduction: The Empirical Gap in General Relativity&#xD;
&#xD;
Historically, the validation of General Relativity (GR) has relied heavily on the 1919 solar eclipse observations. However, that historical outcome was largely matched by introducing arbitrary universal constants to fit the data. A truly rigorous, isolated test of GR only became possible recently with the highly eccentric Galileo Satellites, which allowed for the measurement of a precisely controlled MASER signal from space to a ground station.&#xD;
&#xD;
When subjected to this strict empirical test, classical GR reveals a fundamental mathematical limitation: Gravitational Redshift is not an intrinsic, direct solution of the Einstein Field Equations. To describe the interaction between gravity and light accurately, the inertia (effective mass) of light must be inherently coupled within the fundamental electromagnetic field equations.&#xD;
&#xD;
The Limitation of Maxwell&amp;#039;s Equations&#xD;
&#xD;
Classical electrodynamics, governed by Maxwell’s equations, completely lacks an inertia term for light. Because Maxwell&amp;#039;s equations cannot describe the mechanical inertia of an electromagnetic field, they cannot natively compute how that field interacts with a gravitational gradient. To solve this, we must develop a more complete electromagnetic equation built upon a more fundamental bedrock of physics.&#xD;
&#xD;
The LIFE Framework: 4-Dimensional Universal Equilibrium&#xD;
&#xD;
To resolve this without introducing arbitrary universal constants, this notebook utilizes the Localized Intrinsic Field Equilibrium (LIFE) framework. The LIFE framework returns to the absolute foundation of classical physics: Isaac Newton’s Third Law (The Law of Equilibrium). By extending Newton’s principle of macroscopic spatial equilibrium into a rigorous 4-dimensional continuous spacetime framework, the LIFE theory balances electromagnetic force densities, spatial inertia, and gravitational fields simultaneously in strict [N/m^3] terms.&#xD;
&#xD;
What This Notebook Demonstrates:&#xD;
&#xD;
In the LIFE framework, there is no need to introduce an arbitrary universal constant to force the math to match reality. Instead, the calculations in this notebook prove that the phenomena described by General Relativity&amp;#x2014;specifically the accurate propagation of light and Gravitational Redshift within a gravitational field&amp;#x2014;emerge naturally as exact, direct solutions of the LIFE field equations. I invite the Wolfram Community to run these calculations, examine the integration of the electromagnetic inertia term, and explore how a strict return to 4-dimensional force-density equilibrium perfectly models the Galileo satellite MASER data where classical equations fall short.&#xD;
&#xD;
**References:**&#xD;
&#xD;
[1] Vegt, W; A Continuous Model of Matter Based on AEONs; Physics Essays volume 8, number 2, 1995; https://zenodo.org/records/19001551; https://research.tue.nl/en/publications/a-continuous-model-of-matter-based-on-aeons/&#xD;
&#xD;
[2] Vegt W; The Origin of Gravity; Research &amp;amp; Reviews: Journal of Pure and Applied Physics; https://www.rroij.com/peer-reviewed/the-origin-of-gravity-91966.html ; https://www.rroij.com/peer-reviewed/the-origin-of-gravity-91966.html; https://zenodo.org/records/19002089&#xD;
&#xD;
[3] Vegt W; Enhancing Precision in Electromagnetic Force Density Modulation Using LASER Control; Journal of Laser Applications; AIP publishing; DOI: https://doi.org/10.2351/7.0001636; https://zenodo.org/records/19009836&#xD;
&#xD;
[4] Vegt W; Achieving Ultra High Resolution Lithography via Intrinsic Equilibrium and Electron Driven Spin Resonance; https://zenodo.org/records/19020344&#xD;
&#xD;
[5] Vegt W; A Unified Force Density Framework for Plasma Confinement: Integrating Navier-Stokes with Local Interaction Field Equilibrium (LIFE); https://zenodo.org/records/19067591&#xD;
&#xD;
[6] Vegt W; Macroscopic Force-Density Equilibrium: A Deterministic Bridge Between General Relativity and Quantum Mechanics; https://zenodo.org/records/20189659&#xD;
&#xD;
**Calculations in Mathematica demonstrating the Local Intrinsic Field Equilibrium (LIFE) framework**&#xD;
&#xD;
[7] Vegt W; Mathematical Proof of Arbitrary Wave Propagation and Field Equilibrium using the LIFE Framework; https://community.wolfram.com/groups/-/m/t/2576692?p_p_auth=6wOlNOpR&#xD;
&#xD;
[8] Vegt W; Mathematical Proof of Light Propagation and Gravitational Redshift via the LIFE Framework; https://community.wolfram.com/groups/-/m/t/2576537?p_p_auth=gVJYf1N4&#xD;
&#xD;
[9] Vegt W; Exact Mathematical Solutions for Toroidal Confinement of MASER Radiation in Tokamaks https://community.wolfram.com/groups/-/m/t/3115543?p_p_auth=8VRRtDct&#xD;
&#xD;
[10] Vegt W; Mathematical Proof of &amp;#034;Slow Light&amp;#034; in Silicon Crystals via Lattice Resonance and the LIFE Framework https://community.wolfram.com/groups/-/m/t/3571371?p_p_auth=Yid6Zlnp&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Lithography.png&amp;amp;userId=2576650&#xD;
  [2]: https://www.wolframcloud.com/obj/b91dc983-a852-4125-afdb-b1f40e638739</description>
    <dc:creator>Wim Vegt</dc:creator>
    <dc:date>2024-04-11T11:33:41Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2620767">
    <title>Collaboration needed: Auxetic Inflatables</title>
    <link>https://community.wolfram.com/groups/-/m/t/2620767</link>
    <description>I am interested in implementing the method described in the attached paper as illustrated in this YouTube video [Rapid Deployment of Curved Surfaces via Programmable Auxetics][1] in Mathematica that will allow any arbitrary 3D shape with compound curvature to generate a 2D mesh of triangles of different sizes flexibly attached at their vertices that will constrain the inflation of a bladder to recapitulate the initial 3D shape without any internal structures. The auxetic would be printed, particularly at large scale, on an appropriate 2D substrate and subsequently inflated. Sadly, much of the math in the paper I&amp;#039;ve now long forgotten and I am hoping to find others to assist in developing the algorithm. The authors are not willing to share their code at this point so we will need to start from scratch. &#xD;
&#xD;
&#xD;
  [1]: https://youtu.be/BbQaUgX5css</description>
    <dc:creator>Kevin Ulmer</dc:creator>
    <dc:date>2022-09-21T14:10:38Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1730455">
    <title>[WSS19] Real Physical Networks of Time-Dependent Neurons (DiffyQNet)</title>
    <link>https://community.wolfram.com/groups/-/m/t/1730455</link>
    <description>#**Real Physical Networks of Time-Dependent Neurons:**#&#xD;
#**Differential Equation Neuron Networks or: *DiffyQNet***#&#xD;
&#xD;
&#xD;
![Fig 1: XOR in-training (synapse-based)][1]&#xD;
&#xD;
**Fig 1: XOR in-training (synapse-based)**&#xD;
&#xD;
![Fig 2: Plots of Rate &amp;amp; State; Plotted Architecture &amp;amp; Fully Connected Net example][2]&#xD;
&#xD;
**Fig 2: Plots of Rate &amp;amp; State; Plotted Architecture &amp;amp; Fully Connected Net Example**&#xD;
#Preamble#&#xD;
For posterity, and to help future Wolfram Summer School attendees, there are two introductions/abstracts available at the end of this post: (Before WSS19) is prior to my entrance into WSS19, and (After WSS19) is after the project reached a point of metastability at the finish of the WSS19 program.&#xD;
&#xD;
#Introduction#&#xD;
In this project, coupled sets of time-dependent 2nd order ordinary differential equations (DiffyQs) describing the spiking behavior of certain orientations of materials forming a physical neuron network are simulated based on their given material parameters. These DiffyQNets are trained through an iterative stochastic-gradient-descent-like method wherein the algorithm proceeds as such:&#xD;
&#xD;
(1)	Chosen random output index from a randomly selected input vector is simulated.  &#xD;
(2)	Error is computed by comparison of simulated output against desired outcome.  &#xD;
(3)	Update to current vector/connectivity array made by combination of specified learning rate with the error computed in (2) to aid in convergence.  &#xD;
(4)	Method is ceased after a defined number of iterations.  &#xD;
&#xD;
This implemented functionality consists of a set of functions: **DiffyQNet**, **DiffyQNetSim**, **DiffyQNetTrainSynapse**, **DiffyQNetTrainCurrent**, **DiffyQNetPlotRate**, and **DiffyQNetPlotState**.  &#xD;
In the investigated case, **DiffyQNet** dictates the behavior of a bilayer of an antiferromagnet (AFM) and a normal metal (NM) using a DiffyQ described in [1-2]. Then, **DiffyQNetSim** simulates the results of application of **DiffyQNetTrainSynapse** on the system. Finally, the resulting actions of the system are shown using **DiffyQNetPlotRate** and **DiffyQNetPlotState**.&#xD;
##Starting Point &amp;amp; Initial Issues##&#xD;
The functions of these artificial neurons are time-based and cannot be used within the existing Neural Network framework. As such, it became necessary structures mimicking the functionality of the existing framework, namely: **NetChain**, **NetGraph**, **NetTrain**, etc.&#xD;
#DifferentialEquationNetworks#&#xD;
##DifferentialEquationNet##&#xD;
This function is the basis of the project, here, we construct a 2nd order ordinary differential equation in order to describe the behavior of our neurons we will build into a network. It can be called by doing the following:&#xD;
&#xD;
    SynapseMatrix = .01*Normal[SparseArray[Band[{2, 1}] -&amp;gt; 1, {4, 4}]];&#xD;
    Current = ConstantArray[.974, 4];&#xD;
    DiffyQNet[SynapticMatrix,Currents]&#xD;
&#xD;
The results are set into an association, for ease of calling the needed values with keys. Explanation of inputted terms will be included at a later date, or upon request if desired sooner.&#xD;
&#xD;
    &amp;lt;|&amp;#034;Equations&amp;#034; -&amp;gt; {0.00549779 Sin[2 Subscript[?, 1][t]] + &#xD;
     0.1 Derivative[1][Subscript[?, 1]][t] + &#xD;
     0.00578745 (Subscript[?, 1]^??)[t] == &#xD;
    0.00535484, &#xD;
    0.00549779 Sin[2 Subscript[?, 2][t]] + &#xD;
     0.1 Derivative[1][Subscript[?, 2]][t] + &#xD;
     0.00578745 (Subscript[?, 2]^??)[t] == &#xD;
    0.00535484 + 0.01 Derivative[1][Subscript[?, 1]][t], &#xD;
    0.00549779 Sin[2 Subscript[?, 3][t]] + &#xD;
     0.1 Derivative[1][Subscript[?, 3]][t] + &#xD;
     0.00578745 (Subscript[?, 3]^??)[t] == &#xD;
    0.00535484 + 0.01 Derivative[1][Subscript[?, 2]][t], &#xD;
    0.00549779 Sin[2 Subscript[?, 4][t]] + &#xD;
     0.1 Derivative[1][Subscript[?, 4]][t] + &#xD;
     0.00578745 (Subscript[?, 4]^??)[t] == &#xD;
    0.00535484 + 0.01 Derivative[1][Subscript[?, 3]][t]},&#xD;
    &amp;#034;InitialConditions&amp;#034; -&amp;gt; {{0.671132, 0.671132, 0.671132, 0.671132}, {0,&#xD;
     0, 0, 0}}, &amp;#034;ClockPeriod&amp;#034; -&amp;gt; 2500, &#xD;
    &amp;#034;AnisotropicFrequecy&amp;#034; -&amp;gt; 0.0109956, &amp;#034;EffectiveDamping&amp;#034; -&amp;gt; 0.1, &#xD;
    &amp;#034;ExchangeFrequency&amp;#034; -&amp;gt; 172.788, &amp;#034;NumberNeurons&amp;#034; -&amp;gt; 4, &#xD;
    &amp;#034;ConnectivityMatrix&amp;#034; -&amp;gt; {{0., 0., 0., 0.}, {0.01, 0., 0., 0.}, {0., &#xD;
    0.01, 0., 0.}, {0., 0., 0.01, 0.}}, &#xD;
    &amp;#034;NetworkCurrent&amp;#034; -&amp;gt; {0.974, 0.974, 0.974, 0.974}|&amp;gt;&#xD;
&#xD;
This will be apparent later on, in the way further functions are called and interact with one another.&#xD;
##DifferentialEquationNetSim##&#xD;
This function will simulate the behavior of the constructed **DiffyQNet**. From here, we can test the behavior of the network before and after training with **DiffyQNetTrain**.&#xD;
&#xD;
    DiffyQNeuralNetwork = DiffyQNet[SynapseMatrix, Current];&#xD;
    BinaryInput={{1}};&#xD;
    DiffyQNetSim[DiffyQNeuralNetwork, {{1}}]&#xD;
&#xD;
The results, again in an association, allow for the examination of the outputted behavior of the system.&#xD;
&#xD;
    &amp;lt;|&amp;#034;EndConditions&amp;#034; -&amp;gt; {{{3.81272, 3.81272, 3.81272, &#xD;
         3.81272}, {-7.56906*10^-19, -1.86168*10^-18, 1.14884*10^-17, &#xD;
         1.58353*10^-15}}}, &amp;#034;BinaryOutput&amp;#034; -&amp;gt; {{1, 1, 1, 1}}, &#xD;
     &amp;#034;DeltaStrength&amp;#034; -&amp;gt; {0.01, 0, 0, 0}|&amp;gt;&#xD;
&#xD;
This can all seem a bit confusing, at first, but with time, the obvious behaviors of such a simple system will become apparent. If not, the use of **DiffyQNetPlotState** and **DiffyQNetPlotRate** can readily provide a visual explanation of the occuring behaviors:&#xD;
&#xD;
    StartingConditions = &#xD;
      Join[{DiffyQNeuralNetwork[&amp;#034;InitialConditions&amp;#034;][[1]], &#xD;
        DiffyQNeuralNetwork[&amp;#034;ExchangeFrequency&amp;#034;]*Pi*{.01, 0, 0, 0}}];&#xD;
    rate = DiffyQNetPlotRate[DiffyQNeuralNetwork, StartingConditions, &#xD;
      800, .14, 0]&#xD;
    state = DiffyQNetPlotState[DiffyQNeuralNetwork, StartingConditions, &#xD;
       1000, Pi + 1, 0][&amp;#034;StatePlot&amp;#034;]&#xD;
&#xD;
As can be seen in the **DiffyQNetPlotState** associations can again be used to access the state plot, versus a collection of the adjusted weights during training, as was used in the creation of the GIF at the top of this post. The outputs from the following are seen on the left side of Fig. 2, with the rates showing the spiking behavior of the neurons, and the states showing the corresponding angle of the Néel vector as discussed in the reference papers.&#xD;
&#xD;
#DiffyQNetTrain(Synapse &amp;amp; Current)##&#xD;
While the above example is a simple one, seen in the upper right of Fig. 2, more complex systems such as AND, OR, XOR, and Fully Connected Networks (FCN) can be made. For the use of FCN for classification purposes, encoders must reach a finalized stage of construction, and their uses will be described in subsequent publications regarding MNIST classification. Here, however, it can be shown that AND, OR, and XOR gates are easily constructed and trained. An example of AND &amp;amp; OR, while sharing identical initial geometries, appropriately show the wide versatility of this DiffyQNet system.&#xD;
&#xD;
    ANDmat = ORmat = {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {.01, 0, 0, 0, &#xD;
         0}, {0, .01, 0, 0, 0}, {0, 0, .01, .01, 0}};&#xD;
    TrainedAND = &#xD;
      DiffyQNetTrain[&#xD;
       DiffyQNet[ANDmat, &#xD;
        ConstantArray[.974, 5]], {{1, 0}, {0, 1}, {1, &#xD;
         1}}, {{0}, {0}, {1}}, 30];&#xD;
    (DiffyQNetSim[TrainedAND[&amp;#034;TrainedNet&amp;#034;], {{1, 0}, {0, 1}, {1, 1}}][&#xD;
       &amp;#034;BinaryOutput&amp;#034;])[[1 ;;, {1, 2, 5}]]&#xD;
    &#xD;
&amp;gt; `{{1, 0, 0}, {0, 1, 0}, {1, 1, 1}}`&#xD;
&#xD;
    TrainedOR = &#xD;
      DiffyQNetTrain[&#xD;
       DiffyQNet[ORmat, &#xD;
        ConstantArray[.974, 5]], {{1, 0}, {0, 1}, {1, &#xD;
         1}}, {{1}, {1}, {1}}, 30];&#xD;
    (DiffyQNetSim[TrainedOR[&amp;#034;TrainedNet&amp;#034;], {{1, 0}, {0, 1}, {1, 1}}][&#xD;
       &amp;#034;BinaryOutput&amp;#034;])[[1 ;;, {1, 2, 5}]]&#xD;
&amp;gt;`{{1, 0, 1}, {0, 1, 1}, {1, 1, 1}}`&#xD;
&#xD;
The differences in the structures can be seen with the appropriate key usage.&#xD;
&#xD;
    TrainedOR[&amp;#034;TrainedNet&amp;#034;][&amp;#034;ConnectivityMatrix&amp;#034;]&#xD;
&#xD;
&amp;gt;`{{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0.01, 0, 0, 0, 0}, {0, 0.01, 0, 0,&#xD;
   0}, {0, 0, 0.01, 0.01, 0}}`&#xD;
&#xD;
&#xD;
    TrainedAND[&amp;#034;TrainedNet&amp;#034;][&amp;#034;ConnectivityMatrix&amp;#034;]&#xD;
&#xD;
&amp;gt;`{{0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0.01, 0, 0, 0, 0}, {0, 0.01, 0, 0,&#xD;
   0}, {0, 0, 0.005, 0.005, 0}}`&#xD;
&#xD;
Current Training can also occur with similar syntax, but this time, the connectivity matrices are held static, and the current level of the neurons is what is adjusted.&#xD;
&#xD;
    currentTrainedAND = &#xD;
      DiffyQNetTrainCurrent[&#xD;
       DiffyQNet[ANDmat, &#xD;
        ConstantArray[.974, 5]], {{1, 0}, {0, 1}, {1, &#xD;
         1}}, {{0}, {0}, {1}}, 30];&#xD;
    (DiffyQNetSim[&#xD;
        currentTrainedAND[&amp;#034;TrainedNet&amp;#034;], {{1, 0}, {0, 1}, {1, 1}}][&#xD;
       &amp;#034;BinaryOutput&amp;#034;])[[1 ;;, {1, 2, 5}]]&#xD;
&#xD;
&amp;gt;`{{1, 0, 0}, {0, 1, 0}, {1, 1, 1}}`&#xD;
&#xD;
    currentTrainedOR = &#xD;
      DiffyQNetTrainCurrent[&#xD;
       DiffyQNet[ORmat, &#xD;
        ConstantArray[.974, 5]], {{1, 0}, {0, 1}, {1, &#xD;
         1}}, {{1}, {1}, {1}}, 30];&#xD;
    (DiffyQNetSim[&#xD;
        currentTrainedOR[&amp;#034;TrainedNet&amp;#034;], {{1, 0}, {0, 1}, {1, 1}}][&#xD;
       &amp;#034;BinaryOutput&amp;#034;])[[1 ;;, {1, 2, 5}]]&#xD;
&#xD;
&amp;gt;`{{1, 0, 1}, {0, 1, 1}, {1, 1, 1}}`&#xD;
&#xD;
&#xD;
#Helper Functions#&#xD;
Many of the visualizations of the Architecture and Weights can be made with the following helper functions:&#xD;
&#xD;
##GraphLayerList##&#xD;
&#xD;
    GraphLayerList[inpmat_] := &#xD;
     Module[{glist = &#xD;
        Join @@ MapIndexed[&#xD;
          Thread@DirectedEdge[&#xD;
             First /@ Position[#1, Except[0 | 0.], {1}, Heads -&amp;gt; False], &#xD;
             First@#2] &amp;amp;, inpmat], classes = {}, classvrtcs},&#xD;
      classvrtcs = &#xD;
       Cases[Thread[{VertexList@glist, VertexInDegree@glist}], {v_, 0} :&amp;gt; &#xD;
         v];&#xD;
      While[Length@classvrtcs &amp;gt; 0&#xD;
       ,&#xD;
       AppendTo[classes, Union@classvrtcs];&#xD;
       classvrtcs = &#xD;
        Cases[EdgeList@&#xD;
          glist, (Alternatives @@ Last[classes]) \[DirectedEdge] v_ :&amp;gt; v]&#xD;
       ];&#xD;
      {glist, classes}&#xD;
      ]&#xD;
&#xD;
##ColPacity Style##&#xD;
&#xD;
    ColPacity[adjmat_, poscol_, negcol_] := Block[{styleEdge},&#xD;
       (&#xD;
        styleEdge[n_Real] := {Opacity[50 Abs@n], &#xD;
          If[Positive[n], poscol, negcol], Thick};&#xD;
        Map[# -&amp;gt; styleEdge@Part[adjmat, #[[2]], #[[1]]] &amp;amp;, &#xD;
         GraphLayerList[adjmat][[1]]]&#xD;
        )];&#xD;
&#xD;
##ADJmatFCN##&#xD;
&#xD;
    ADJmatFCN[numinput_, numoutput_, numtotal_, defaultweight_: .01] := &#xD;
     Module[{numhidden = numtotal - numinput - numoutput}, &#xD;
      defaultweight*&#xD;
       Normal@SparseArray[{Band[{numinput + 1, 1}, {numinput + numhidden, &#xD;
             numinput}, {1, 1}] -&amp;gt; {{1, 1}, {1, 1}}, &#xD;
          If[numhidden != 0, &#xD;
           Band[{numinput + numhidden + 1, numinput + 1}, {numtotal, &#xD;
              numinput + numhidden}, {1, 1}] -&amp;gt; {{1, 1}, {1, 1}}, &#xD;
           Nothing]}, {numtotal, numtotal}]]&#xD;
&#xD;
##StyledGraphPlotter##&#xD;
&#xD;
    Options[StyledADJPlot] = {&amp;#034;PositiveColor&amp;#034; -&amp;gt; Darker@Red, &#xD;
       &amp;#034;NegativeColor&amp;#034; -&amp;gt; Darker@Blue};&#xD;
    StyledADJPlot[adjmat_, OptionsPattern[]] := &#xD;
     Block[{amat = adjmat, poscol = OptionValue[&amp;#034;PositiveColor&amp;#034;], &#xD;
       negcol = OptionValue[&amp;#034;NegativeColor&amp;#034;]},&#xD;
      LayeredGraphPlot[GraphLayerList[adjmat][[1]], Left, &#xD;
       VertexStyle -&amp;gt; &#xD;
        Flatten@MapIndexed[#1 -&amp;gt; ColorData[63][#2[[1]]] &amp;amp;, &#xD;
          GraphLayerList[adjmat][[2]], {2}], VertexSize -&amp;gt; 0.2, &#xD;
       EdgeStyle -&amp;gt; ColPacity[amat, poscol, negcol], &#xD;
       AspectRatio -&amp;gt; GoldenRatio]]&#xD;
&#xD;
&#xD;
#Results &amp;amp; Future Work#&#xD;
We find that AND, OR, and XOR gates can be efficiently simulated using the NDSolve framework, with over 200 iterative computations of networks consisting of several coupled neurons having little impact on the required computation time, occurring in under 3 seconds. This shows that the application &amp;amp; training of similar networks to the classification of larger systems like the MNIST database which are still comparatively smaller in size to other datasets will not be temporally expensive to perform. These expedient results thus provide impetus to the continued development of this project for generalized time-dependent DiffyQNets.&#xD;
##Future Development Plans##&#xD;
Functions will continue to be built out into a complete system, and inevitably released in packaged form through github, and available individually from the Wolfram Language Function Repository. Links will be provided in this section and elsewhere once these are made available.&#xD;
(07/10/19 not currently available)&#xD;
##Before/After Abstracts##&#xD;
###(After WSS19)###&#xD;
Title:  &#xD;
Differential Equation Neural Networks:  &#xD;
(DiffyQNet)&#xD;
From artificial digital time-independent neurons to real physical time-dependent neurons  &#xD;
(A necessary first step towards innovative computing paradigms)  &#xD;
Author(s):  &#xD;
CA Trevillian  &#xD;
Project Description:  &#xD;
In this project, coupled sets of time-dependent 2nd order ordinary differential equations (DiffyQs) describing the spiking behavior of certain orientations of materials forming a physical neuron network are simulated based on their given material parameters. These DiffyQNets are trained through an iterative stochastic-gradient-descent-like method wherein the algorithm proceeds as such:  &#xD;
(1)	Chosen random output index from a randomly selected input vector is simulated.  &#xD;
(2)	Error is computed by comparison of simulated output against desired outcome.  &#xD;
(3)	Update to current vector/connectivity array made by combination of specified learning rate with the error computed in (2) to aid in convergence.  &#xD;
(4)	Method is ceased after a defined number of iterations.  &#xD;
This implemented functionality consists of a set of functions: DiffyQNet, DiffyQNetSim, DiffyQNetTrain, DiffyQNetPlotRate, and DiffyQNetPlotState. In the investigated case, DiffyQNet dictates the behavior of a bilayer of an antiferromagnet (AFM) and a normal metal (NM) using a DiffyQ described in [1-2]. Then, DiffyQNetSim simulates the results of application of DiffyQNetTrain on the system. Finally, the resulting actions of the system are shown using DiffyQNetPlotRate and DiffyQNetPlotState.  &#xD;
Results &amp;amp; Future Work:  &#xD;
We find that AND, OR, and XOR gates can be efficiently simulated using the NDSolve framework, with over 200 iterative computations of networks consisting of several coupled neurons having little impact on the required computation time, occurring in under 3 seconds. This shows that the application &amp;amp; training of similar networks to the classification of larger systems like the MNIST database which are still comparatively smaller in size to other datasets will not be temporally expensive to perform. These expedient results thus provide impetus to the continued development of this project for generalized time-dependent DiffyQNets.  &#xD;
(1) Roman Khymyn et al., Ultra-fast artificial neuron: generation of picosecond-duration spikes in a current-driven antiferromagnetic auto-oscillator, Scientific Reports 8, (Oct. 2018).  &#xD;
(2) Olga Sulymenko et al., Ultra-fast logic devices using artificial neurons based on antiferromagnetic pulse generators, Journal of Applied Physics 124, 152115 (July 2018).  &#xD;
&#xD;
&#xD;
&#xD;
&#xD;
###(Before WSS19)###&#xD;
Title:  &#xD;
From artificial digital networks of instantaneous neurons to real physical networks of dynamical neurons: A necessary first step towards innovative computing paradigms  &#xD;
Author(s):  &#xD;
CA Trevillian  &#xD;
Body:  &#xD;
     In this project, a generalized training algorithm will be developed for real networks of physical neurons. In direct opposition to the standard approach of artificial networks of digital neurons, which are modeled by instantaneous time-independent functions,  output = f ( input ) , these physical neurons are dynamical systems which are physical in reality, and must be described using dynamical time-dependent functions, modeled by  (d output ( t ))/(d t) = F ( input ( t ), output ( t ) ) . For dynamical systems, more than just the input values are important: the internal state of the system, or memory, and the timing of the input signal, modeled using Dirac-delta-like spikes, additionally factor into the response, or output. As a result, physical dynamical neural networks (DNNs) cannot be trained using existing methods of digital training algorithms for artificial instantaneous neural networks (INNs), and a generalized method of training algorithms for real physical dynamical neurons must be developed.  &#xD;
     While there are many existing digital examples of DNNs, such as spiking neural networks, &amp;amp; INNs, such as convolutional neural networks like the network LeNet, recent advancements in materials science and hardware production has made possible the creation of neuromorphic DNNs which are physical in reality, much like that of the memristor-based adaptive linear neuron element ADALINE, differing in respect to their use of discrete spike-train and continuous constant-train currents, respectively. One such example of neuromorphic DNN hardware is that of recent work in our research group (1) using antiferromagnetic (AFM) auto-oscillator neurons which produce picosecond length spike-pulses when interacted with, showing activation above a certain current amplitude threshold. The distinctness of these AFM ultra-fast neurons is shown through their outputted production of discrete in-time spike-train current pulses which can induce the activation of additional AFM neurons, consisting of singular or multiple spikes depending on the shape and size (amplitude and rate) of the input signal. Due to the unique behavior of these ultra-fast AFM auto-oscillator neurons, the lack of general algorithmic approaches to the training of DNNs is made readily apparent.  &#xD;
     Moreover, contrasting with the vast availability of trained INNs and their models available on the Wolfram Neural Net Repository, there do not currently exist any entries, trained or otherwise, for DNNs. In order to span this gap in utility and understanding, the MNIST database will be classified using Mathematicas built-in neural net functions. Then, systematic investigations of limiting cases regarding types of algorithms, counts of neurons, length &amp;amp; size of training steps, and the number of layers both hidden and external will occur. This will lead to a better understanding of the hardwired INN functions from which custom neural network functions will be constructed using functional programming constructs, avoiding the use of the built-in functionality of the documented INN functions. Then, the MNIST database will again be classified using these instantaneous functions, and the limiting cases will again be systematically investigated. After this, the change will be made from instantaneous to dynamical neuron functions, and the findings of the previous limiting cases will be utilized in order to implement and develop new algorithms that better manage the time-dependent nature of DNNs. This change and a systematic investigation are necessary as we begin to create physical neuromorphic DNN hardware like that of the ultra-fast AFM auto-oscillator neurons for applications in machine learning using deep belief nets and generalized neural networks.  &#xD;
    (1) Roman Khymyn et al., Ultra-fast artificial neuron: generation of picosecond-duration spikes in a current-driven antiferromagnetic auto-oscillator, Scientific Reports 8, (Oct. 2018).  &#xD;
#Authors Note#&#xD;
The work presented herein is [in-progress] and would not be possible without the support, both financial and otherwise, of several individuals &amp;amp; institutions: provision of foundational works comprising the base of the code by Mr. James Voorheis &amp;amp; Dr. Vasyl Tyberkevych from publications noted below in Useful Resources, financial support from Professor Andrei Slavin provided by the Research Office at Oakland University, and financial aid supporting a meal plan during WSS19 through Wolfram Research, Inc.&#xD;
When stable versions of the programs depicted are reached, they will be available through use in the Function Repository with the necessary links updated and noted in the corresponding sections. Development of the program, and the current stable releases will be available at my Github repo, participation in the improvement of the following tools and functionality is welcomed and appreciated, and appropriate credits will be made via authorship notation in the relevant publications. This work is publicly funded, and as such, is not-for-profit.&#xD;
&#xD;
##**The relevant notebook and github links will be made available within the next week. Thank you for reading thus far, and please come back here soon to view updates!**##&#xD;
&#xD;
&#xD;
#Useful Resources#&#xD;
 &#xD;
(1) Ultra-fast artificial neuron: generation of picosecond-duration spikes in a current-driven antiferromagnetic auto-oscillator:  &#xD;
https://doi.org/10.1038/s41598-018-33697-0  &#xD;
(2) Ultra-fast logic devices using artificial neurons based on antiferromagnetic pulse generators:  &#xD;
https://doi.org/10.1063/1.5042348  &#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=test.gif&amp;amp;userId=1609332&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=ImageCover_Trevillian.png&amp;amp;userId=1609332</description>
    <dc:creator>CA Trevillian</dc:creator>
    <dc:date>2019-07-10T21:30:54Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1566977">
    <title>Implementation of topology optimization algorithms in Wolfram Mathematica</title>
    <link>https://community.wolfram.com/groups/-/m/t/1566977</link>
    <description>----------&#xD;
&#xD;
&#xD;
## One year ago ##&#xD;
One year ago I posted my first [publication][1] about implementation the topology optimization algorithms in Wolfram Mathematica by using my own finite element method. I want to continue this post by presenting new results, which I received during year.&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
## Introduction ##&#xD;
It is really important problem in aircraft and spacecraft engineering. Why? Because the main goal of using topology optimization algorithms in such spheres is a decreasing the weight of any construction. As example - full optimization of the aircraft wing:![enter image description here][2]&#xD;
Results of this optimization presented by Niels Aage, Erik Andreassen, Boyan S. Lazarov and Ole Sigmund in their paper [&amp;#034;Giga-voxel computational morphogenesis for&#xD;
structural design&amp;#034;][3]. They achieived the 20-40% saving of weight with saving the durability with using SIMP (Solid Isotropical Material with Penalization) method. It is incredible result because of it is the first paper about optimizing object of such scale. It is important to say that now it is not fantastic idea to optimize multiscale objects or object with huge amount of components. Many commercial products realized their own algorithms.&#xD;
&#xD;
&#xD;
----------&#xD;
## What did I do? ##&#xD;
&#xD;
 - SIMP 2D algorithm (not my own)&#xD;
 - SIMP 2D modification (my own realization by **FindMinumum** function, but not effective in comparison with traditional algorithm, but I can use any type of elements)&#xD;
 - SIMP 3D algoritm (not my own)&#xD;
 - Level-set 2D algorithm (not my own)&#xD;
 - Level-set 3D algorithm based on 2D (my own)&#xD;
 - Modifications in methods for better quality of solutions (my own)&#xD;
&#xD;
SIMP 3D algorithm in Matlab was written by Kai Liu and Andres Tovar in paper [&amp;#034;An efficient 3D topology optimization code written in MATLAB&amp;#034;][4]. It should be mentioned that [Ole Sigmund][5] and [Martin Philip Bendsoe][6] were first men who published effective numerical algorithm of first topology optimization algorithms.&#xD;
&#xD;
Level-set 2D algorithm was written by Vivien J. Challis in paper [&amp;#034;A discrete level-set topology optimization code written in MATLAB&amp;#034;][7].&#xD;
&#xD;
It was a little sad that most of realizations of topology optimization algorithm were written in MATLAB. I found only one implementation of SIMP method in Wolfram Mathematica written by Vladimir Uskov. &#xD;
&#xD;
&#xD;
----------&#xD;
## SIMP ##&#xD;
&#xD;
So I realized these algorithms in Wolfram Mathematica. Both of them have a simple implementation of FEM. In 2D case we have quad elements with first order interpolation, and in 3D case - hexahedron elements with first order interpolation. It should be mentioned that also I realized not effective topology optimization algorithm based on Wolfram Mathematica function **FindMinimum** and **NDSolve\`FEM\`** module in Mathematica. This function has a solver for constrained optimization problem based on Interior point method of Narendra Karmarkar. Here some solutions of traditional topology optimization problem I received by using this function:&#xD;
&#xD;
![enter image description here][8]&#xD;
&#xD;
Graphical formulation of topology optimization problem.&#xD;
&#xD;
![enter image description here][9]&#xD;
&#xD;
First order element with first order penalty function&#xD;
&#xD;
![enter image description here][10]&#xD;
&#xD;
Second order element with first order penalty function&#xD;
&#xD;
![enter image description here][11]&#xD;
&#xD;
Second order element with second order penalty function&#xD;
&#xD;
![enter image description here][12]&#xD;
&#xD;
Second order quad element with second order penalty function&#xD;
&#xD;
All results and code you can look on my [GitHub][13] page in file **TopOpt2.nb**.&#xD;
&#xD;
SIMP 3D implementation results you can look below:&#xD;
&#xD;
![enter image description here][14]&#xD;
&#xD;
Algorithm realization you can look also on my [GitHub][15] page in file **SIMP3D.nb**.&#xD;
&#xD;
&#xD;
----------&#xD;
## Level-set ##&#xD;
&#xD;
I translated the educational code of Vivien J. Challis from MATLAB code to Wolfram Mathematica with saving the names of variables for better understanding by my readers. You can look all meanings of all variables in his publication [&amp;#034;A discrete level-set topology optimization code written in MATLAB&amp;#034;][16]. I decided that it will be good to make an animation for any future user of level-set topology optimization for clear understanding of the idea:&#xD;
&#xD;
![enter image description here][17]&#xD;
&#xD;
Here we can see the how we receive the solution of problem by level-set algorithm. It is interesing that the same method is used for receiving 3D model from Magnetic resonance imaging. Hamilton-Jacobi equation and volume constraints, which describe our optimization problem define by itself 3D surface in 2D case problem. In 3D problem it will be 4D surface. And algorithm only move the plane through this surface until it receives the correct solution. Below 3D case is presented:&#xD;
&#xD;
![enter image description here][18]&#xD;
&#xD;
Here you can see the possible solution of 3D case problem. But the main difference between SIMP and Level-set is a possibility to modify internal domain. Without topology sensitivites in 2D and 3D level-set method - internal domain modification forbidded. We can make an initial hole inside the body for overwhelming this forbid. FEM implementation of voxel mesh was taken from paper Kai Liu and Andres Tovar. Idea of realization 3D Level-set was taken from paper Vivien J. Challis. In my research I tried to change the algorithm of satisfying constrained optimization from Lagrange multiplier method to something heuristic algorithm. The main Idea was avoiding of seeking right values of Lagrange multipliers. Standard and modificated algorithms were realized and compared. I received the longer convergence of algorithm, but I need only 1 run for any optimization problem. Standard and modificated realization and comparison you also can look on [GitHub][13] page in file **Level-set3D.nb**.&#xD;
&#xD;
&#xD;
----------&#xD;
## Further Exploration ##&#xD;
Now is appeared a new implementation of Level-set algorithm based on reaction-diffusion equation. The main advantage of this is an independence level-set function on nucleation process. Possibly all implementations will be united in mini-extension of Wolfram Mathematica.&#xD;
&#xD;
&#xD;
----------&#xD;
## Acknowledgements ##&#xD;
I want to thank Dr. Vivien Challis from The University of Queensland for clear explanations and helpful conversation about 3D Level-set method implementation.&#xD;
&#xD;
  [1]: https://community.wolfram.com/groups/-/m/t/1163322&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG&amp;amp;userId=1083954&#xD;
  [3]: https://www.nature.com/articles/nature23911&#xD;
  [4]: https://link.springer.com/article/10.1007/s00158-014-1107-x&#xD;
  [5]: http://www.dtu.dk/english/service/phonebook/person?id=2278&#xD;
  [6]: https://www.dtu.dk/english/service/phonebook/person?id=165&amp;amp;tab=1&#xD;
  [7]: https://link.springer.com/article/10.1007/s00158-009-0430-0&#xD;
  [8]: https://community.wolfram.com//c/portal/getImageAttachment?filename=10361%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG&amp;amp;userId=1083954&#xD;
  [9]: https://community.wolfram.com//c/portal/getImageAttachment?filename=1552%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG&amp;amp;userId=1083954&#xD;
  [10]: https://community.wolfram.com//c/portal/getImageAttachment?filename=9214%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG&amp;amp;userId=1083954&#xD;
  [11]: https://community.wolfram.com//c/portal/getImageAttachment?filename=2031%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG&amp;amp;userId=1083954&#xD;
  [12]: https://community.wolfram.com//c/portal/getImageAttachment?filename=1927%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG&amp;amp;userId=1083954&#xD;
  [13]: https://github.com/AndreyKrotkikh/TopologyOptimization&#xD;
  [14]: https://community.wolfram.com//c/portal/getImageAttachment?filename=animate2.gif&amp;amp;userId=1083954&#xD;
  [15]: https://github.com/AndreyKrotkikh/TopologyOptimization&#xD;
  [16]: https://link.springer.com/article/10.1007/s00158-009-0430-0&#xD;
  [17]: https://community.wolfram.com//c/portal/getImageAttachment?filename=animate.gif&amp;amp;userId=1083954&#xD;
  [18]: https://community.wolfram.com//c/portal/getImageAttachment?filename=animate3.gif&amp;amp;userId=1083954</description>
    <dc:creator>Andrey Krotkikh</dc:creator>
    <dc:date>2018-12-07T00:06:08Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1139687">
    <title>[WSC17] Interactive Clausius-Clapeyron Phase Boundaries</title>
    <link>https://community.wolfram.com/groups/-/m/t/1139687</link>
    <description>This is a summary of my findings regarding the set of Clausius-Clapeyron Relations that I researched during my time at the 2017 Wolfram High School Summer Camp. During the time that I worked on the project, I learned much about the implementation of the relations to physical systems and the Wolfram Language in general. Although there were some initial issues with creating the plot, I was able to create a successful interactive plot of the phase boundary in the end. The final project was a series of plots that can determine a phase boundary based on the manipulate functionality in the Wolfram program. Attached is the final project notebook that I created with all the code necessary for generating the plots. &#xD;
&#xD;
**The Clausius-Clapeyron Relations**&#xD;
------------------------------------&#xD;
&#xD;
The set of Clausius-Clapeyron differential equations relates the change of an external thermodynamic variable such as magnetic field or vapor pressure with respect to temperature. The solution curve is a phase boundary where the system changes its magnetic ordering state or matter phase as it crosses the boundary. A program was created which determines the general behavior of this phase boundary based on system variables such as entropy change (***?S***), latent heat (***L***), and volume change (***?V***) inputted as linear parameters of relative intensity. The program can be used to observe how these thermodynamic parameters affect the shape of a given phase boundary between two different physical states. Possible applications of this program are **simulations of magnetic and matter phase transitions, enhanced analysis of experimental diagrams, and prediction of phase boundaries**. Note that the program created can be used to determine the general shape and behavior of phase boundaries given an input ratio of the system&amp;#039;s thermodynamic properties in units of relative intensity. However, the first few plots that I created are able to identify the overall shape of the phase boundary line rather than its exact coordinates.&#xD;
&#xD;
*Magnetic Phase Transitions*&#xD;
------------------------------&#xD;
&#xD;
The first form Clausius-Clapeyron relation that was explored was for magnetic systems. This relation is written as **dH/dT = ?S/(µ?M)** where ***?S*** is the entropy change of the system, ***µ*** is the magnetic permeability of the system, and ?M is the total change in magnetization. If we approximate ***?S*** and ***?M*** as linear functions dependent on ***T*** (temperature) and ***H*** (magnetic field), respectively, then we will be able to create a phase boundary above which the system becomes paramagnetic, or disordered. Below is the code that I used to create the plot.&#xD;
&#xD;
    Manipulate[&#xD;
     f[1, x_, y_] := (a*x)/ (\[Mu]*(y*m));&#xD;
     &#xD;
     VectorPlot[{1, f[p, x, y]}, {x, 0, 30}, {y, 0, 30}, &#xD;
             FrameLabel -&amp;gt; {Style[&amp;#034;Temperature&amp;#034;, 12, &#xD;
         FontFamily -&amp;gt; &amp;#034;Times&amp;#034;, Red], &#xD;
        Style[&amp;#034;Magnetic Field&amp;#034;, 12, FontFamily -&amp;gt; &amp;#034;Times&amp;#034;, Red]}, &#xD;
      AxesStyle -&amp;gt; Red, VectorScale -&amp;gt; {.05, Automatic, None}, &#xD;
      ImageSize -&amp;gt; {280, 430}, VectorStyle -&amp;gt; Blue, &#xD;
      PlotLabel -&amp;gt; &#xD;
       Style[&amp;#034;Magnetic Phase Boundary&amp;#034;, 22, FontFamily -&amp;gt; &amp;#034;Times&amp;#034;, Red, &#xD;
        Bold], StreamStyle -&amp;gt; {Red, Arrowheads[0]}, StreamPoints -&amp;gt; 1, &#xD;
      VectorPoints -&amp;gt; 0, StreamScale -&amp;gt; Full, PlotTheme -&amp;gt; &amp;#034;Business&amp;#034;, &#xD;
      StreamScale -&amp;gt; Full]&#xD;
&#xD;
Some interesting linear parameters are ***?S = -2***, ***?M = 1***, and ***µ=1*** (as shown in the plot below). These parameters are characteristic of an antiferromagnetic system as the system has a negative ?S. Note that below the red line the magnetic alignment is antiferromagnetic but above the red line the magnetic alignment is paramagnetic. Another set of interesting parameters, representative of a diamagnetic material (magnetic permeability less than 1) is  ***?S = -2***, ***?M = 2***, and ***µ=.1***.&#xD;
&#xD;
![enter image description here][1]&#xD;
*Pressure Phase Transitions*&#xD;
-----------------------------&#xD;
Two common forms of the Clausius-Clapeyron Relation are **dP/dT = L/(T?V)** and **dP/dT = (?S/?V)**. The shape of these boundaries was created using the same technique outlined above. In these relations, **L** represents latent heat, **?S** represents entropy change, **T** is the temperature of the system, and **?V** is the volume change of the system.&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
Shown above is a sample matter phase diagram plot which allows the user to manipulate the ratio of ***latent heat (L)***, ***temperature***, and ***volume change (?V)*** where the latter two are approximated using linear functions. Some interesting parameters to use are negative ***?V*** values as inputting these parameters show how the phase boundary behaves when the system is compressed.    &#xD;
&#xD;
Shown below is another sample diagram which uses the parameters ***?S*** and ***?V*** instead.&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
Another type of plot which I created is able to create the **exact phase boundary** for matter phase transitions. This plot is able to create the actual pressure phase line by allowing the user to linearly approximate ***dP/dT*** (change in pressure versus temperature). It then integrates this linear equation to plot the matter phase boundary in terms of vapor pressure. The equation that I used here was ***dP/dT = mT+ Pi***. In this equation, **m** is the linear change parameter and ***Pi*** is the initial pressure condition. These parameters can be determined experimentally or they can be predicted parameters. The following is the code used to create the plot and its output (with specific conditions). &#xD;
&#xD;
    Style[&amp;#034;dP/dT = mT+\!\(\*SubscriptBox[\(P\), \(i\)]\)&amp;#034;, Purple, &#xD;
        Bold] -&amp;gt; &#xD;
       Manipulate[&#xD;
        Show[{RegionPlot[&#xD;
           p &amp;gt; Evaluate[(Integrate[(m s + b) , s] /. s -&amp;gt; v)], {p, 0, &#xD;
            500}, {v, 0, 50}, &#xD;
           PlotLabel -&amp;gt; &#xD;
            Style[&amp;#034;Approximate dP/dT as mT+\!\(\*SubscriptBox[\(P\), \&#xD;
    \(i\)]\)&amp;#034;, FontFamily -&amp;gt; &amp;#034;Times&amp;#034;, Bold, 20, Darker@Purple], &#xD;
           PlotStyle -&amp;gt; Red, &#xD;
           PlotLegends -&amp;gt; &#xD;
            Style[&amp;#034;Condensed Phase&amp;#034;, Blue, FontFamily -&amp;gt; &amp;#034;Times&amp;#034;, Bold, &#xD;
             14], FrameLabel -&amp;gt; {Style[&amp;#034;Temperature&amp;#034;, Bold, 12, &#xD;
              Darker@Purple], Style[&amp;#034;Pressure&amp;#034;, Bold, 12, Darker@Purple]},&#xD;
            PlotTheme -&amp;gt; &amp;#034;Business&amp;#034;, &#xD;
           BoundaryStyle -&amp;gt; {Thick, Darker@White}], &#xD;
          RegionPlot[&#xD;
           p &amp;lt; Evaluate[(Integrate[(m s + b) , s] /. s -&amp;gt; v)], {p, 0, &#xD;
            500}, {v, 0, 50}, PlotStyle -&amp;gt; Blue, &#xD;
           BoundaryStyle -&amp;gt; {Thick, Darker@White}, &#xD;
           PlotLegends -&amp;gt; &#xD;
            Style[&amp;#034;Gaseous Phase&amp;#034;, Red, FontFamily -&amp;gt; &amp;#034;Times&amp;#034;, Bold, 14], &#xD;
           PlotTheme -&amp;gt; &amp;#034;Business&amp;#034;]}],&#xD;
        &#xD;
        {{m, 2, Style[&amp;#034;m&amp;#034;, Darker[Purple]]}, -2, 3, &#xD;
         Appearance -&amp;gt; &amp;#034;Labeled&amp;#034;},&#xD;
        {{b, 1, &#xD;
          Style[&amp;#034;\!\(\*SubscriptBox[\(P\), \(i\)]\)&amp;#034;, &#xD;
           Darker[Purple]]}, -5, 10, Appearance -&amp;gt; &amp;#034;Labeled&amp;#034;}&#xD;
        ]&#xD;
      &#xD;
      }]&#xD;
&#xD;
These are two matter phase diagram plots with interesting conditions that affect the concavity of the phase boundary. Note that in the second diagram there exists a possible *triple point* at which the system switches to a liquid phase rather than remaining in its gaseous state (as shown in red). The possible ***triple point is (100,15)*** in temperature-pressure coordinates.&#xD;
&#xD;
 ![enter image description here][4]&#xD;
![enter image description here][5]&#xD;
&#xD;
*Conclusion*&#xD;
---------------------&#xD;
Four different forms of the Clausius-Clapeyron equation were used in the creation of these diagrams which plot the *general behavior* of the phase boundary. The first form of the Clausius-Clapeyron equation used was for magnetic systems. In magnetic systems, the phase boundary determined by the Clausius Clapeyron equation marks the transition between an ordered ferromagnetic or antiferromagnetic state below the phase line to a disordered paramagnetic state above the phase line in magnetic materials. This phase boundary is in expressed as a scalar applied magnetic field as a function of temperature. The other three forms of the Clausius-Clapeyron equations used in this program are for matter phase change systems. In these forms, the phase boundary marks the transition between a gaseous state below the phase line to a condensed matter state above the phase line. These phase boundaries are expressed in terms of a scalar vapor pressure as a function of temperature.   &#xD;
&#xD;
Further work could further the generalization of the Clausius-Clapeyron Relation to magnetic and similar thermodynamic systems and use other approximation techniques. Ultimately, programs like the one created here should be used in the experimental process when generating thermodynamic data and phase diagrams of real-world systems and materials. &#xD;
&#xD;
&#xD;
  [1]: http://community.wolfram.com//c/portal/getImageAttachment?filename=FullSizeRender%284%29.jpg&amp;amp;userId=1138767&#xD;
  [2]: http://community.wolfram.com//c/portal/getImageAttachment?filename=FullSizeRender%285%29.jpg&amp;amp;userId=1138767&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=FullSizeRender%286%29.jpg&amp;amp;userId=1138767&#xD;
  [4]: http://community.wolfram.com//c/portal/getImageAttachment?filename=FullSizeRender%283%29.jpg&amp;amp;userId=1138767&#xD;
  [5]: http://community.wolfram.com//c/portal/getImageAttachment?filename=FullSizeRender%282%29.jpg&amp;amp;userId=1138767</description>
    <dc:creator>Kemal Aziz</dc:creator>
    <dc:date>2017-07-06T21:34:57Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1135393">
    <title>[WSS17] Predicting Chemical Properties from Chemical  Structure</title>
    <link>https://community.wolfram.com/groups/-/m/t/1135393</link>
    <description>Predicting the properties of a chemical can be difficult and costly. Experiments are time consuming and expensive, and quantum mechanical simulations require a lot of computing time. It would be highly advantageous to predict properties from the structure alone. This method is known as QSPR or QSAR, and it is widely used in the pharmaceutical industry to predict properties of drugs. Here I will present a machine learning approach to QSAR.&#xD;
&#xD;
ChemicalData[] contains roughly 44,000 chemicals with a large amount of associated data. Given the sophisticated machine learning and neural network functions in Mathematica, it should be plausible to predict some of the data based on the structure. I selected chemicals containing nothing except Carbon, Hydrogen, Oxygen, and Nitrogen to get a simple subset of organic molecules. I removed compounds with insufficient data and compounds with non-standard isotopes. This created a subset of about 5500 chemicals. The properties predicted are melting point, boiling point, heat of vaporization, heat of fusion, and heat of combustion.&#xD;
&#xD;
The code used here can be found at GitHub:&#xD;
&#xD;
[https://github.com/MarcThomson/WSS2017_Project][1]&#xD;
&#xD;
# Downloading Data&#xD;
First, define the properties to get from the database.&#xD;
&#xD;
     molecularProperties = {&amp;#034;SMILES&amp;#034;,&#xD;
        					&amp;#034;BondCounts&amp;#034;,&#xD;
        					&amp;#034;VaporizationHeat&amp;#034;,&#xD;
        					&amp;#034;CombustionHeat&amp;#034;,&#xD;
        					&amp;#034;FusionHeat&amp;#034;,&#xD;
        					&amp;#034;FormalCharges&amp;#034;,&#xD;
        					&amp;#034;NetCharge&amp;#034;,&#xD;
        					&amp;#034;PartitionCoefficient&amp;#034;,&#xD;
        					&amp;#034;TopologicalPolarSurfaceArea&amp;#034;,&#xD;
        					&amp;#034;NonStandardIsotopeNumbers&amp;#034;,&#xD;
        					&amp;#034;AtomPositions&amp;#034;,&#xD;
        					&amp;#034;VertexTypes&amp;#034;,&#xD;
        					&amp;#034;BoilingPoint&amp;#034;,&#xD;
        					&amp;#034;MeltingPoint&amp;#034;,&#xD;
        					&amp;#034;MolarMass&amp;#034;,&#xD;
        					&amp;#034;AdjacencyMatrix&amp;#034;,&#xD;
        					&amp;#034;RotatableBondCount&amp;#034;,&#xD;
        					&amp;#034;HBondAcceptorCount&amp;#034;,&#xD;
        					&amp;#034;HBondDonorCount&amp;#034;,&#xD;
        					&amp;#034;BlackStructureDiagram&amp;#034;,&#xD;
        					&amp;#034;Name&amp;#034;};&#xD;
&#xD;
&#xD;
Once this is done, the data can be downloaded and formatted into an association of associations. The format is name-&amp;gt;{property-&amp;gt;value}&#xD;
   &#xD;
    totalSetRaw = &#xD;
       RandomSample[ChemicalData[], molecularProperties]; // Timing&#xD;
&#xD;
    propertiesExceptName = molecularProperties[[1 ;; -2]];&#xD;
    names = totalSetRaw[[;; , -1]];&#xD;
    totalSetBase = Association[Map[#1 -&amp;gt; propertiesExceptName &amp;amp;, names]];&#xD;
    totalSet = &#xD;
      Association[&#xD;
       Table[names[[i]] -&amp;gt; &#xD;
         Association[&#xD;
          Thread[totalSetBase[[names[[i]]]] -&amp;gt; &#xD;
            totalSetRaw[[i, ;; -2]]]], {i, 1, Length[totalSetRaw]}]];&#xD;
Finally, the set is filtered to make sure the chemicals satisfy the criteria.&#xD;
&#xD;
     requiredProperties[A_] := And[Not[MissingQ[A[&amp;#034;SMILES&amp;#034;]]],&#xD;
       							StringQ[A[&amp;#034;SMILES&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;AdjacencyMatrix&amp;#034;]]],&#xD;
       							ArrayQ[A[&amp;#034;AdjacencyMatrix&amp;#034;]],&#xD;
       							Total[Total[A[&amp;#034;AdjacencyMatrix&amp;#034;]]] &amp;gt; 0,&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;BoilingPoint&amp;#034;]]],&#xD;
       							QuantityQ[A[&amp;#034;BoilingPoint&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;MolarMass&amp;#034;]]],&#xD;
       							QuantityQ[A[&amp;#034;MolarMass&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;MeltingPoint&amp;#034;]]],&#xD;
       							QuantityQ[A[&amp;#034;MeltingPoint&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;AtomPositions&amp;#034;]]],&#xD;
       							ListQ[A[&amp;#034;AtomPositions&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;HBondDonorCount&amp;#034;]]],&#xD;
       							IntegerQ[A[&amp;#034;HBondDonorCount&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;HBondAcceptorCount&amp;#034;]]],&#xD;
       							IntegerQ[A[&amp;#034;HBondAcceptorCount&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;RotatableBondCount&amp;#034;]]],&#xD;
       							IntegerQ[A[&amp;#034;RotatableBondCount&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;TopologicalPolarSurfaceArea&amp;#034;]]],&#xD;
       							QuantityQ[A[&amp;#034;TopologicalPolarSurfaceArea&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;PartitionCoefficient&amp;#034;]]],&#xD;
       							NumberQ[A[&amp;#034;PartitionCoefficient&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;NetCharge&amp;#034;]]],&#xD;
       							NumberQ[A[&amp;#034;NetCharge&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;FormalCharges&amp;#034;]]],&#xD;
       							ListQ[A[&amp;#034;FormalCharges&amp;#034;]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;BondCounts&amp;#034;]]],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;VertexTypes&amp;#034;]]],&#xD;
       							SubsetQ[{&amp;#034;C&amp;#034;, &amp;#034;O&amp;#034;, &amp;#034;H&amp;#034;, &amp;#034;N&amp;#034;}, &#xD;
        DeleteDuplicates[A[&amp;#034;VertexTypes&amp;#034;]]],&#xD;
       							Length[DeleteDuplicates[A[&amp;#034;VertexTypes&amp;#034;]]] &amp;gt; 1,&#xD;
       							SubsetQ[A[&amp;#034;VertexTypes&amp;#034;], {&amp;#034;C&amp;#034;}],&#xD;
       &#xD;
       							Not[MissingQ[A[&amp;#034;NonStandardIsotopeNumbers&amp;#034;]]],&#xD;
       							And @@ &#xD;
        Map[Not[IntegerQ[#]] &amp;amp;, A[&amp;#034;NonStandardIsotopeNumbers&amp;#034;]]]&#xD;
     &#xD;
     &#xD;
     totalSet = Select[totalSet, requiredProperties[#] &amp;amp;];&#xD;
&#xD;
At this point, it is useful to save this set. Downloading this data can take many hours, so it is best to do it only once. &#xD;
#Feature Extraction&#xD;
The heart of this project is selecting the proper features from each molecule.&#xD;
## Subgraphs&#xD;
The first class of features is the subgraphs, which roughly correlates to functional groups. Molecular properties are generally dependent on these functional groups. Rather than look for functional groups directly, I chose to look for unique subgraphs of the molecule. Unique subgraphs have the same non-Hydrogen atoms and all their attached Hydrogens. &#xD;
&#xD;
The required code is:&#xD;
&#xD;
    graphSize = {1, 2, 3, 4};&#xD;
    &#xD;
    heavyVertices[g_, vertexTypes_] := &#xD;
     Select[VertexList[g], vertexTypes[[#]] != &amp;#034;H&amp;#034; &amp;amp;]&#xD;
    lightVertices[g_, vertexTypes_] := &#xD;
     Select[VertexList[g], vertexTypes[[#]] == &amp;#034;H&amp;#034; &amp;amp;]&#xD;
    &#xD;
    bondsBetween[i_, j_, g_] := 0 /; Equal[i, j]&#xD;
    bondsBetween[i_, j_, g_] := With[{vList = VertexList[g]},&#xD;
       							Length[&#xD;
         							Cases[&#xD;
          							EdgeList[g], vList[[i]] &amp;lt;-&amp;gt; vList[[j]]&#xD;
          								]&#xD;
         								] +&#xD;
        							Length[&#xD;
         							Cases[&#xD;
          							EdgeList[g], vList[[j]] &amp;lt;-&amp;gt; vList[[i]]&#xD;
          								]&#xD;
         								]&#xD;
       							] /; Not[Equal[i, j]]&#xD;
    &#xD;
    &#xD;
    subgraphList[graph_, graphSize_, vertexTypes_] := Distribute[&#xD;
       												NeighborhoodGraph[&#xD;
        												graph,&#xD;
        												heavyVertices[graph, vertexTypes],&#xD;
        												graphSize&#xD;
        												],&#xD;
       												List];&#xD;
    &#xD;
    hydrogenSubgraphList[graph_, graphSize_, vertexTypes_] :=&#xD;
      														Map[&#xD;
       														Subgraph[&#xD;
         														graph,&#xD;
         														ConnectedComponents[&#xD;
           														Subgraph[&#xD;
            														graph,&#xD;
            														{VertexList[#], &#xD;
             lightVertices[graph, vertexTypes]}&#xD;
            														]&#xD;
           														][[1]]] &amp;amp;,&#xD;
       														subgraphList[graph, graphSize, vertexTypes]];&#xD;
    &#xD;
    canonicalAdjM[g_, vertexTypes_] := {&#xD;
      								With[{&#xD;
        									sortedList = SortBy[&#xD;
          												Range[Length[VertexList[g]]],&#xD;
          												-KatzCentrality[g, 0.1][[#]] &amp;amp;]},&#xD;
       									Table[&#xD;
        										bondsBetween[i, j, g],&#xD;
        										{i, sortedList},&#xD;
        										{j, sortedList}]],&#xD;
      								With[{&#xD;
        									sortedList = SortBy[&#xD;
          												Range[Length[VertexList[g]]],&#xD;
          												-KatzCentrality[g, 0.1][[#]] &amp;amp;]},&#xD;
       									vertexTypes[[&#xD;
         											VertexList[g][[sortedList]]&#xD;
         											]]&#xD;
       									]&#xD;
      								}&#xD;
    &#xD;
    subAdjMList[graph_, graphSize_, vertexTypes_] := Map[&#xD;
      												canonicalAdjM[&#xD;
        													Subgraph[graph, #],&#xD;
        													vertexTypes] &amp;amp;,&#xD;
      												DeleteDuplicatesBy[&#xD;
       													hydrogenSubgraphList[graph, graphSize, vertexTypes],&#xD;
       													{&#xD;
         													{Sort[heavyVertices[#, vertexTypes]]},&#xD;
         													Length[lightVertices[#, vertexTypes]]&#xD;
         												} &amp;amp;&#xD;
       												]&#xD;
      												]&#xD;
For example, take the molecule  2-Hydroxy-4-Methoxybenzoic Acid. &#xD;
&#xD;
![2-Hydroxy-4-Methoxybenzoic Acid][2]&#xD;
&#xD;
    g = AdjacencyGraph[&#xD;
        ChemicalData[&amp;#034;2Hydroxy4MethoxybenzoicAcid&amp;#034;, &amp;#034;AdjacencyMatrix&amp;#034;]];&#xD;
     vl = ChemicalData[&amp;#034;2Hydroxy4MethoxybenzoicAcid&amp;#034;, &amp;#034;VertexTypes&amp;#034;];&#xD;
     Graph[AdjacencyGraph[#[[1]]], &#xD;
        VertexLabels -&amp;gt; Thread[Range[Length[#[[2]]]] -&amp;gt; #[[2]]]] &amp;amp; /@ &#xD;
      subAdjMList[g, graphSize, vl]&#xD;
&#xD;
&#xD;
The unique substructures are found to be: &#xD;
![2-Hydroxy-4-Methoxybenzoic Acid Structures][3]&#xD;
&#xD;
Some of these structures are carboxylic acids, alcohols, and ethers, whereas many others are unnamed.&#xD;
&#xD;
These features must be turned into numeric values for the machine learning algorithm. To do so, the subgraphs are turned into adjacency matrices. Adjacency matrices are not unique, so it is necessary to permute them into canonical form. This is done by ranking the vertices by Katz centrality, which seems to only return duplicate values if the nodes are identical. I would be interested to hear other methods of creating a canonical adjacency matrix.&#xD;
&#xD;
Once the adjacency matrices are created, they are grouped with a sorted list of atom types in the subgraph, and hashed to an integer. The subgraph is associated with the atom list to make sure that the features includes the atoms in each position. These hashes are arbitrary, but frequency of occurrence can be compared between molecules. The most commonly occurring hashes are found. Each molecule&amp;#039;s feature list is a vector of the occurrence number of the most common hashes/functional groups.&#xD;
## Topological Features&#xD;
Topological features can give insight into the connectivity and shape of the molecular graphs. I won&amp;#039;t go into detail as to how these features are calculated, as the formula can be found at http://www.codessa-pro.com/descriptors/&#xD;
&#xD;
The code can be found in the GitHub link, in the preprocessing file.&#xD;
## Geometric Features&#xD;
&#xD;
Geometry affects how well molecules fit together and bond together. The atom positions of a molecule can be coupled with their van der Waals radii to construct a geometric mesh. For instance:&#xD;
&#xD;
     rC = 170; rO = 152; rN = 155; rH = 120;&#xD;
     chem = Entity[&amp;#034;Chemical&amp;#034;, &amp;#034;2Hydroxy4MethoxybenzoicAcid&amp;#034;];&#xD;
     &#xD;
     atomPos1 = chem[&amp;#034;AtomPositions&amp;#034;];&#xD;
     radii1 = chem[&amp;#034;VertexTypes&amp;#034;] /. {&amp;#034;C&amp;#034; -&amp;gt; rC, &amp;#034;H&amp;#034; -&amp;gt; rH, &amp;#034;N&amp;#034; -&amp;gt; rN, &#xD;
         &amp;#034;O&amp;#034; -&amp;gt; rO};&#xD;
     rgn = RegionUnion[&#xD;
        Table[Ball[atomPos1[[i]], radii1[[i]]], {i, 1, Length[atomPos1]}]];&#xD;
     mesh = DiscretizeRegion[rgn];&#xD;
     meshConvex = ConvexHullMesh[MeshCoordinates[mesh]];&#xD;
     &#xD;
     &#xD;
     vMol = Volume[rgn];&#xD;
     saMol = Area[RegionBoundary[mesh]];&#xD;
     &#xD;
     PPList = (List @@ BoundingRegion[mesh, &amp;#034;MinOrientedCuboid&amp;#034;])[[2]];&#xD;
     vBox = Dot[Cross[PPList[[1]], PPList[[2]]], PPList[[3]]];&#xD;
     saBox = 2*Total[Norm /@ (Cross @@@ Subsets[PPList, {2}])];&#xD;
     edgesBox = &#xD;
       Norm /@ ((List @@ BoundingRegion[mesh, &amp;#034;MinOrientedCuboid&amp;#034;])[[2]]);&#xD;
     &#xD;
     vConvex = Volume[meshConvex];&#xD;
     saConvex = Area[RegionBoundary[meshConvex]];&#xD;
&#xD;
This extracts the volume and surface area of the mesh, minimum bounding box, and convex hull. These three meshes can be visualized.&#xD;
&#xD;
    mesh&#xD;
&#xD;
![&amp;#034;2-Hydroxy-4-Methoxybenzoic Acid Mesh&amp;#034;][4]&#xD;
&#xD;
    Show[RegionPlot3D[mesh, PlotStyle -&amp;gt; {LightBlue}, Boxed -&amp;gt; False], &#xD;
     Graphics3D[{Opacity[0.4], Red, &#xD;
       BoundingRegion[mesh, &amp;#034;MinOrientedCuboid&amp;#034;]}]]&#xD;
&#xD;
![&amp;#034;2-Hydroxy-4-Methoxybenzoic Acid Box Mesh&amp;#034;][5]&#xD;
&#xD;
    Show[RegionPlot3D[mesh, PlotStyle -&amp;gt; {LightBlue}, Boxed -&amp;gt; False], &#xD;
     RegionPlot3D[meshConvex, PlotStyle -&amp;gt; {Red, Opacity[0.4]}]]&#xD;
&#xD;
![&amp;#034;2-Hydroxy-4-Methoxybenzoic Acid Convex Mesh&amp;#034;][6]&#xD;
## Other Features&#xD;
A number of other features are also extracted. Many of these are directly in ChemicalData[], such as molar mass, hydrogen bonding sites, rotatable bonds, bond tallies, etc. A more detailed list can be found in the preprocessing file on github.&#xD;
&#xD;
# Prediction&#xD;
&#xD;
## Melting Point&#xD;
Primarily, I used these features to predict Melting Point, with mixed success. I used the predict function with random forest. The comparison plot is below:&#xD;
&#xD;
![Melting Point Comparison][7]&#xD;
&#xD;
The mean average error is 30 K, outperforms the model of Karthikeyan &amp;amp; Glen. It is much higher than the error found by Lazzus, who used a small number of features both structural and quantum mechanical. &#xD;
## Boiling Point&#xD;
Boiling point should be easier than melting point because the geometry of a molecule is less important. However, the random forest model performed fairly poorly, as shown in the comparison plot.&#xD;
![Boiling Point Comparison][8]&#xD;
&#xD;
The data are not distributed randomly about the y=x line, indicating that there is likely another feature influencing the results. I&amp;#039;m interested to hear what features users suspect might be affecting boiling point. The MAE here is an outrageous 50 K.&#xD;
## Heat of Fusion&#xD;
Using a similar prediction algorithm as above, the following comparison plot is produced. Because few compounds have heat of fusions measured, the sample size is smaller. Much like melting point predictions, there is a clear correlation, but the model does not fully explain the observations.&#xD;
![Heat of Fusion Comparison][9]&#xD;
&#xD;
The MAE is mediocre, at around 6.18 KJ/Mol.&#xD;
## Heat of Vaporization&#xD;
As enthalpy of vaporization is closely related to boiling point (See Trouton&amp;#039;s Rule), it would be expected that the issues with boiling point would reappear in predicting heat of vaporization. However, this is not the case .&#xD;
&#xD;
Prediction is done using a random forest model. The comparison plot is below. The data is immediately marked by a very prominent outlier, N-methyl pyrrole, with an actual heat of vaporization of 407 KJ/mol. This seems to be incorrect data, as NIST lists the heat of vaporization as 40.7 KJ/mol (see sources.) Aside from this outlier, the data is fairly well correlated, but as in the previous cases, the model is insufficient to fully predict heat of vaporization.&#xD;
![Heat of Vaporization Comparison][10]&#xD;
&#xD;
The MAE is once again mediocre, at 7.224 KJ/mol.&#xD;
## Heat of Combustion&#xD;
Finally, heat of combustion is predicted using a similar model. The comparison plot resulting from the random forest algorithm shows fairly strong prediction, with a few significant outliers. Generally however, data points are very close to the perfect prediction line.&#xD;
![Heat of Combustion Comparison][11]&#xD;
&#xD;
The MAE is 557.01 KJ/mol, but the data is generally much larger in magnitude. &#xD;
&#xD;
# Conclusion&#xD;
&#xD;
Generally, it seems reasonable to approximate chemical properties from the structure alone. It would be interesting to see whether a well designed neural network is able to preform better than the random forest algorithm. To further improve the model, different features should be examined to explain the failure of prediction of boiling point. Additionally, I am curious if the model can be broadened to apply to organic molecules with other constituent elements, such as sulfur, phosphorous, and the halogens. &#xD;
&#xD;
# References&#xD;
&#xD;
 - Winter, Mark. &amp;#034;The Periodic Table of the Elements.&amp;#034; The Periodic Table of the Elements by WebElements. N.p., n.d. Web. 04 July 2017. &amp;lt;https://www.webelements.com/&amp;gt;.&#xD;
&#xD;
 - Karthikeyan, M., Robert C. Glen, and Andreas Bender. &amp;#034;General Melting Point Prediction Based on a Diverse Compound Data Set and Artificial Neural Networks.&amp;#034; Journal of Chemical Information and Modeling, vol. 45, no. 3, 2005, pp. 581-590.&#xD;
&#xD;
 - &amp;#034;Theory: QSAR+ Descriptors.&amp;#034; Accelrys, n.d. Web. 04 July 2017. &amp;lt;http://www.ifm.liu.se/compchem/msi/doc/life/cerius46/qsar/theory_descriptors.html&amp;gt;.&#xD;
&#xD;
 - Katritzky, Alan, Mati Karelson, and Ruslan Petrukhin. &amp;#034;CODESSA PRO Classes of Descriptors.&amp;#034; CODESSA PRO. N.p., n.d. Web. &amp;lt;http://www.codessa-pro.com/descriptors/index.htm&amp;gt;.&#xD;
&#xD;
 - Lazzús, Juan A.&amp;#034;Neural Network Based on Quantum Chemistry for Predicting Melting Point of Organic Compounds.&amp;#034; Chinese Journal of Chemical Physics, vol.22, no.1, 2009, pp.19 - 26.&#xD;
&#xD;
 - Rogers, David, and Mathew Hahn. &amp;#034;Extended-Connectivity Fingerprints.&amp;#034; Journal of Chemical Information and Modeling, vol. 50, no. 5, 2010, pp. 742.&#xD;
&#xD;
 - Libretexts. &amp;#034;Trouton&amp;#039;s Rule.&amp;#034; Chemistry LibreTexts. Libretexts, 09 Apr. 2017. Web. 05 July 2017. &amp;lt;https://chem.libretexts.org/Core/Physical_and_Theoretical_Chemistry/Thermodynamics/Introduction_to_Thermodynamics/Trouton&amp;#039;s_rule&amp;gt;.&#xD;
&#xD;
 - Other thank you&amp;#039;s: Peter Barendse, Mark Boyer, and Bob Nachbar&#xD;
&#xD;
&#xD;
  [1]: https://github.com/MarcThomson/WSS2017_Project&#xD;
  [2]: http://community.wolfram.com//c/portal/getImageAttachment?filename=Structure.png&amp;amp;userId=1122694&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=Subgraphs.png&amp;amp;userId=1122694&#xD;
  [4]: http://community.wolfram.com//c/portal/getImageAttachment?filename=mesh.png&amp;amp;userId=1122694&#xD;
  [5]: http://community.wolfram.com//c/portal/getImageAttachment?filename=meshBox.png&amp;amp;userId=1122694&#xD;
  [6]: http://community.wolfram.com//c/portal/getImageAttachment?filename=meshConvex.png&amp;amp;userId=1122694&#xD;
  [7]: http://community.wolfram.com//c/portal/getImageAttachment?filename=MP.png&amp;amp;userId=1122694&#xD;
  [8]: http://community.wolfram.com//c/portal/getImageAttachment?filename=BP.png&amp;amp;userId=1122694&#xD;
  [9]: http://community.wolfram.com//c/portal/getImageAttachment?filename=HeatFus.png&amp;amp;userId=1122694&#xD;
  [10]: http://community.wolfram.com//c/portal/getImageAttachment?filename=HeatVap.png&amp;amp;userId=1122694&#xD;
  [11]: http://community.wolfram.com//c/portal/getImageAttachment?filename=HeatComb.png&amp;amp;userId=1122694</description>
    <dc:creator>Marc Thomson</dc:creator>
    <dc:date>2017-07-05T18:28:19Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/987710">
    <title>[NOGIF] The taut string as an anharmonic oscillator</title>
    <link>https://community.wolfram.com/groups/-/m/t/987710</link>
    <description>In other threads, we&amp;#039;ve seen some nice GIFs showing large amplitude motion of vibrating membranes. This author raised one objection, and here we present more details regarding possibilites in physical oscillators. For the sake of simplicity, we restrain ourselves to a one dimensional string, fixed at both ends. To apply numerical methods, the string is taken to be unit length $L=1$, unit stiffness $k_1=1$, and divided into 900 equal intervals of mass $m=1$. The applied tension at each interval is $ T =  k_1|\partial{ \bf{x}} / \partial{s} | + k_3|\partial{ \bf{x}} / \partial{s} |^3$, in the same conventions as [Large Amplitude Motion of a String][1]. Time evolution is calculated by a sequence of iterated, symplectic maps using a second order integrator, as in [Fourth Order Symplectic Integration][2] . We could change parameters of the evolution algorithm--specifically: the number of divisions or the order of the integrator--to obtain better results, but these choices satisfy our convergence criteria. Now the code.&#xD;
&#xD;
 - One partial step along the Hamiltonian manifold&#xD;
&#xD;
        SymplecticMap[qp_, cd_, ForceF_, dt_] := With[&#xD;
        {p1 = qp[[2]] + cd[[1]]*ForceF[qp[[1]]]*dt},&#xD;
        {qp[[1]] + cd[[2]]*p1*dt, p1}]&#xD;
&#xD;
 - Discrete Wave Time Evolver ( not used here )&#xD;
&#xD;
        EvolveWave[Amp_, k1_, k3_, cdList_, NGrid_, dt_, time_] := NestList[&#xD;
        Fold[SymplecticMap[#1, #2, Function[{a}, Forces[a, k1, k3, NGrid]],&#xD;
        dt] &amp;amp;, #, cdList  ] &amp;amp;,&#xD;
        IC[NGrid, Amp], time];&#xD;
&#xD;
 - Autocorrelation function&#xD;
&#xD;
        AutoCorrelation[Amp_, k1_, k3_, cdList_, NGrid_, dt_, time_] := &#xD;
        With[{ic = IC[NGrid, Amp][[1, All, 2]]},&#xD;
        Reap[Nest[(Sow[ #[[1, All, 2]].ic];&#xD;
        Fold[ SymplecticMap[#1, #2, Function[{a}, Forces[a, k1, k3, NGrid]], dt] &amp;amp;, #, cdList  ]) &amp;amp;,&#xD;
        IC[NGrid, Amp], time]][[2, 1]]/ic.ic ];&#xD;
&#xD;
 - String force function&#xD;
&#xD;
        Forces[qs_, k1_, k3_, NGrid_] := Prepend[Append[&#xD;
        Partition[qs, 3, 1] /. {x_, y_, z_} :&amp;gt; Plus[&#xD;
        NGrid*Subtract[x, y]*(k1   + k3 #^2) &amp;amp;@(Norm[x - y]*NGrid),&#xD;
        NGrid*Subtract[z, y]*(k1  + k3 #^2) &amp;amp;@(Norm[z - y]*NGrid)&#xD;
        ], {0, 0}], {0, 0}]&#xD;
&#xD;
 - Initial Condition&#xD;
&#xD;
        IC[NGrid_, Amp_] := {&#xD;
        {#/(NGrid - 1), Amp Sin[2 Pi #/(NGrid - 1)]} &amp;amp; /@ &#xD;
        Range[0, (NGrid - 1)], Table[{0, 0}, {NGrid}]}&#xD;
&#xD;
 - Integrator Parameters&#xD;
&#xD;
        CD2 = {{0, 1/2}, {1, 1/2}};&#xD;
        CD3 = {{7/24, 2/3}, {3/4, -2/3}, {-1/24, 1}};&#xD;
        CD4 = {{x + 1/2, 2 x + 1}, {-x, -4 x - 1}, {-x, 2 x + 1}, {x + 1/2, &#xD;
        0}} /. FindRoot[48 x^3 + 24 x^2 - 1, {x, 0.1756}];&#xD;
&#xD;
Combining all of these functions and variables, we will determine the affect of anharmonicty $(k_3 \neq 0)$ in the small $ k\_{3} $, small amplitude limit. Throughout the computer experiment, $ k_3 $ takes values $( 0.000, 0.0025, 0.005, 0.0075, 0.01 )$, while amplitude goes in steps between $0$ and $L/2$. &#xD;
&#xD;
First we check if our parameters are reasonable by plotting a makeshift stress strain graph&#xD;
&#xD;
    bound = NIntegrate[Sqrt[1 + (A 2 Pi Cos[2 Pi x])^2 ] /. A -&amp;gt; .5, {x, 0, 1}]&#xD;
    Show[&#xD;
    Plot[1 L - # L^3, {L, 0, 5}] &amp;amp; /@ {0.0 , 0.01, 0.0075, 0.005, 0.0025},&#xD;
    Graphics[{Dashed, Line[{{1, 0}, {1, 6}}], &#xD;
    Line[{{bound, 0}, {bound, 6}}]}],&#xD;
    ImageSize -&amp;gt; 700]&#xD;
&#xD;
![Stress Strain graph][3]&#xD;
&#xD;
Where minimum and maximum excursions are marked by dashed lines. Next we plot the theoretical autocorrelation function, along with numeric estimates for maximum and minimum excursion with the largest $k_3=0.01$ .&#xD;
&#xD;
    AbsoluteTiming[ ACMinTest = AutoCorrelation[.001, 1, -0.01, CD2, 900, .01, 3300];]&#xD;
    Out[]= {114.863, Null}&#xD;
    AbsoluteTiming[ ACMaxTest = AutoCorrelation[.5, 1, -0.01, CD2, 900, .01, 3300];]&#xD;
    Out[]= {111.181, Null}&#xD;
&#xD;
    Show[&#xD;
     Plot[Cos[2 Pi x], {x, 0, 1.1}, PlotStyle -&amp;gt; Directive[Thick, Red]],&#xD;
     ListPlot[{100 #/3000, ACMaxTest[[100 #]]} &amp;amp; /@ Range[33], PlotStyle -&amp;gt; Directive[Thick, Blue]],&#xD;
     ListPlot[{100 #/3000, ACMinTest[[100 #]]} &amp;amp; /@ Range[33],   PlotStyle -&amp;gt; Directive[Thick, Green]],&#xD;
     ImageSize -&amp;gt; 500]&#xD;
&#xD;
![Autocorrelation Comparison][4]&#xD;
&#xD;
In this image, the horizontal units are in multiples of $T_0$, the harmonic period. Low energy solutions closely follow the harmonic prediction, but already at amplitude $L/2$ the affect of  $k_3 \neq 0 $ is apparent as an increase in period of oscillation. &#xD;
&#xD;
Finally, we map across amplitude values and $k_3$ values ( for about 1.5 hrs of personal computer time ), to obtain the following plot:&#xD;
![Period vs. Energy][5]&#xD;
&#xD;
From this plot and a few quick linear fits, it becomes immediately apparent that  $$ T = T_1(1+c_1 k_3 E+ . . .) ,$$&#xD;
with $T_1$ a frequency near the harmonic.&#xD;
 &#xD;
 - Remarkably, this is what we hoped to find! &#xD;
&#xD;
The same low energy form as seen in a wide variety of one-dimensional oscillations, as per the derivation of Plane [Pendulum and Beyond...][6] (rejected by AJP only for being &amp;#034;Not of Interest&amp;#034;). We might as well throw out a wild conjecture to hunt down in 2017: could the form of the period expansion match at all orders of magnitude in energy? If the answer is provable yes, this is yet another nice result for building analogies between physical systems.  &#xD;
&#xD;
Now a three percent change in period may not seem like much, but consider that our experiment&amp;#039;s maximum $k_3$ is only one percent of $k_1$. We can reasonably expect with $k_3$ ten percent of $k_1$ to see change of period above ten percent. Alternatively if we choose a large amplitude of something wild like $5L$ ( as far as I could tell from the code, this is around the value in one of the other posts), we should expect to see a huge jump in the period, possibly with quadratic, cubic, or higher energy dependence. &#xD;
&#xD;
And watch out! If we&amp;#039;re talking about a real drum, and you hit it that hard... It could break!&#xD;
&#xD;
 1. Before the sign out, radio check.&#xD;
 2. What&amp;#039;s the frequency selector say?&#xD;
 3. It&amp;#039;s Neu! German drums, Hallogallo!&#xD;
 4. Watch out, Listen up! German Strings!&#xD;
 6. If just one adventurer, [censored], lost&#xD;
 7. could find mistaken, lunatic Goethe&#xD;
 8. crowing his multicolored megabytes &#xD;
 9. in a revolutionary theory of sound. &#xD;
&#xD;
&#xD;
  [1]: http://aapt.scitation.org/doi/abs/10.1119/1.1934919&#xD;
  [2]: http://inspirehep.net/record/281228/files/slac-pub-5071.pdf&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=StressStrain.png&amp;amp;userId=234448&#xD;
  [4]: http://community.wolfram.com//c/portal/getImageAttachment?filename=MinMax.png&amp;amp;userId=234448&#xD;
  [5]: http://community.wolfram.com//c/portal/getImageAttachment?filename=StringPeriodEnergy.png&amp;amp;userId=234448&#xD;
  [6]: https://arxiv.org/abs/1605.09102</description>
    <dc:creator>Brad Klee</dc:creator>
    <dc:date>2016-12-28T19:13:07Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/893945">
    <title>[JOB] Postdoc position in Mathematical Physics and QFT in Materials Science</title>
    <link>https://community.wolfram.com/groups/-/m/t/893945</link>
    <description>The Mathematical Physics Group of Castilla y León (http://mathphys.uva.es) offers a postdoc for a fixed term of 21 months. The group, composed of researchers from the Universities of Burgos, Salamanca and Valladolid, is currently working on mathematical models based in Quantum Field Theory to describe graphene-like materials and topological insulators.&#xD;
&#xD;
**Expertise in numerical and symbolic calculations with Mathematica is required.**&#xD;
&#xD;
Applications should be sent by e-mail to [mathphys.meseta@gmail.com][1] **before August 24th**, and should contain:&#xD;
1. CV, including publication record&#xD;
2. Presentation letter with research interests&#xD;
3. Two academic reference letters&#xD;
&#xD;
&#xD;
  [1]: http://mathphys.meseta@gmail.com</description>
    <dc:creator>Luismi Nieto</dc:creator>
    <dc:date>2016-07-25T17:38:37Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/380693">
    <title>video tutorial on Wolfram Language available</title>
    <link>https://community.wolfram.com/groups/-/m/t/380693</link>
    <description>Wolfram Research has prepared a 3 part video tutorial (starring me LOL as lecturer) on the Fundamentals of the Wolfram Language.&#xD;
&#xD;
it can be viewed at&#xD;
https://www.youtube.com/playlist?list=PLxn-kpJHbPx0-EbFgHdLUTkiPg9xVVNnR&#xD;
and at&#xD;
http://www.wolfram.com/broadcast/s?sx=Gaylord&#xD;
&#xD;
there are both a notebook and a pdf (42 pages long) containing the material presented in the video and it is a good idea to download it (links are provided to it at the sites), print it our and use it to follow along with the lecture. it also is a a good reference source to have around, and it&amp;#039;s free.&#xD;
&#xD;
i hope this is useful to the community. it sure was fun for me to learn the Wolfram Language (WL), to use it to write code in 4 books and to teach it for many years.&#xD;
&#xD;
happy hacking.</description>
    <dc:creator>Richard Gaylord</dc:creator>
    <dc:date>2014-10-30T13:40:59Z</dc:date>
  </item>
</rdf:RDF>

