Page MenuHomec4science

test_features.cpp
No OneTemporary

File Metadata

Created
Mon, May 13, 02:35

test_features.cpp

/**
* @file
*
* @author Lucas Frérot <lucas.frerot@epfl.ch>
*
* @section LICENSE
*
* Copyright (©) 2017 EPFL (Ecole Polytechnique Fédérale de
* Lausanne) Laboratory (LSMS - Laboratoire de Simulation en Mécanique des
* Solides)
*
* Tamaas is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* Tamaas 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 Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Tamaas. If not, see <http://www.gnu.org/licenses/>.
*
*/
/* -------------------------------------------------------------------------- */
#include "kelvin.hh"
#include "model.hh"
#include "model_type.hh"
#include "volume_potential.hh"
#include "wrap.hh"
/* -------------------------------------------------------------------------- */
__BEGIN_TAMAAS__
namespace wrap {
template <model_type type, UInt tensor_order>
void wrapKelvin(py::module& mod) {
constexpr UInt dim = model_type_traits<type>::dimension;
py::class_<Kelvin<type, tensor_order>>(mod, "Kelvin")
.def(py::init<Model*>())
.def("apply",
[](const Kelvin<type, tensor_order>& engine, Grid<Real, dim>& in,
Grid<Real, dim>& out) {
engine.apply(in, out);
});
}
/// Wrap temporary features for testing
void wrapTestFeatures(py::module& mod) {
auto test_module = mod.def_submodule("_test_features");
test_module.doc() =
"Module for testing new features.\n"
"DISCLAIMER: this API is subject to frequent and unannounced changes "
"and should **not** be relied upon!";
wrapKelvin<model_type::volume_2d, 2>(test_module);
}
}
__END_TAMAAS__

Event Timeline