Giter VIP home page Giter VIP logo

dvd101x / engineering-solver Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 3.0 6.67 MB

Engineering Solver helps to do calculations with units and thermodynamic properties in a very fast way.

Home Page: https://dvd101x.github.io/Engineering-Solver/

License: MIT License

JavaScript 92.96% HTML 4.75% CSS 2.29%
math mathjs coolprop thermodynamics engineering calculator javascript psychrometrics humidity dew-point enthalpy units-of-measurement units-measures-converter javascipt chemistry periodic-table-of-elements codemirror-editor codemirror-mode plot plotly

engineering-solver's Introduction

Engineering-Solver

Is a tool for doing numerical calculations fast and easy. It includes units, thermodynamic properties and many more.

MainFigure

Quick start

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.

Install and develop locally

Clone this repository and run the following command to install dependencies.

npm install

To test

npm run dev

To build

npm run build

Interface

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.

Chemistry molar mass: MM()

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.

Fluid Properties: props()

In:

# Saturated vapor enthalpy [J/kg] of R134a at 25C
props('H', 'R134a', {T:25 celsius, Q:1})

Out: 4.1233395323186804e+5 J / kg

References

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

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)}])

HelloWorldPlot

Plot functions

x = 0: pi/8: 2 pi;

plot([
  {x:x, y:sin(x), name:"sin"},
  {x:x, y:atan(x), name:"atan"}
])

Two traces plot

Plot advanced functions

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"
}])

Lorenz Plot

Warnings

  • All calculations are done locally
  • There is no server saving your calculations
  • Don't run code that you don't trust

engineering-solver's People

Contributors

dvd101x avatar felipec avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

engineering-solver's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.