Is a tool for doing numerical calculations fast and easy. It includes units, thermodynamic properties and many more.
Open this site Engineering-Solver.
Write a few statements like:
2+2
3 m to mm
3 m + 2 in to mm
force = 10 N
mass = 10 lb
acceleration = force / mass
acceleration to yard/s^2
You will notice you get instant results as you are typing your expressions.
Clone this repository and run the following command to install dependencies.
npm install
To test
npm run dev
To build
npm run build
There are two main areas, the input on the left and output on the right. A top navigation bar with 20 tabs and an example selector.
In the example selector you can find:
- Numbers
- Matrices
- Objects
- Variables
- Units
- Thermodynamic properties
- Psychrometric properties
You can work on any of the 20 tabs and your progress will be saved automatically after a few seconds of inactivity.
Does all the calculations and unit conversions. Here are some useful topics from the docs.
To call this function use MM('H2O')
and this will get an object with the data of the compound, including totalMass, number of atoms of each element, mass fraction for each element, etc. The formula can include a notation with parenthesis and dot notation for hydrates.
In:
borax = MM('Na2(B4O5(OH)4).8H2O');
borax.elements
borax.totalMass
borax.fraction
borax.fraction.Na
Out:
{"Na": 2, "B": 4, "O": 17, "H": 20}
381.37214 g / mol
{"Na": 0.12056344755545, "B": 0.11339055862864, "O": 0.71318738699686, "H": 0.052858606819051}
0.12056344755545
Used for calling PropsSI and HAPropsSI but the unit handling is done with MathJS, thus the functions are not exactly the same as in CoolProp.
In:
# Saturated vapor enthalpy [J/kg] of R134a at 25C
props('H', 'R134a', {T:25 celsius, Q:1})
Out: 4.1233395323186804e+5 J / kg
It can be useful to know what the phase of a given state point is.
In:
# Phase of Water at 1 atmosphere and 0% Quality
phase('Water', {P:1 atm, Q:0 %})
Out: twophase
In:
#Enthalpy (J per kg dry air) as a function of temperature, pressure,
# and relative humidity at dry bulb temperature T of 25C, pressure
# P of one atmosphere, relative humidity R of 50%
HAprops('H', {T:25 degC, P:1 atm, R:50%})
Out: 50423.45039102888 J / kg
CodeMirror is used for editing the mathjs code in the browser and includes:
- Syntax Highlighting
- Autocompletion
- Functions
- Physical Constants
- Prefixed Units
- Variables in Scope
- Drag and Drop text documents
- Other key bindings
- Find and replace Ctrl + F
- The rest can be found in CodeMirror: Reference Manual
Is used to do plots. Uses the main interface of plotly without many changes, but running first through mathjs simplifications.
Plot hello world example
plot([{x:1:5, y:2.^(1:5)}])
x = 0: pi/8: 2 pi;
plot([
{x:x, y:sin(x), name:"sin"},
{x:x, y:atan(x), name:"atan"}
])
sigma = 10;
beta = 2.7;
rho = 28;
lorenz(t, u) =
[
sigma * (u[2] - u[1]),
u[1] * (rho - u[3]) - u[2],
u[1] * u[2] - beta * u[3]
];
sol = solveODE(lorenz, [0, 100], [1, 1, 1]);
plot(
[{
x: flatten(sol.y[:,1]),
y: flatten(sol.y[:,2]),
z: flatten(sol.y[:,3]),
type: "scatter3d",
mode: "lines"
}])
- All calculations are done locally
- There is no server saving your calculations
- Don't run code that you don't trust