Conversation
9fe965b to
1575dd9
Compare
| mnp-plasmon-cxx provides modern C++17 library for metallic nanoparticle optical response calculations. | ||
|
|
||
| CMake usage: | ||
| find_package(mnp_plasmon_cxx CONFIG REQUIRED) | ||
| target_link_libraries(your_app PRIVATE mnp_plasmon_cxx::mnp_plasmon_cxx) | ||
|
|
||
| C++ usage example: | ||
| #include "mnp_plasmon.hpp" | ||
| #include <iostream> | ||
|
|
||
| using namespace mnp; | ||
|
|
||
| SphereResponse response = MnpPlasmon::simulate_sphere_response( | ||
| "Au", // material (Au, Ag, Al) | ||
| 550.0, // wavelength in nm | ||
| 20.0, // radius in nm | ||
| 1.33 // medium refractive index (water) | ||
| ); | ||
|
|
||
| MnpPlasmon::print_response(response); | ||
|
|
||
| std::cout << "Extinction: " << response.c_ext << " nm²\n"; | ||
|
|
||
| Features: | ||
| - Modern C++17 with std::complex<double> | ||
| - Object-oriented design | ||
| - STL containers and algorithms | ||
| - Professional error handling | ||
| - Drude model for metallic dielectric function | ||
| - Rayleigh polarizability calculations | ||
| - Optical cross-sections (extinction, scattering, absorption) | ||
| - Material database (Au, Ag, Al) | ||
| - No external dependencies |
There was a problem hiding this comment.
Install time hint, not another README.
| mnp-plasmon-cxx provides modern C++17 library for metallic nanoparticle optical response calculations. | |
| CMake usage: | |
| find_package(mnp_plasmon_cxx CONFIG REQUIRED) | |
| target_link_libraries(your_app PRIVATE mnp_plasmon_cxx::mnp_plasmon_cxx) | |
| C++ usage example: | |
| #include "mnp_plasmon.hpp" | |
| #include <iostream> | |
| using namespace mnp; | |
| SphereResponse response = MnpPlasmon::simulate_sphere_response( | |
| "Au", // material (Au, Ag, Al) | |
| 550.0, // wavelength in nm | |
| 20.0, // radius in nm | |
| 1.33 // medium refractive index (water) | |
| ); | |
| MnpPlasmon::print_response(response); | |
| std::cout << "Extinction: " << response.c_ext << " nm²\n"; | |
| Features: | |
| - Modern C++17 with std::complex<double> | |
| - Object-oriented design | |
| - STL containers and algorithms | |
| - Professional error handling | |
| - Drude model for metallic dielectric function | |
| - Rayleigh polarizability calculations | |
| - Optical cross-sections (extinction, scattering, absorption) | |
| - Material database (Au, Ag, Al) | |
| - No external dependencies | |
| mnp-plasmon-cxx provides CMake targets: | |
| find_package(mnp_plasmon_cxx CONFIG REQUIRED) | |
| target_link_libraries(main PRIVATE mnp_plasmon_cxx::mnp_plasmon_cxx) |
Or remove it completely if the install command creates the same output heuristically.
| vcpkg_from_github( | ||
| OUT_SOURCE_PATH SOURCE_PATH | ||
| REPO galihru/mnpbem | ||
| REF v0.1.2 |
There was a problem hiding this comment.
| REF v0.1.2 | |
| REF v${VERSION} |
| vcpkg_from_github( | ||
| OUT_SOURCE_PATH SOURCE_PATH | ||
| REPO galihru/mnpbem | ||
| REF v0.1.2 |
There was a problem hiding this comment.
| REF v0.1.2 | |
| REF v${VERSION} |
| mnp-plasmon provides C library for metallic nanoparticle optical response calculations. | ||
|
|
||
| CMake usage: | ||
| find_package(mnp_plasmon CONFIG REQUIRED) | ||
| target_link_libraries(your_app PRIVATE mnp_plasmon::mnp_plasmon) | ||
|
|
||
| C usage example: | ||
| #include "mnp_plasmon.h" | ||
|
|
||
| sphere_response_t response = mnp_simulate_sphere_response( | ||
| "Au", // material (Au, Ag, Al) | ||
| 550.0, // wavelength in nm | ||
| 20.0, // radius in nm | ||
| 1.33 // medium refractive index (water) | ||
| ); | ||
|
|
||
| mnp_print_response(&response); | ||
| printf("Extinction cross-section: %.6e nm²\n", response.c_ext); | ||
|
|
||
| Features: | ||
| - Drude model for metallic dielectric function | ||
| - Rayleigh polarizability calculations | ||
| - Optical cross-sections (extinction, scattering, absorption) | ||
| - Material database (Au, Ag, Al) | ||
| - MSVC/GCC compatible | ||
| - No external dependencies |
There was a problem hiding this comment.
| mnp-plasmon provides C library for metallic nanoparticle optical response calculations. | |
| CMake usage: | |
| find_package(mnp_plasmon CONFIG REQUIRED) | |
| target_link_libraries(your_app PRIVATE mnp_plasmon::mnp_plasmon) | |
| C usage example: | |
| #include "mnp_plasmon.h" | |
| sphere_response_t response = mnp_simulate_sphere_response( | |
| "Au", // material (Au, Ag, Al) | |
| 550.0, // wavelength in nm | |
| 20.0, // radius in nm | |
| 1.33 // medium refractive index (water) | |
| ); | |
| mnp_print_response(&response); | |
| printf("Extinction cross-section: %.6e nm²\n", response.c_ext); | |
| Features: | |
| - Drude model for metallic dielectric function | |
| - Rayleigh polarizability calculations | |
| - Optical cross-sections (extinction, scattering, absorption) | |
| - Material database (Au, Ag, Al) | |
| - MSVC/GCC compatible | |
| - No external dependencies | |
| mnp-plasmon provides CMake targets: | |
| find_package(mnp_plasmon CONFIG REQUIRED) | |
| target_link_libraries(main PRIVATE mnp_plasmon::mnp_plasmon) |
| "documentation": "https://github.com/galihru/mnpbem/tree/main/cxx-mnp-plasmon", | ||
| "license": "GPL-3.0-only", | ||
| "dependencies": [ | ||
| "vcpkg-cmake", |
There was a problem hiding this comment.
| "vcpkg-cmake", | |
| { | |
| "name": "vcpkg-cmake", | |
| "host": true | |
| }, |
| "documentation": "https://github.com/galihru/mnpbem/tree/main/c-mnp-plasmon", | ||
| "license": "GPL-3.0-only", | ||
| "dependencies": [ | ||
| "vcpkg-cmake", |
There was a problem hiding this comment.
| "vcpkg-cmake", | |
| { | |
| "name": "vcpkg-cmake", | |
| "host": true | |
| }, |
| }, | ||
| { | ||
| "git-tree": "773c722dbdc261fa3d8538ae17235fbf65c2aee0", | ||
| "version": "0.1.1", | ||
| "port-version": 0 | ||
| }, | ||
| { | ||
| "git-tree": "925c740e6744d788c9b261481f8b338546d2d1ca", | ||
| "version": "0.1.0", | ||
| "port-version": 0 |
There was a problem hiding this comment.
One PR can add only one entry per port here here.
| }, | |
| { | |
| "git-tree": "773c722dbdc261fa3d8538ae17235fbf65c2aee0", | |
| "version": "0.1.1", | |
| "port-version": 0 | |
| }, | |
| { | |
| "git-tree": "925c740e6744d788c9b261481f8b338546d2d1ca", | |
| "version": "0.1.0", | |
| "port-version": 0 |
| }, | ||
| { | ||
| "git-tree": "5052bc76a4d0ff611e400498f99a6c6454705044", | ||
| "version": "0.1.1", | ||
| "port-version": 0 | ||
| }, | ||
| { | ||
| "git-tree": "282d0fb3ef38d4446189b4cfbf4d095a77f8685c", | ||
| "version": "0.1.0", | ||
| "port-version": 0 |
There was a problem hiding this comment.
| }, | |
| { | |
| "git-tree": "5052bc76a4d0ff611e400498f99a6c6454705044", | |
| "version": "0.1.1", | |
| "port-version": 0 | |
| }, | |
| { | |
| "git-tree": "282d0fb3ef38d4446189b4cfbf4d095a77f8685c", | |
| "version": "0.1.0", | |
| "port-version": 0 |
|
Hi @galihru, Thanks for your contribution! Unfortunately, this port doesn't yet meet our minimum project maturity requirement. But don't worry, you can still use vcpkg to install this library! Here are some alternatives you can try: Publish a collection of overlay portsSet up a repository to hold your port(s): mkdir my-vcpkg-ports
cd my-vcpkg-ports
git initFollow the registry structure and create a You don’t need to create a mkdir ports
# Put all your ports inside the "ports" folder
git add .
git commit -m "Add ports"Publish your repository somewhere public like https://github.com: git remote add origin [https://github.com/<my](https://github.com/%3Cmy) username>/my-vcpkg-ports
git push origin HEADAdd instructions for users in your repository’s Publish your port alongside your projectThis is great for library authors who want to include a vcpkg port within their project. Place your port somewhere in your repository, like: # Place ports in <repo root>/vcpkg/ports
mkdir -p vcpkg/ports
cp <path/to/my port> ./vcpkg/ports/
git add ./vcpkg/ports/.
git commit -m "Add vcpkg port files"
git pushAdd usage instructions in your repository’s NOTE: If you want the port to stay in sync with your project’s sources, instead of using the Publish a Git registryIf you want your users to fully benefit from vcpkg’s versioning features, create a Git registry. Check out our full guide on how to create a custom registry. Then add instructions for users in your repository’s Let us know if any of these options sound good to you or if you want help setting them up. You can still publish your port in the curated registry once it meets our maturity guidelines! |
No description provided.