adamantine
Functions
adamantine.hh File Reference
#include <Boundary.hh>
#include <DataAssimilator.hh>
#include <ExperimentalData.hh>
#include <Geometry.hh>
#include <MaterialProperty.hh>
#include <MechanicalPhysics.hh>
#include <Microstructure.hh>
#include <PointCloud.hh>
#include <PostProcessor.hh>
#include <RayTracing.hh>
#include <ThermalPhysics.hh>
#include <ThermalPhysicsInterface.hh>
#include <Timer.hh>
#include <ensemble_management.hh>
#include <experimental_data_utils.hh>
#include <material_deposition.hh>
#include <types.hh>
#include <utils.hh>
#include <deal.II/arborx/bvh.h>
#include <deal.II/base/index_set.h>
#include <deal.II/base/mpi.h>
#include <deal.II/base/symmetric_tensor.h>
#include <deal.II/base/types.h>
#include <deal.II/distributed/cell_data_transfer.templates.h>
#include <deal.II/distributed/solution_transfer.h>
#include <deal.II/grid/filtered_iterator.h>
#include <deal.II/grid/grid_refinement.h>
#include <deal.II/lac/trilinos_sparse_matrix.h>
#include <deal.II/lac/vector_operation.h>
#include <deal.II/numerics/error_estimator.h>
#include <boost/algorithm/string.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <boost/property_tree/ptree.hpp>
#include <fstream>
#include <limits>
#include <memory>
#include <string>
#include <type_traits>
#include <unordered_map>
#include <cmath>
#include <iostream>

Go to the source code of this file.

Functions

template<int dim, int n_materials, int p_order, typename MaterialStates , typename MemorySpaceType , std::enable_if_t< std::is_same< MemorySpaceType, dealii::MemorySpace::Host >::value, int > = 0>
void output_pvtu (adamantine::PostProcessor< dim > &post_processor, unsigned int n_time_step, double time, std::unique_ptr< adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >> const &thermal_physics, dealii::LinearAlgebra::distributed::Vector< double, MemorySpaceType > &temperature, std::unique_ptr< adamantine::MechanicalPhysics< dim, n_materials, p_order, MaterialStates, MemorySpaceType >> const &mechanical_physics, dealii::LA::distributed::Vector< double, dealii::MemorySpace::Host > &displacement, adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > const &material_properties, std::vector< adamantine::Timer > &timers)
 
void initialize_timers (MPI_Comm const &communicator, std::vector< adamantine::Timer > &timers)
 
template<int dim, int n_materials, int p_order, int fe_degree, typename MaterialStates , typename MemorySpaceType , typename QuadratureType >
std::unique_ptr< adamantine::ThermalPhysicsInterface< dim, MemorySpaceType > > initialize (MPI_Comm const &communicator, boost::property_tree::ptree const &database, adamantine::Geometry< dim > &geometry, adamantine::Boundary const &boundary, adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &material_properties)
 
template<int dim, int n_materials, int p_order, int fe_degree, typename MaterialStates , typename MemorySpaceType >
std::unique_ptr< adamantine::ThermalPhysicsInterface< dim, MemorySpaceType > > initialize_quadrature (std::string const &quadrature_type, MPI_Comm const &communicator, boost::property_tree::ptree const &database, adamantine::Geometry< dim > &geometry, adamantine::Boundary const &boundary, adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &material_properties)
 
template<int dim, int n_materials, int p_order, typename MaterialStates , typename MemorySpaceType >
std::unique_ptr< adamantine::ThermalPhysicsInterface< dim, MemorySpaceType > > initialize_thermal_physics (unsigned int fe_degree, std::string const &quadrature_type, MPI_Comm const &communicator, boost::property_tree::ptree const &database, adamantine::Geometry< dim > &geometry, adamantine::Boundary const &boundary, adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &material_properties)
 
template<int dim, int n_materials, int p_order, typename MaterialStates , typename MemorySpaceType >
void refine_and_transfer (std::unique_ptr< adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >> &thermal_physics, std::unique_ptr< adamantine::MechanicalPhysics< dim, n_materials, p_order, MaterialStates, MemorySpaceType >> &mechanical_physics, adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &material_properties, dealii::DoFHandler< dim > &dof_handler, dealii::LA::distributed::Vector< double, MemorySpaceType > &solution)
 
template<int dim>
std::vector< typename dealii::parallel::distributed::Triangulation< dim >::active_cell_iterator > compute_cells_to_refine (dealii::parallel::distributed::Triangulation< dim > &triangulation, double const time, double const next_refinement_time, unsigned int const n_time_steps, std::vector< std::shared_ptr< adamantine::HeatSource< dim >>> const &heat_sources)
 
template<int dim, int n_materials, int p_order, int fe_degree, typename MaterialStates , typename MemorySpaceType >
void refine_mesh (std::unique_ptr< adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >> &thermal_physics, std::unique_ptr< adamantine::MechanicalPhysics< dim, n_materials, p_order, MaterialStates, MemorySpaceType >> &mechanical_physics, adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &material_properties, dealii::LA::distributed::Vector< double, MemorySpaceType > &solution, std::vector< std::shared_ptr< adamantine::HeatSource< dim >>> const &heat_sources, double const time, double const next_refinement_time, unsigned int const time_steps_refinement, boost::property_tree::ptree const &refinement_database)
 
template<int dim, int n_materials, int p_order, typename MaterialStates , typename MemorySpaceType >
void refine_mesh (std::unique_ptr< adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >> &thermal_physics, std::unique_ptr< adamantine::MechanicalPhysics< dim, n_materials, p_order, MaterialStates, MemorySpaceType >> &mechanical_physics, adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &material_properties, dealii::LA::distributed::Vector< double, MemorySpaceType > &solution, std::vector< std::shared_ptr< adamantine::HeatSource< dim >>> const &heat_sources, double const time, double const next_refinement_time, unsigned int const time_steps_refinement, boost::property_tree::ptree const &refinement_database)
 
template<int dim, int n_materials, int p_order, typename MaterialStates , typename MemorySpaceType >
std::pair< dealii::LinearAlgebra::distributed::Vector< double, dealii::MemorySpace::Host >, dealii::LinearAlgebra::distributed::Vector< double, dealii::MemorySpace::Host > > run (MPI_Comm const &communicator, boost::property_tree::ptree const &database, std::vector< adamantine::Timer > &timers)
 
void split_global_communicator (MPI_Comm global_communicator, unsigned int global_ensemble_size, MPI_Comm &local_communicator, unsigned int &local_ensemble_size, unsigned int &first_local_member, int &my_color)
 
template<int dim, int n_materials, int p_order, typename MaterialStates , typename MemorySpaceType >
std::vector< dealii::LA::distributed::BlockVector< double > > run_ensemble (MPI_Comm const &global_communicator, boost::property_tree::ptree const &database, std::vector< adamantine::Timer > &timers)
 

Function Documentation

◆ compute_cells_to_refine()

template<int dim>
std::vector<typename dealii::parallel::distributed::Triangulation< dim>::active_cell_iterator> compute_cells_to_refine ( dealii::parallel::distributed::Triangulation< dim > &  triangulation,
double const  time,
double const  next_refinement_time,
unsigned int const  n_time_steps,
std::vector< std::shared_ptr< adamantine::HeatSource< dim >>> const &  heat_sources 
)

Definition at line 534 of file adamantine.hh.

◆ initialize()

template<int dim, int n_materials, int p_order, int fe_degree, typename MaterialStates , typename MemorySpaceType , typename QuadratureType >
std::unique_ptr<adamantine::ThermalPhysicsInterface<dim, MemorySpaceType> > initialize ( MPI_Comm const &  communicator,
boost::property_tree::ptree const &  database,
adamantine::Geometry< dim > &  geometry,
adamantine::Boundary const &  boundary,
adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &  material_properties 
)

Definition at line 218 of file adamantine.hh.

◆ initialize_quadrature()

template<int dim, int n_materials, int p_order, int fe_degree, typename MaterialStates , typename MemorySpaceType >
std::unique_ptr<adamantine::ThermalPhysicsInterface<dim, MemorySpaceType> > initialize_quadrature ( std::string const &  quadrature_type,
MPI_Comm const &  communicator,
boost::property_tree::ptree const &  database,
adamantine::Geometry< dim > &  geometry,
adamantine::Boundary const &  boundary,
adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &  material_properties 
)

Definition at line 233 of file adamantine.hh.

◆ initialize_thermal_physics()

template<int dim, int n_materials, int p_order, typename MaterialStates , typename MemorySpaceType >
std::unique_ptr<adamantine::ThermalPhysicsInterface<dim, MemorySpaceType> > initialize_thermal_physics ( unsigned int  fe_degree,
std::string const &  quadrature_type,
MPI_Comm const &  communicator,
boost::property_tree::ptree const &  database,
adamantine::Geometry< dim > &  geometry,
adamantine::Boundary const &  boundary,
adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &  material_properties 
)

Definition at line 257 of file adamantine.hh.

◆ initialize_timers()

void initialize_timers ( MPI_Comm const &  communicator,
std::vector< adamantine::Timer > &  timers 
)
inline

Definition at line 189 of file adamantine.hh.

◆ output_pvtu()

template<int dim, int n_materials, int p_order, typename MaterialStates , typename MemorySpaceType , std::enable_if_t< std::is_same< MemorySpaceType, dealii::MemorySpace::Host >::value, int > = 0>
void output_pvtu ( adamantine::PostProcessor< dim > &  post_processor,
unsigned int  n_time_step,
double  time,
std::unique_ptr< adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >> const &  thermal_physics,
dealii::LinearAlgebra::distributed::Vector< double, MemorySpaceType > &  temperature,
std::unique_ptr< adamantine::MechanicalPhysics< dim, n_materials, p_order, MaterialStates, MemorySpaceType >> const &  mechanical_physics,
dealii::LA::distributed::Vector< double, dealii::MemorySpace::Host > &  displacement,
adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > const &  material_properties,
std::vector< adamantine::Timer > &  timers 
)

Definition at line 64 of file adamantine.hh.

◆ refine_and_transfer()

template<int dim, int n_materials, int p_order, typename MaterialStates , typename MemorySpaceType >
void refine_and_transfer ( std::unique_ptr< adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >> &  thermal_physics,
std::unique_ptr< adamantine::MechanicalPhysics< dim, n_materials, p_order, MaterialStates, MemorySpaceType >> &  mechanical_physics,
adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &  material_properties,
dealii::DoFHandler< dim > &  dof_handler,
dealii::LA::distributed::Vector< double, MemorySpaceType > &  solution 
)

Definition at line 308 of file adamantine.hh.

◆ refine_mesh() [1/2]

template<int dim, int n_materials, int p_order, int fe_degree, typename MaterialStates , typename MemorySpaceType >
void refine_mesh ( std::unique_ptr< adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >> &  thermal_physics,
std::unique_ptr< adamantine::MechanicalPhysics< dim, n_materials, p_order, MaterialStates, MemorySpaceType >> &  mechanical_physics,
adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &  material_properties,
dealii::LA::distributed::Vector< double, MemorySpaceType > &  solution,
std::vector< std::shared_ptr< adamantine::HeatSource< dim >>> const &  heat_sources,
double const  time,
double const  next_refinement_time,
unsigned int const  time_steps_refinement,
boost::property_tree::ptree const &  refinement_database 
)

Definition at line 599 of file adamantine.hh.

◆ refine_mesh() [2/2]

template<int dim, int n_materials, int p_order, typename MaterialStates , typename MemorySpaceType >
void refine_mesh ( std::unique_ptr< adamantine::ThermalPhysicsInterface< dim, MemorySpaceType >> &  thermal_physics,
std::unique_ptr< adamantine::MechanicalPhysics< dim, n_materials, p_order, MaterialStates, MemorySpaceType >> &  mechanical_physics,
adamantine::MaterialProperty< dim, n_materials, p_order, MaterialStates, MemorySpaceType > &  material_properties,
dealii::LA::distributed::Vector< double, MemorySpaceType > &  solution,
std::vector< std::shared_ptr< adamantine::HeatSource< dim >>> const &  heat_sources,
double const  time,
double const  next_refinement_time,
unsigned int const  time_steps_refinement,
boost::property_tree::ptree const &  refinement_database 
)

Definition at line 671 of file adamantine.hh.

◆ run()

template<int dim, int n_materials, int p_order, typename MaterialStates , typename MemorySpaceType >
std::pair<dealii::LinearAlgebra::distributed::Vector<double, dealii::MemorySpace::Host>, dealii::LinearAlgebra::distributed::Vector<double, dealii::MemorySpace::Host> > run ( MPI_Comm const &  communicator,
boost::property_tree::ptree const &  database,
std::vector< adamantine::Timer > &  timers 
)

Definition at line 744 of file adamantine.hh.

◆ run_ensemble()

template<int dim, int n_materials, int p_order, typename MaterialStates , typename MemorySpaceType >
std::vector<dealii::LA::distributed::BlockVector<double> > run_ensemble ( MPI_Comm const &  global_communicator,
boost::property_tree::ptree const &  database,
std::vector< adamantine::Timer > &  timers 
)

Definition at line 1423 of file adamantine.hh.

◆ split_global_communicator()

void split_global_communicator ( MPI_Comm  global_communicator,
unsigned int  global_ensemble_size,
MPI_Comm &  local_communicator,
unsigned int &  local_ensemble_size,
unsigned int &  first_local_member,
int &  my_color 
)

Definition at line 1367 of file adamantine.hh.