# BCs System

The BCs system has not been documented. The content listed below should be used as a starting point for documenting the system, which includes the typical automatic documentation associated with a system; however, what is contained is ultimately determined by what is necessary to make the documentation clear for users.

```
# BCs System
## Overview
!! Replace this line with information regarding the BCs system.
## Example Input File Syntax
!! Describe and include an example of how to use the BCs system.
!syntax list /BCs objects=True actions=False subsystems=False
!syntax list /BCs objects=False actions=False subsystems=True
!syntax list /BCs objects=False actions=True subsystems=False
```

## Available Objects

- Moose App
- ADDirichletBCImposes the essential boundary condition , where is a constant, controllable value.
- ADFunctionDirichletBCImposes the essential boundary condition , where is calculated by a function.
- ADFunctionNeumannBCImposes the integrated boundary condition , where is a (possibly) time and space-dependent MOOSE Function.
- ADFunctionPenaltyDirichletBCEnforces a (possibly) time and space-dependent MOOSE Function Dirichlet boundary condition in a weak sense by penalizing differences between the current solution and the Dirichlet data.
- ADFunctionPresetBCThe same as ADFunctionDirichletBC except the value is applied before the solve begins
- ADNeumannBCImposes the integrated boundary condition , where is a constant, controllable value.
- ADPenaltyDirichletBCEnforces a Dirichlet boundary condition in a weak sense by penalizing differences between the current solution and the Dirichlet data.
- ADPresetBCSimilar to ADDirichletBC except the value is applied before the solve begins. Deprecated: use ADDirichletBC with preset = true instead.
- ADVectorFunctionDirichletBCImposes the essential boundary condition , where components are calculated with functions.
- ADVectorMatchedValueBCImplements a ADVectorNodalBC which equates two different Variables' values on a specified boundary.
- ArrayDirichletBCImposes the essential boundary condition , where are constant, controllable values.
- ArrayPenaltyDirichletBCEnforces a Dirichlet boundary condition in a weak sense with , where is the constant scalar penalty; is the test functions and is the differences between the current solution and the Dirichlet data.
- ArrayVacuumBCImposes the Robin boundary condition .
- ConvectiveFluxBCDetermines boundary values via the initial and final values, flux, and exposure duration
- CoupledVarNeumannBCImposes the integrated boundary condition , where is a variable.
- DGFunctionDiffusionDirichletBC
- DiffusionFluxBCComputes a boundary residual contribution consistent with the Diffusion Kernel. Does not impose a boundary condition; instead computes the boundary contribution corresponding to the current value of grad(u) and accumulates it in the residual vector.
- DirichletBCImposes the essential boundary condition , where is a constant, controllable value.
- EigenArrayDirichletBCArray Dirichlet BC for eigenvalue solvers
- EigenDirichletBCDirichlet BC for eigenvalue solvers
- FunctionDirichletBCImposes the essential boundary condition , where is a (possibly) time and space-dependent MOOSE Function.
- FunctionGradientNeumannBCImposes the integrated boundary condition arising from integration by parts of a diffusion/heat conduction operator, and where the exact solution can be specified.
- FunctionNeumannBCImposes the integrated boundary condition , where is a (possibly) time and space-dependent MOOSE Function.
- FunctionPenaltyDirichletBCEnforces a (possibly) time and space-dependent MOOSE Function Dirichlet boundary condition in a weak sense by penalizing differences between the current solution and the Dirichlet data.
- FunctionPresetBCThe same as FunctionDirichletBC except the value is applied before the solve begins. Deprecated: use FunctionDirichletBC with preset = true instead.
- LagrangeVecDirichletBCImposes the essential boundary condition , where are constant, controllable values.
- LagrangeVecFunctionDirichletBCImposes the essential boundary condition , where components are calculated with functions.
- MatchedValueBCImplements a NodalBC which equates two different Variables' values on a specified boundary.
- NeumannBCImposes the integrated boundary condition , where is a constant, controllable value.
- OneDEqualValueConstraintBC
- PenaltyDirichletBCEnforces a Dirichlet boundary condition in a weak sense by penalizing differences between the current solution and the Dirichlet data.
- PostprocessorDirichletBC
- PostprocessorNeumannBC
- PresetBCSimilar to DirichletBC except the value is applied before the solve begins. Deprecated: use DirichletBC with preset = true instead.
- SinDirichletBCImposes a time-varying essential boundary condition , where varies from an given initial value at time to a given final value over a specified duration.
- SinNeumannBCImposes a time-varying flux boundary condition , where varies from an given initial value at time to a given final value over a specified duration.
- VacuumBC
- VectorDirichletBCImposes the essential boundary condition , where are constant, controllable values.
- VectorFunctionDirichletBCImposes the essential boundary condition , where components are calculated with functions.
- VectorNeumannBCImposes the integrated boundary condition , where is a user-defined, constant vector.
- VectorPenaltyDirichletBCEnforces a Dirichlet boundary condition for vector nonlinear variables in a weak sense by applying a penalty to the difference in the current solution and the Dirichlet data.
- WeakGradientBCComputes a boundary residual contribution consistent with the Diffusion Kernel. Does not impose a boundary condition; instead computes the boundary contribution corresponding to the current value of grad(u) and accumulates it in the residual vector.
- Rdg App
- AEFVBCA boundary condition kernel for the advection equation using a cell-centered finite volume method.
- Heat Conduction App
- ADConvectiveHeatFluxBCConvective heat transfer boundary condition with temperature and heat transfer coefficent given by material properties.
- ConvectiveFluxFunctionDetermines boundary value by fluid heat transfer coefficient and far-field temperature
- ConvectiveHeatFluxBCConvective heat transfer boundary condition with temperature and heat transfer coefficent given by material properties.
- CoupledConvectiveFlux
- CoupledConvectiveHeatFluxBCConvective heat transfer boundary condition with temperature and heat transfer coefficent given by auxiliary variables.
- GapHeatTransferTransfers heat across a gap between two surfaces dependent on the gap geometry specified.
- GrayLambertNeumannBCThis BC imposes a heat flux density that is computed from the GrayLambertSurfaceRadiationBase userobject.
- HeatConductionBC
- InfiniteCylinderRadiativeBCBoundary condition for radiative heat exchange with a cylinderwhere the boundary is approximated as a cylinder as well.
- Porous Flow App
- PorousFlowHalfCubicSinkApplies a flux sink to a boundary. The base flux defined by PorousFlowSink is multiplied by a cubic.
- PorousFlowHalfGaussianSinkApplies a flux sink to a boundary. The base flux defined by PorousFlowSink is multiplied by a Gaussian.
- PorousFlowPiecewiseLinearSinkApplies a flux sink to a boundary. The base flux defined by PorousFlowSink is multiplied by a piecewise linear function.
- PorousFlowSinkApplies a flux sink to a boundary.
- Tensor Mechanics App
- ADPressureApplies a pressure on a given boundary in a given direction
- CoupledPressureBCApplies a pressure from a variable on a given boundary in a given direction
- DashpotBC
- DisplacementAboutAxisImplements a boundary condition that enforces rotationaldisplacement around an axis on a boundary
- InteractionIntegralBenchmarkBCImplements a boundary condition that enforces a displacement field around a crack tip based on applied stress intensity factors.
- PenaltyInclinedNoDisplacementBCPenalty Enforcement of an inclined boundary condition
- PresetAccelerationPrescribe acceleration on a given boundary in a given direction
- PresetDisplacementPrescribe the displacement on a given boundary in a given direction.
- PresetVelocity
- PressureApplies a pressure on a given boundary in a given direction
- StickyBCImposes the boundary condition if exceeds the bounds provided
- Functional Expansion Tools App
- FXFluxBCSets a flux boundary condition, evaluated using a FunctionSeries instance. This does not fix the flux, but rather 'strongly encourages' flux agreement by penalizing the differences through contributions to the residual.
- FXValueBCImposes a fixed value boundary condition, evaluated using a FunctionSeries instance.
- FXValuePenaltyBCSets a value boundary condition, evaluated using a FunctionSeries instance. This does not fix the value, but rather 'strongly encourages' value agreement by penalizing the differences through contributions to the residual.
- Navier Stokes App
- AdvectionBCBoundary conditions for outflow/outflow of advected quantities: phi * velocity * normal, where phi is the advected quantitiy
- EnergyFreeBC
- INSADMomentumNoBCBCThis class implements the 'No BC' boundary condition based on the 'Laplace' form of the viscous stress tensor.
- INSMomentumNoBCBCLaplaceFormThis class implements the 'No BC' boundary condition based on the 'Laplace' form of the viscous stress tensor.
- INSMomentumNoBCBCTractionFormThis class implements the 'No BC' boundary condition based on the 'traction' form of the viscous stress tensor.
- INSTemperatureNoBCBCThis class implements the 'No BC' boundary condition discussed by Griffiths, Papanastiou, and others.
- ImplicitNeumannBCThis class implements a form of the Neumann boundary condition in which the boundary term is treated 'implicitly'.
- MassFreeBC
- MomentumFreeBC
- MomentumFreeSlipBC
- NSEnergyInviscidSpecifiedBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
- NSEnergyInviscidSpecifiedDensityAndVelocityBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
- NSEnergyInviscidSpecifiedNormalFlowBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
- NSEnergyInviscidSpecifiedPressureBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
- NSEnergyInviscidUnspecifiedBCThis class corresponds to the inviscid part of the 'natural' boundary condition for the energy equation.
- NSEnergyViscousBCThis class couples together all the variables for the compressible Navier-Stokes equations to allow them to be used in derived IntegratedBC classes.
- NSEnergyWeakStagnationBCThe inviscid energy BC term with specified normal flow.
- NSImposedVelocityBCImpose Velocity BC.
- NSImposedVelocityDirectionBCThis class imposes a velocity direction component as a Dirichlet condition on the appropriate momentum equation.
- NSInflowThermalBCThis class is used on a boundary where the incoming flow values (rho, u, v, T) are all completely specified.
- NSMassSpecifiedNormalFlowBCThis class implements the mass equation boundary term with a specified value of rho*(u.n) imposed weakly.
- NSMassUnspecifiedNormalFlowBCThis class implements the mass equation boundary term with the rho*(u.n) boundary integral computed implicitly.
- NSMassWeakStagnationBCThe inviscid energy BC term with specified normal flow.
- NSMomentumConvectiveWeakStagnationBCThe convective part (sans pressure term) of the momentum equation boundary integral evaluated at specified stagnation temperature, stagnation pressure, and flow direction values.
- NSMomentumInviscidNoPressureImplicitFlowBCMomentum equation boundary condition used when pressure
*is not*integrated by parts. - NSMomentumInviscidSpecifiedNormalFlowBCMomentum equation boundary condition in which pressure is specified (given) and the value of the convective part is allowed to vary (is computed implicitly).
- NSMomentumInviscidSpecifiedPressureBCMomentum equation boundary condition in which pressure is specified (given) and the value of the convective part is allowed to vary (is computed implicitly).
- NSMomentumPressureWeakStagnationBCThis class implements the pressure term of the momentum equation boundary integral for use in weak stagnation boundary conditions.
- NSMomentumViscousBCThis class corresponds to the viscous part of the 'natural' boundary condition for the momentum equations.
- NSPenalizedNormalFlowBCThis class penalizes the the value of u.n on the boundary so that it matches some desired value.
- NSPressureNeumannBCThis kernel is appropriate for use with a 'zero normal flow' boundary condition in the context of the Euler equations.
- NSStagnationPressureBCThis Dirichlet condition imposes the condition p_0 = p_0_desired.
- NSStagnationTemperatureBCThis Dirichlet condition imposes the condition T_0 = T_0_desired.
- NSThermalBCNS thermal BC.
- Peridynamics App
- RBMPresetOldValuePDClass to apply a preset BC to nodes with rigid body motion (RBM).
- Chemical Reactions App
- ChemicalOutFlowBCChemical flux boundary condition
- XFEMApp
- CrackTipEnrichmentCutOffBCImposes the essential boundary condition , where is a constant, controllable value.

## Available Subsystems

- Moose App
- Periodic
- Tensor Mechanics App
- CavityPressure
- CoupledPressure
- InclinedNoDisplacementBC
- Pressure

## Available Actions

- Moose App
- AddBCAction