Skip to content

Commit 197c73c

Browse files
authored
Merge pull request #3650 from dknez/preevaluate_parametrized_function_cleanup
Added RBParametrizedFunction::preevaluate_parametrized_function_cleanup()
2 parents 4bb2847 + 57611c0 commit 197c73c

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

include/reduced_basis/rb_parametrized_function.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,14 @@ class RBParametrizedFunction
336336
const std::vector<subdomain_id_type> & sbd_ids,
337337
const std::vector<boundary_id_type> & boundary_ids);
338338

339+
/**
340+
* Virtual function that performs cleanup after each
341+
* "preevaluate parametrized function" evaluation. This function
342+
* is a no-op by default, but it can be overridden in subclasses
343+
* in order to do necessary cleanup, such as clearing cached data.
344+
*/
345+
virtual void preevaluate_parametrized_function_cleanup();
346+
339347
/**
340348
* Storage for pre-evaluated values. The indexing is given by:
341349
* parameter index --> point index --> component index --> value.

src/reduced_basis/rb_parametrized_function.C

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,8 @@ void RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(const RBP
484484
all_xyz_perturb_vec,
485485
phi_i_qp_vec,
486486
preevaluated_values);
487+
488+
preevaluate_parametrized_function_cleanup();
487489
}
488490

489491
void RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(const RBParameters & mu,
@@ -639,6 +641,8 @@ void RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(con
639641
all_xyz_perturb_vec,
640642
phi_i_qp_vec,
641643
preevaluated_values);
644+
645+
preevaluate_parametrized_function_cleanup();
642646
}
643647

644648
void RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_nodes(const RBParameters & mu,
@@ -677,6 +681,8 @@ void RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_nodes(con
677681
node_ids_vec,
678682
boundary_ids_vec,
679683
preevaluated_values);
684+
685+
preevaluate_parametrized_function_cleanup();
680686
}
681687

682688
Number RBParametrizedFunction::lookup_preevaluated_value_on_mesh(unsigned int comp,
@@ -823,6 +829,11 @@ void RBParametrizedFunction::initialize_spatial_indices(const std::vector<std::v
823829
// No-op by default
824830
}
825831

832+
void RBParametrizedFunction::preevaluate_parametrized_function_cleanup()
833+
{
834+
// No-op by default
835+
}
836+
826837
const std::set<boundary_id_type> & RBParametrizedFunction::get_parametrized_function_boundary_ids() const
827838
{
828839
return _parametrized_function_boundary_ids;

0 commit comments

Comments
 (0)