https://mooseframework.inl.gov
Loading...
Searching...
No Matches
KokkosSinDirichletBC.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
12#include "KokkosNodalBC.h"
13
26{
27public:
29
31
32 template <typename Derived>
33 KOKKOS_FUNCTION Real computeQpResidual(const unsigned int qp, AssemblyDatum & datum) const;
34
35private:
36 const Real _initial;
37 const Real _final;
38 const Real _duration;
40 const Real _omega;
41};
42
43template <typename Derived>
44KOKKOS_FUNCTION Real
45KokkosSinDirichletBC::computeQpResidual(const unsigned int qp, AssemblyDatum & datum) const
46{
47 Real value;
48 if (_t < _duration)
49 value = _initial + (_final - _initial) * ::Kokkos::sin(_omega * _t);
50 else
51 value = _final;
52
53 return _u(datum, qp) - value;
54}
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
A spatially-constant, time-varying NodalBC whose imposed value g(t) varies sinusoidally with time acc...
KOKKOS_FUNCTION Real computeQpResidual(const unsigned int qp, AssemblyDatum &datum) const
KokkosSinDirichletBC(const InputParameters &parameters)
const Real _omega
Angular frequency pi / (2 T), precomputed on host.
static InputParameters validParams()
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
The Kokkos object that holds thread-private data in the parallel operations of Kokkos kernels.
The base class for a user to derive their own Kokkos nodal boundary conditions.
const VariableValue _u
Current solution at nodes.
Scalar< Real > _t
TODO: Move to TransientInterface.