https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PerpendicularElectricFieldInterface.C
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
11
13
16{
19 "VectorInterfaceKernel that implements the condition $\\epsilon_1 \\vec{E}_{1}^{\\perp} - "
20 "\\epsilon_2 \\vec{E}_{2}^{\\perp} = \\sigma_f$");
21 params.addParam<Real>("free_charge", 0.0, "Free charge on the interface (default = 0).");
22 params.addParam<Real>(
23 "primary_epsilon", 1.0, "Permittivity on the primary side of the interface (default = 1.0).");
24 params.addParam<Real>("secondary_epsilon",
25 1.0,
26 "Permittivity on the secondary side of the interface (default = 1.0).");
27 return params;
28}
29
31 const InputParameters & parameters)
32 : VectorInterfaceKernel(parameters),
33
34 _free_charge(getParam<Real>("free_charge")),
35 _primary_eps(getParam<Real>("primary_epsilon")),
36 _secondary_eps(getParam<Real>("secondary_epsilon"))
37{
38}
39
40Real
64
65Real
67{
70
71 Real jac = 0;
72
73 switch (type)
74 {
77 break;
78
81 break;
82
85 break;
86
89 break;
90 }
91
92 return jac;
93}
registerMooseObject("ElectromagneticsApp", PerpendicularElectricFieldInterface)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
const TemplateVariableValue & _u
const TemplateVariableValue & _neighbor_value
static InputParameters validParams()
const TemplateVariableTestValue & _test_neighbor
const TemplateVariablePhiValue & _phi
const MooseArray< Point > & _normals
const TemplateVariableTestValue & _test
const TemplateVariablePhiValue & _phi_neighbor
const std::string & type() const
VectorInterfaceKernel that enforces the difference between the perpendicular vector field components ...
RealVectorValue _secondary_perp
Perpendicular field component of the solution variable on the secondary side of the boundary.
Real _free_charge
Free charge on the interface (default = 0)
Real _primary_eps
Electrical permittivity on the primary side of the boundary.
PerpendicularElectricFieldInterface(const InputParameters &parameters)
RealVectorValue _u_perp
Perpendicular field component of the solution variable on the primary side of the boundary.
RealVectorValue _phi_secondary_perp
Perpendicular field component of the test function on the secondary side of the boundary.
virtual Real computeQpJacobian(Moose::DGJacobianType type) override
RealVectorValue _phi_u_perp
Perpendicular field component of the test function on the primary side of the boundary.
RealVectorValue _free_charge_dot_n
Free charge dotted with interface normal.
Real _secondary_eps
Electrical permittivity on the secondary side of the boundary.
virtual Real computeQpResidual(Moose::DGResidualType type) override
DGResidualType
DGJacobianType
NeighborNeighbor
ElementElement
NeighborElement
ElementNeighbor