mirror of
https://github.com/triqs/dft_tools
synced 2024-12-26 14:23:38 +01:00
af084f5d59
- new parameter class : parameters are viewed as form, built in C++, and filled in C++/python. Each field of the form as a precise C++ type (erased using standard techniques). First tests ok, to be reread/checked. TODO : serialization is commented. Lead to long compilation time & large code due to boost::serialization. Use h5 when possible. - wrapper : - separated the converters of the wrapped type in the TRIQS library - necessary for parameters (it used outside an .so) and potentially other codes, outside an .so module
45 lines
845 B
C++
45 lines
845 B
C++
#include <triqs/parameters.hpp>
|
|
#include <iostream>
|
|
|
|
#include <vector>
|
|
#include <complex>
|
|
#include <string>
|
|
|
|
#include <boost/mpi.hpp>
|
|
#include <boost/mpi/environment.hpp>
|
|
#include <boost/mpi/communicator.hpp>
|
|
#include <boost/serialization/complex.hpp>
|
|
|
|
using namespace triqs::params;
|
|
|
|
int main(int argc, char* argv[]) {
|
|
boost::mpi::environment env(argc, argv);
|
|
boost::mpi::communicator world;
|
|
|
|
parameters P;
|
|
P.add_field("a", 1, "?")
|
|
.add_field("d", 2.0, "")
|
|
.add_field("s", "", "");
|
|
|
|
if (world.rank() == 0) {
|
|
P["a"] = long(1);
|
|
P["d"] = 2.7;
|
|
P["s"] = std::string("-14.3");
|
|
}
|
|
/*
|
|
* WITH SERIALIZATION
|
|
std::cout << "Before bcast rank " << world.rank() << " : " << P << std::endl ;
|
|
boost::mpi::broadcast(world,P,0);
|
|
std::cout << "After bcast rank " << world.rank() << " : " << P << std::endl ;
|
|
*/
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|