Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sr-tamim/entropy-calculator
Entropy and heat calculation in C++
https://github.com/sr-tamim/entropy-calculator
cpp cpp-programming entropy thermodynamics
Last synced: about 18 hours ago
JSON representation
Entropy and heat calculation in C++
- Host: GitHub
- URL: https://github.com/sr-tamim/entropy-calculator
- Owner: sr-tamim
- License: mit
- Created: 2024-03-06T19:42:13.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-05-31T13:59:51.000Z (8 months ago)
- Last Synced: 2024-05-31T15:19:20.166Z (8 months ago)
- Topics: cpp, cpp-programming, entropy, thermodynamics
- Language: C++
- Homepage:
- Size: 102 KB
- Stars: 0
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Entropy Calculator
This is a C++ project that calculates the entropy change of different elements in specified temparature difference.
## Project Structure
- `main.cpp`: The entry point of the application.
- `elements/`: This directory contains the definition of different elements.
- `headers/`: This directory contains the header files for the project.
- `bin/`: This directory contains the compiled binaries.
- `obj/`: This directory contains the object files generated during compilation.## How to Build
### Code::Blocks
1. Open the `entropy-calculator.cbp` file in Code::Blocks.
2. Click on the "Build" button or select "Build" from the "Build" menu.#### How to Run
After building the project, you can run the program by clicking on the "Run" button or selecting "Run" from the "Build" menu in Code::Blocks.
### Visual Studio Code (Linux)
1. Open the project in Visual Studio Code.
2. Press `F5` to build the project.
3. It will create a `task.json` file in the `.vscode` directory.
4. Configure the `task.json` file to build the project like this one,```cpp
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
```And finally press `F5` again to build and run the project.
## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
### How to add a new element
1. Create a new file in the `elements/` directory with the name of the element (e.g. `water.h` for water element)
2. Define the element in the file. Declare a class with the name of the element which inherits from the `baseElement` class.
3. Write constructor and set the values of the properties of the element.```cpp
// Example: water.h
#ifndef WATER_HPP_INCLUDED
#define WATER_HPP_INCLUDED
#include "../headers/baseElement.h"class water : public baseElement
{
public:
water()
{
setElementName("Water");
setSpecificHeatLiquid(4184);
setSpecificHeatSolid(2093);
setSpecificHeatGas(2010);
setLatentHeatOfFusion(334000);
setLatentHeatOfVaporization(2260000);
setMeltingPoint(273);
setBoilingPoint(373);
}
};
#endif // WATER_HPP_INCLUDED
```4. Include the header file in the `allElements.cpp` file located in the `headers/` directory.
```cpp
// include new element's header file
#include "../elements/water.h"// inside getElements() function, add the new element
// push the new element to the elements vector
elements.push_back(new water());
```## Issues
If you find any issues with the project, please open an issue in the repository. [Click here to open an issue](https://github.com/sr-tamim/entropy-calculator/issues)
## License
[MIT](https://choosealicense.com/licenses/mit/)
## Author
[SR Tamim](https://sr-tamim.vercel.app)
[![sr-tamim's Profilator](https://profilator.deno.dev/sr-tamim?v=1.0.0.alpha.4)](https://github.com/sr-tamim)
## Contributors
[![SharafatKarim's Profilator](https://profilator.deno.dev/SharafatKarim?v=1.0.0.alpha.4)](https://github.com/SharafatKarim)
[![NAYEMA26's Profilator](https://profilator.deno.dev/NAYEMA26?v=1.0.0.alpha.4)](https://github.com/NAYEMA26)
[![ahmubashshir's Profilator](https://profilator.deno.dev/ahmubashshir?v=1.0.0.alpha.4)](https://github.com/ahmubashshir)
[![titan000001's Profilator](https://profilator.deno.dev/titan000001?v=1.0.0.alpha.4)](https://github.com/titan000001)