Skip to content

Commit

Permalink
split web interface from nmie-applied (#74)
Browse files Browse the repository at this point in the history
* split web interface from nmie-applied

* add windows

* add windows to actions

* more build tests

* test asser

* fix assert
  • Loading branch information
kostyfisik authored Jan 10, 2024
1 parent e668bb5 commit 6e14214
Show file tree
Hide file tree
Showing 14 changed files with 1,343 additions and 1,020 deletions.
18 changes: 17 additions & 1 deletion .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ env:
BUILD_TYPE: Release

jobs:
macosPython:
macos_Python:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v3
Expand All @@ -23,6 +23,18 @@ jobs:
working-directory: ${{github.workspace}}
run: tox run

# windows_Python:
# runs-on: windows-latest
# steps:
# - uses: actions/checkout@v3

# - name: Install tox
# run: pip3 install tox

# - name: Python initial test
# working-directory: ${{github.workspace}}
# run: tox run

ubuntu_Python_wo_Boost:
runs-on: ubuntu-latest
steps:
Expand Down Expand Up @@ -68,6 +80,10 @@ jobs:
working-directory: ${{github.workspace}}/build
run: ctest -C ${{env.BUILD_TYPE}} --output-on-failure

- name: isBuilding without cmake
working-directory: ${{github.workspace}}/examples
run: ./go-cc-examples.sh

ctest_wo_Boost:
runs-on: ubuntu-latest
steps:
Expand Down
289 changes: 152 additions & 137 deletions examples/example-get-Mie.cc

Large diffs are not rendered by default.

72 changes: 39 additions & 33 deletions examples/example-minimal.cc
Original file line number Diff line number Diff line change
@@ -1,63 +1,69 @@
//**********************************************************************************//
// Copyright (C) 2009-2015 Ovidio Pena <[email protected]> //
// Copyright (C) 2013-2015 Konstantin Ladutenko <[email protected]> //
// Copyright (C) 2009-2015 Ovidio Pena <[email protected]> // Copyright
// (C) 2013-2015 Konstantin Ladutenko <[email protected]> //
// //
// This file is part of scattnlay //
// This file is part of scattnlay //
// //
// This program is free software: you can redistribute it and/or modify //
// it under the terms of the GNU General Public License as published by //
// the Free Software Foundation, either version 3 of the License, or //
// (at your option) any later version. //
// This program is free software: you can redistribute it and/or modify // it
// under the terms of the GNU General Public License as published by // the
// Free Software Foundation, either version 3 of the License, or // (at your
// option) any later version. //
// //
// This program is distributed in the hope that it will be useful, //
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
// GNU General Public License for more details. //
// This program is distributed in the hope that it will be useful, // but
// WITHOUT ANY WARRANTY; without even the implied warranty of //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU
// General Public License for more details. //
// //
// The only additional remark is that we expect that all publications //
// describing work using this software, or all commercial products //
// using it, cite the following reference: //
// [1] O. Pena and U. Pal, "Scattering of electromagnetic radiation by //
// a multilayered sphere," Computer Physics Communications, //
// vol. 180, Nov. 2009, pp. 2348-2354. //
// The only additional remark is that we expect that all publications //
// describing work using this software, or all commercial products // using
// it, cite the following reference: //
// [1] O. Pena and U. Pal, "Scattering of electromagnetic radiation by //
// a multilayered sphere," Computer Physics Communications, // vol. 180,
// Nov. 2009, pp. 2348-2354. //
// //
// You should have received a copy of the GNU General Public License //
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
// You should have received a copy of the GNU General Public License // along
// with this program. If not, see <http://www.gnu.org/licenses/>. //
//**********************************************************************************//
// This program evaluates absorption of a triple layered nanoparticle
#include <cassert>
#include <complex>
#include <cstdio>
#include <iomanip>
#include <sstream>
#include <string>
#include "../src/nmie-applied.hpp"

#include "../src/nmie-applied-impl.hpp"

int main(int , char **) {
int main(int, char**) {
try {
nmie::MultiLayerMieApplied<double> multi_layer_mie;
const std::complex<double> epsilon_Si(18.4631066585, 0.6259727805);
const std::complex<double> epsilon_Ag(-8.5014154589, 0.7585845411);
const std::complex<double> index_Si = std::sqrt(epsilon_Si);
const std::complex<double> index_Ag = std::sqrt(epsilon_Ag);
double WL=500; //nm
double core_width = 5.27; //nm Si
double inner_width = 8.22; //nm Ag
double outer_width = 67.91; //nm Si
core_width = 5.27; //nm Si
inner_width = 8.22; //nm Ag
outer_width = 67.91; //nm Si
double WL = 500; // nm
double core_width = 5.27; // nm Si
double inner_width = 8.22; // nm Ag
double outer_width = 67.91; // nm Si
core_width = 5.27; // nm Si
inner_width = 8.22; // nm Ag
outer_width = 67.91; // nm Si
multi_layer_mie.AddTargetLayer(core_width, index_Si);
multi_layer_mie.AddTargetLayer(inner_width, index_Ag);
multi_layer_mie.AddTargetLayer(outer_width, index_Si);
multi_layer_mie.SetWavelength(WL);
multi_layer_mie.RunMieCalculation();
double Qabs = multi_layer_mie.GetQabs();
printf("Qabs = %g\n", Qabs);
} catch( const std::invalid_argument &ia ) {
std::stringstream stream;
stream << std::fixed << std::setprecision(10) << Qabs;
auto Qabs_str = stream.str();
printf("Qabs = %s\n", Qabs_str.c_str());
assert(Qabs_str == "3.1415556911");

} catch (const std::invalid_argument& ia) {
// Will catch if multi_layer_mie fails or other errors.
std::cerr << "Invalid argument: " << ia.what() << std::endl;
return -1;
}
return 0;
return 0;
}


22 changes: 11 additions & 11 deletions examples/go-cc-examples.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,23 @@ PROGRAM='scattnlay-example.bin'
# echo Compilation done. Running...
# time ./$PROGRAM

file=test-surf-integral.cc
echo Compile $file with gcc
rm -f $PROGRAM
g++ -Ofast -std=c++11 $file ../src/shell-generator.cc -lm -lrt -o $PROGRAM -march=native -mtune=native -msse4.2
# g++ -Ofast -std=c++11 $file ../src/nmie.cc ../src/nmie-applied.cc ../src/shell-generator.cc -lm -lrt -o $PROGRAM -march=native -mtune=native -msse4.2
echo Compilation done. Running...
./$PROGRAM


# file=example-minimal.cc
# file=test-surf-integral.cc
# echo Compile $file with gcc
# rm -f $PROGRAM
# g++ -Ofast -std=c++11 $file ../src/nmie.cc ../src/nmie-applied.cc -lm -lrt -o $PROGRAM -march=native -mtune=native -msse4.2
# g++ -Ofast -std=c++11 $file ../src/shell-generator.cc -lm -lrt -o $PROGRAM -march=native -mtune=native -msse4.2
# # g++ -Ofast -std=c++11 $file ../src/nmie.cc ../src/nmie-applied.cc ../src/shell-generator.cc -lm -lrt -o $PROGRAM -march=native -mtune=native -msse4.2
# echo Compilation done. Running...
# ./$PROGRAM


file=example-minimal.cc
echo Compile $file with gcc
rm -f $PROGRAM
g++ -Ofast -std=c++11 $file ../src/nmie.cc ../src/nmie-applied.cc -lm -o $PROGRAM -march=native -mtune=native -msse4.2
echo Compilation done. Running...
./$PROGRAM


# file=example-get-Mie.cc
# echo Compile $file with gcc
# rm -f $PROGRAM
Expand Down
Loading

0 comments on commit 6e14214

Please sign in to comment.