In 1937 appeared the first electronic circuit designed explicitly as a pulse-coded neural circuit. Its inventor Otto Herbert Arnold Schmitt described it in his 1937 PhD thesis: "An Electrical Theory of Nerve Impulse propagation". In 1938 he coined the name thermionic trigger for his invention, though at this time, it is best known as the Schmitt trigger. That circuit was built to study neural function better and test the "impulse propagation" theory in nerves. It behaves as a binary-output electrical circuit with a threshold function and can be considered the minimal building block for modelling hysteretic phenomena.
But let explain it better with a practical example: You have an environment that generates a contaminant (let´s call it SMOG). You accept a maximum (volume-averaged) concentration of 0.1. When that limit is reached, you inject clean air (10 m/s), and the injection takes place, so long as the SMOG concentration is below 0.07. The following diagram would represent that:
In the horizontal axis, you keep track of the SMOG concentration, and in the vertical axis, you keep track of the injection velocity of clean air.
You can interpret the diagram as the transfer function of the trigger controlling the injection system. The horizontal and vertical axes are the input and output voltage, respectively, T and −T are the switching thresholds, and M and −M are the output voltage levels.
You see that the inlet velocity has different outputs in the interval (0.07,0.1) depending on past values. If the injection of clean air was on, it continues to remain on. And if no injection was taking place, it remains off. This dependence of a system on its past is called hysteresis. And therefore, the Schmitt trigger can be conceived as the circuit that simulates the minimal possible hysteretic effect.
You can quickly implement the Schmitt trigger in Simcenter STAR-CCM+. With it, you can implement hysteretic effects in the program. In other words: memory. Please note that the memory, in this case, is not a static procedure where we store data in the computer but a dynamical one where the data is memorized by endlessly repeating the previous value.
What are the main ingredients? You need to select your input. In our case, a report gives us the SMOG contaminant's volumetric average: the Vol.AverageSMOGReport in the attached simulation. You now define the output, which will be the InletVelocity. And finally, you need to store the previous values of the InletVelocity field function. This keeping is done with the field mean monitor oldInletVelocity (explained here).
Finally, a word of caution. The OutputSignal is defined in terms of its previous value. Therefore, we recommend the following safety measure when defining the above functions. To wrap them with the alternateValue keyword, which provides a default value if the program can not find a value for it. With the example above, you would define the InletVelocityfield function as: