Skip to content

Commit e426060

Browse files
authored
Small refactoring NavierStokesOperatorBase (#1006)
Small changes to matrix free Operator. Use quadrature_point_indices() Rename phi to integrator Former-commit-id: ab122f1
1 parent 7d27f83 commit e426060

File tree

1 file changed

+23
-25
lines changed

1 file changed

+23
-25
lines changed

source/solvers/mf_navier_stokes_operators.cc

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,6 @@ template <int dim, typename number>
209209
void
210210
NavierStokesOperatorBase<dim, number>::compute_element_size()
211211
{
212-
FECellIntegrator phi(matrix_free);
213-
214212
const unsigned int n_cells =
215213
matrix_free.n_cell_batches() + matrix_free.n_ghost_cell_batches();
216214
element_size.resize(n_cells);
@@ -447,25 +445,25 @@ NavierStokesOperatorBase<dim, number>::evaluate_non_linear_term(
447445
const VectorType &newton_step)
448446
{
449447
const unsigned int n_cells = matrix_free.n_cell_batches();
450-
FECellIntegrator phi(matrix_free);
448+
FECellIntegrator integrator(matrix_free);
451449

452-
nonlinear_previous_values.reinit(n_cells, phi.n_q_points);
453-
nonlinear_previous_gradient.reinit(n_cells, phi.n_q_points);
454-
nonlinear_previous_hessian_diagonal.reinit(n_cells, phi.n_q_points);
450+
nonlinear_previous_values.reinit(n_cells, integrator.n_q_points);
451+
nonlinear_previous_gradient.reinit(n_cells, integrator.n_q_points);
452+
nonlinear_previous_hessian_diagonal.reinit(n_cells, integrator.n_q_points);
455453

456454
for (unsigned int cell = 0; cell < n_cells; ++cell)
457455
{
458-
phi.reinit(cell);
459-
phi.read_dof_values_plain(newton_step);
460-
phi.evaluate(EvaluationFlags::values | EvaluationFlags::gradients |
461-
EvaluationFlags::hessians);
456+
integrator.reinit(cell);
457+
integrator.read_dof_values_plain(newton_step);
458+
integrator.evaluate(EvaluationFlags::values | EvaluationFlags::gradients |
459+
EvaluationFlags::hessians);
462460

463-
for (unsigned int q = 0; q < phi.n_q_points; ++q)
461+
for (const auto q : integrator.quadrature_point_indices())
464462
{
465-
nonlinear_previous_values(cell, q) = phi.get_value(q);
466-
nonlinear_previous_gradient(cell, q) = phi.get_gradient(q);
463+
nonlinear_previous_values(cell, q) = integrator.get_value(q);
464+
nonlinear_previous_gradient(cell, q) = integrator.get_gradient(q);
467465
nonlinear_previous_hessian_diagonal(cell, q) =
468-
phi.get_hessian_diagonal(q);
466+
integrator.get_hessian_diagonal(q);
469467
}
470468
}
471469
}
@@ -477,17 +475,17 @@ NavierStokesOperatorBase<dim, number>::
477475
const VectorType &time_derivative_previous_solutions)
478476
{
479477
const unsigned int n_cells = matrix_free.n_cell_batches();
480-
FECellIntegrator phi(matrix_free);
478+
FECellIntegrator integrator(matrix_free);
481479

482-
time_derivatives_previous_solutions.reinit(n_cells, phi.n_q_points);
480+
time_derivatives_previous_solutions.reinit(n_cells, integrator.n_q_points);
483481

484482
for (unsigned int cell = 0; cell < n_cells; ++cell)
485483
{
486-
phi.reinit(cell);
487-
phi.read_dof_values_plain(time_derivative_previous_solutions);
488-
phi.evaluate(EvaluationFlags::values);
489-
for (unsigned int q = 0; q < phi.n_q_points; ++q)
490-
time_derivatives_previous_solutions(cell, q) += phi.get_value(q);
484+
integrator.reinit(cell);
485+
integrator.read_dof_values_plain(time_derivative_previous_solutions);
486+
integrator.evaluate(EvaluationFlags::values);
487+
for (const auto q : integrator.quadrature_point_indices())
488+
time_derivatives_previous_solutions(cell, q) += integrator.get_value(q);
491489
}
492490
}
493491

@@ -591,7 +589,7 @@ NavierStokesSUPGPSPGOperator<dim, number>::do_cell_integral_local(
591589

592590
const auto h = integrator.read_cell_data(this->get_element_size());
593591

594-
for (unsigned int q = 0; q < integrator.n_q_points; ++q)
592+
for (const auto q : integrator.quadrature_point_indices())
595593
{
596594
// Evaluate source term function
597595
Tensor<1, dim + 1, VectorizedArray<number>> source_value;
@@ -731,7 +729,7 @@ NavierStokesSUPGPSPGOperator<dim, number>::local_evaluate_residual(
731729

732730
const auto h = integrator.read_cell_data(this->get_element_size());
733731

734-
for (unsigned int q = 0; q < integrator.n_q_points; ++q)
732+
for (const auto q : integrator.quadrature_point_indices())
735733
{
736734
// Evaluate source term function
737735
Tensor<1, dim + 1, VectorizedArray<number>> source_value;
@@ -864,7 +862,7 @@ NavierStokesTransientSUPGPSPGOperator<dim, number>::do_cell_integral_local(
864862
const double sdt = 1. / dt;
865863
Vector<double> bdf_coefs = bdf_coefficients(method, time_steps_vector);
866864

867-
for (unsigned int q = 0; q < integrator.n_q_points; ++q)
865+
for (const auto q : integrator.quadrature_point_indices())
868866
{
869867
// Evaluate source term function
870868
Tensor<1, dim + 1, VectorizedArray<number>> source_value;
@@ -1023,7 +1021,7 @@ NavierStokesTransientSUPGPSPGOperator<dim, number>::local_evaluate_residual(
10231021
const double sdt = 1. / dt;
10241022
Vector<double> bdf_coefs = bdf_coefficients(method, time_steps_vector);
10251023

1026-
for (unsigned int q = 0; q < integrator.n_q_points; ++q)
1024+
for (const auto q : integrator.quadrature_point_indices())
10271025
{
10281026
// Evaluate source term function
10291027
Tensor<1, dim + 1, VectorizedArray<number>> source_value;

0 commit comments

Comments
 (0)