Skip to content

Commit 25c3b36

Browse files
committed
Split set velocity and set acceleration
into two separate methods and use const reference
1 parent d75e23c commit 25c3b36

10 files changed

+46
-37
lines changed

src/elch/4C_elch_moving_boundary_algorithm.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@ void ElCh::MovingBoundaryAlgorithm::time_loop()
112112
{
113113
// transfer convective velocity = fluid velocity - grid velocity
114114
scatra_field()->set_convective_velocity(*fluid_field()->convective_vel());
115-
scatra_field()->set_velocity_field(fluid_field()->hist(), fluid_field()->convective_vel());
115+
scatra_field()->set_velocity_field(*fluid_field()->convective_vel());
116+
scatra_field()->set_acceleration_field(*fluid_field()->hist());
116117
}
117118

118119
// transfer moving mesh data
@@ -266,7 +267,8 @@ void ElCh::MovingBoundaryAlgorithm::solve_scatra()
266267
{
267268
// transfer convective velocity = fluid velocity - grid velocity
268269
scatra_field()->set_convective_velocity(*fluid_field()->convective_vel());
269-
scatra_field()->set_velocity_field(fluid_field()->hist(), fluid_field()->convective_vel());
270+
scatra_field()->set_velocity_field(*fluid_field()->convective_vel());
271+
scatra_field()->set_acceleration_field(*fluid_field()->hist());
270272
}
271273
}
272274
break;

src/fs3i/4C_fs3i_fps3i_partitioned.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ void FS3I::PartFPS3I::set_velocity_fields()
652652
for (unsigned i = 0; i < scatravec_.size(); ++i)
653653
{
654654
scatravec_[i]->scatra_field()->set_convective_velocity(*convel[i]);
655-
scatravec_[i]->scatra_field()->set_velocity_field(nullptr, vel[i]);
655+
scatravec_[i]->scatra_field()->set_velocity_field(*vel[i]);
656656
}
657657
break;
658658
}

src/fs3i/4C_fs3i_partitioned.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -704,8 +704,7 @@ void FS3I::PartFS3I::set_velocity_fields() const
704704
{
705705
scatravec_[i]->scatra_field()->set_convective_velocity(
706706
*vol_mortar_master_to_slavei(i, convel[i]));
707-
scatravec_[i]->scatra_field()->set_velocity_field(
708-
nullptr, vol_mortar_master_to_slavei(i, vel[i]));
707+
scatravec_[i]->scatra_field()->set_velocity_field(*vol_mortar_master_to_slavei(i, vel[i]));
709708
}
710709
}
711710

src/loma/4C_loma_algorithm.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ void LowMach::Algorithm::initial_calculations()
313313
{
314314
// set initial velocity field for evaluation of initial scalar time derivative in SCATRA
315315
scatra_field()->set_convective_velocity(*fluid_field()->velnp());
316-
scatra_field()->set_velocity_field(nullptr, fluid_field()->velnp());
316+
scatra_field()->set_velocity_field(*fluid_field()->velnp());
317317
if (scatra_field()->fine_scale_velocity_field_required())
318318
{
319319
scatra_field()->set_fine_scale_velocity(*fluid_field()->fs_vel());
@@ -543,8 +543,9 @@ void LowMach::Algorithm::set_fluid_values_in_scatra()
543543
{
544544
case Inpar::FLUID::timeint_afgenalpha:
545545
{
546+
scatra_field()->set_acceleration_field(*fluid_field()->accam());
546547
scatra_field()->set_convective_velocity(*fluid_field()->velaf());
547-
scatra_field()->set_velocity_field(fluid_field()->accam(), fluid_field()->velaf());
548+
scatra_field()->set_velocity_field(*fluid_field()->velaf());
548549
if (scatra_field()->fine_scale_velocity_field_required() and
549550
fluid_field()->fs_vel() != nullptr)
550551
{
@@ -555,8 +556,9 @@ void LowMach::Algorithm::set_fluid_values_in_scatra()
555556
case Inpar::FLUID::timeint_one_step_theta:
556557
case Inpar::FLUID::timeint_bdf2:
557558
{
559+
scatra_field()->set_acceleration_field(*fluid_field()->hist());
558560
scatra_field()->set_convective_velocity(*fluid_field()->velnp());
559-
scatra_field()->set_velocity_field(fluid_field()->hist(), fluid_field()->velnp());
561+
scatra_field()->set_velocity_field(*fluid_field()->velnp());
560562
if (scatra_field()->fine_scale_velocity_field_required() and
561563
fluid_field()->fs_vel() != nullptr)
562564
{

src/poroelast_scatra/4C_poroelast_scatra_base.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ void PoroElastScaTra::PoroScatraBase::set_velocity_fields()
180180
}
181181

182182
scatra_->scatra_field()->set_convective_velocity(*convel);
183-
scatra_->scatra_field()->set_velocity_field(nullptr, velnp);
183+
scatra_->scatra_field()->set_velocity_field(*velnp);
184184
}
185185

186186
/*----------------------------------------------------------------------*

src/scatra/4C_scatra_algorithm.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,9 @@ void ScaTra::ScaTraAlgorithm::prepare_time_step_convection()
234234
//(fluid initial field was set inside the constructor of fluid base class)
235235
if (step() == 1)
236236
{
237+
scatra_field()->set_acceleration_field(*fluid_field()->hist());
237238
scatra_field()->set_convective_velocity(*fluid_field()->velnp());
238-
scatra_field()->set_velocity_field(fluid_field()->hist(), fluid_field()->velnp());
239+
scatra_field()->set_velocity_field(*fluid_field()->velnp());
239240
}
240241

241242
// prepare time step (+ initialize one-step-theta scheme correctly with
@@ -298,9 +299,9 @@ void ScaTra::ScaTraAlgorithm::set_velocity_field()
298299
case Inpar::FLUID::timeint_npgenalpha:
299300
case Inpar::FLUID::timeint_afgenalpha:
300301
{
302+
scatra_field()->set_acceleration_field(*fluid_to_scatra(fluid_field()->accam()));
301303
scatra_field()->set_convective_velocity(*fluid_to_scatra(fluid_field()->velaf()));
302-
scatra_field()->set_velocity_field(
303-
fluid_to_scatra(fluid_field()->accam()), fluid_to_scatra(fluid_field()->velaf()));
304+
scatra_field()->set_velocity_field(*fluid_to_scatra(fluid_field()->velaf()));
304305
if (scatra_field()->fine_scale_velocity_field_required() and
305306
fluid_field()->fs_vel() != nullptr)
306307
{
@@ -312,9 +313,9 @@ void ScaTra::ScaTraAlgorithm::set_velocity_field()
312313
case Inpar::FLUID::timeint_bdf2:
313314
case Inpar::FLUID::timeint_stationary:
314315
{
316+
scatra_field()->set_acceleration_field(*fluid_to_scatra(fluid_field()->hist()));
315317
scatra_field()->set_convective_velocity(*fluid_to_scatra(fluid_field()->velnp()));
316-
scatra_field()->set_velocity_field(
317-
fluid_to_scatra(fluid_field()->hist()), fluid_to_scatra(fluid_field()->velnp()));
318+
scatra_field()->set_velocity_field(*fluid_to_scatra(fluid_field()->velnp()));
318319
if (scatra_field()->fine_scale_velocity_field_required() and
319320
fluid_field()->fs_vel() != nullptr)
320321
{

src/scatra/4C_scatra_timint_implicit.cpp

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1461,6 +1461,20 @@ void ScaTra::ScaTraTimIntImpl::set_mean_concentration(
14611461
mean_conc_ = MeanConc;
14621462
}
14631463

1464+
/*----------------------------------------------------------------------*
1465+
*----------------------------------------------------------------------*/
1466+
void ScaTra::ScaTraTimIntImpl::set_acceleration_field(
1467+
const Core::LinAlg::Vector<double>& acceleration) const
1468+
{
1469+
// time measurement
1470+
TEUCHOS_FUNC_TIME_MONITOR("SCATRA: set acceleration");
1471+
1472+
FOUR_C_ASSERT(nds_vel() < discret_->num_dof_sets(), "Too few dof sets on scatra discretization!");
1473+
1474+
// provide scatra discretization with acceleration field if required
1475+
discret_->set_state(nds_vel(), "acceleration field", acceleration);
1476+
}
1477+
14641478
/*----------------------------------------------------------------------*
14651479
*----------------------------------------------------------------------*/
14661480
void ScaTra::ScaTraTimIntImpl::set_convective_velocity(
@@ -1515,23 +1529,18 @@ bool ScaTra::ScaTraTimIntImpl::fine_scale_velocity_field_required() const
15151529

15161530
/*----------------------------------------------------------------------*
15171531
*----------------------------------------------------------------------*/
1518-
void ScaTra::ScaTraTimIntImpl::set_velocity_field(
1519-
std::shared_ptr<const Core::LinAlg::Vector<double>> acc,
1520-
std::shared_ptr<const Core::LinAlg::Vector<double>> vel)
1532+
void ScaTra::ScaTraTimIntImpl::set_velocity_field(const Core::LinAlg::Vector<double>& velocity)
15211533
{
15221534
// time measurement
1523-
TEUCHOS_FUNC_TIME_MONITOR("SCATRA: set velocity fields");
1535+
TEUCHOS_FUNC_TIME_MONITOR("SCATRA: set velocity field");
15241536

15251537
// checks
15261538
FOUR_C_ASSERT(velocity_field_type_ == Inpar::ScaTra::velocity_Navier_Stokes,
15271539
"Wrong set_velocity_field() called for velocity field type {}!", velocity_field_type_);
15281540
FOUR_C_ASSERT(nds_vel() < discret_->num_dof_sets(), "Too few dof sets on scatra discretization!");
15291541

15301542
// provide scatra discretization with velocity
1531-
if (vel != nullptr) discret_->set_state(nds_vel(), "velocity field", *vel);
1532-
1533-
// provide scatra discretization with acceleration field if required
1534-
if (acc != nullptr) discret_->set_state(nds_vel(), "acceleration field", *acc);
1543+
discret_->set_state(nds_vel(), "velocity field", velocity);
15351544
}
15361545

15371546
/*----------------------------------------------------------------------*

src/scatra/4C_scatra_timint_implicit.hpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,9 @@ namespace ScaTra
244244
*/
245245
void set_external_force() const;
246246

247+
//! set the @acceleration vector to the scalar transport discretization
248+
void set_acceleration_field(const Core::LinAlg::Vector<double>& acceleration) const;
249+
247250
//! set the @convective_velocity vector to the scalar transport discretization
248251
void set_convective_velocity(const Core::LinAlg::Vector<double>& convective_velocity) const;
249252

@@ -253,15 +256,8 @@ namespace ScaTra
253256
//! return whether setting of the fine scale velocity is required
254257
[[nodiscard]] bool fine_scale_velocity_field_required() const;
255258

256-
/*!
257-
* @brief set velocity field (+ pressure and acceleration field as well as fine-scale velocity
258-
* field, if required)
259-
*
260-
* @param acc acceleration vector
261-
* @param vel velocity vector
262-
*/
263-
void set_velocity_field(std::shared_ptr<const Core::LinAlg::Vector<double>> acc,
264-
std::shared_ptr<const Core::LinAlg::Vector<double>> vel);
259+
//! set the @velocity vector to the scalar transport discretization
260+
void set_velocity_field(const Core::LinAlg::Vector<double>& velocity);
265261

266262
void set_wall_shear_stresses(std::shared_ptr<const Core::LinAlg::Vector<double>> wss);
267263

src/ssi/4C_ssi_coupling.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ void SSI::SSICouplingMatchingVolume::set_velocity_fields(
142142
std::shared_ptr<const Core::LinAlg::Vector<double>> vel)
143143
{
144144
scatra->scatra_field()->set_convective_velocity(*convvel);
145-
scatra->scatra_field()->set_velocity_field(nullptr, vel);
145+
scatra->scatra_field()->set_velocity_field(*vel);
146146
}
147147

148148
/*----------------------------------------------------------------------*/
@@ -290,7 +290,7 @@ void SSI::SSICouplingNonMatchingBoundary::set_velocity_fields(
290290
scatra->scatra_field()->set_convective_velocity(
291291
*adaptermeshtying_->master_to_slave(*extractor_->extract_cond_vector(*convvel)));
292292
scatra->scatra_field()->set_velocity_field(
293-
nullptr, adaptermeshtying_->master_to_slave(*extractor_->extract_cond_vector(*vel)));
293+
*adaptermeshtying_->master_to_slave(*extractor_->extract_cond_vector(*vel)));
294294
}
295295

296296
/*----------------------------------------------------------------------*/
@@ -410,7 +410,7 @@ void SSI::SSICouplingNonMatchingVolume::set_velocity_fields(
410410
scatra->scatra_field()->set_convective_velocity(
411411
*volcoupl_structurescatra_->apply_vector_mapping21(*convvel));
412412
scatra->scatra_field()->set_velocity_field(
413-
nullptr, volcoupl_structurescatra_->apply_vector_mapping21(*vel));
413+
*volcoupl_structurescatra_->apply_vector_mapping21(*vel));
414414
}
415415

416416
/*----------------------------------------------------------------------*/
@@ -606,7 +606,7 @@ void SSI::SSICouplingMatchingVolumeAndBoundary::set_velocity_fields(
606606
std::shared_ptr<const Core::LinAlg::Vector<double>> vel)
607607
{
608608
scatra->scatra_field()->set_convective_velocity(*convvel);
609-
scatra->scatra_field()->set_velocity_field(nullptr, vel);
609+
scatra->scatra_field()->set_velocity_field(*vel);
610610
}
611611

612612
/*----------------------------------------------------------------------*/

src/ssti/4C_ssti_algorithm.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,9 +290,9 @@ void SSTI::SSTIAlgorithm::distribute_structure_solution() const
290290
const auto convective_velocity = Core::LinAlg::create_vector(*structure_->dof_row_map());
291291

292292
scatra_field()->set_convective_velocity(*convective_velocity);
293-
scatra_field()->set_velocity_field(nullptr, structure_->velnp());
293+
scatra_field()->set_velocity_field(*structure_->velnp());
294294
thermo_field()->set_convective_velocity(*convective_velocity);
295-
thermo_field()->set_velocity_field(nullptr, structure_->velnp());
295+
thermo_field()->set_velocity_field(*structure_->velnp());
296296
}
297297

298298
/*----------------------------------------------------------------------*/

0 commit comments

Comments
 (0)