54 if (
name ==
"override_index") {
64 if (
not name.starts_with(
"get_")) {
68 if (
name ==
"set_density") {
70 m_ek_species->set_node_density(m_index,
dens * m_conv_dens);
71 m_ek_species->ghost_communication();
74 if (
name ==
"get_density") {
75 auto const result = m_ek_species->get_node_density(m_index);
79 if (
name ==
"get_flux_vector") {
80 auto const result = m_ek_species->get_node_flux_vector(m_index);
84 if (
name ==
"get_is_boundary") {
85 auto const result = m_ek_species->get_node_is_boundary(m_index);
88 if (
name ==
"get_node_density_at_boundary") {
90 m_ek_species->get_node_is_density_boundary(m_index);
92 auto const result = m_ek_species->get_node_density_at_boundary(m_index);
98 if (
name ==
"set_node_density_at_boundary") {
99 if (
is_none(params.at(
"value"))) {
100 m_ek_species->remove_node_from_density_boundary(m_index);
103 m_ek_species->set_node_density_boundary(m_index,
dens);
107 if (
name ==
"get_node_flux_at_boundary") {
108 auto const boundary_opt = m_ek_species->get_node_is_flux_boundary(m_index);
110 auto const result = m_ek_species->get_node_flux_at_boundary(m_index);
116 if (
name ==
"set_node_flux_at_boundary") {
117 if (
is_none(params.at(
"value"))) {
118 m_ek_species->remove_node_from_flux_boundary(m_index);
122 if (
context()->get_comm().size() > 1) {
123 throw std::runtime_error(
"The number of ghostlayers should be > 1 "
124 "when using flux boundaries and mpi.");
127 "using flux boundaries and mpi.";
132 m_ek_species->set_node_flux_boundary(m_index,
flux);
virtual void parallel_try_catch(std::function< void()> const &cb) const =0