DirichletEquivalentPfcImplantBC

buildconstruction:Undocumented Class

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

Imposes the essential boundary condition , where is a constant calculated assuming the recombination fluxquickly becomes equal to the incident flux. The recombination term is calculated using the simulation temperature and the pre-exponent and Energy values provided

Overview

Implements a dirichlet boundary condition where the value at the surface is calculated as the steady-state balance between a known incident flux of particles into the material and an opposing desorption flux back out of the material, which is based on a user-defined recombination condition.

This option is not necessarily intended to offer a good general physical representation but is used to replicate the numerical model of Delaporte-Mathurin et al. (2019).

This boundary condition aims to simplify Eq. (1) for the particular case of steady-state equilibrium, as shown in Eq. (3).

(1)

Where the recombination coefficient, , is given by Eq. (2).

(2)

At equilibirum, the recombination flux is equal to the incident flux and the mobile concentration can be found from Eq. (3).

(3)

User inputs are required for , , and . The temperature is taken from a coupled variable. Note that again a scale factor is required for the conversion of the mobile concentration from to atomic fraction.

Example Input File Syntax

Input Parameters

  • EEnergy Barrier in Arhhenious Expression

    C++ Type:double

    Options:

    Description:Energy Barrier in Arhhenious Expression

  • TTemperature

    C++ Type:std::vector<VariableName>

    Options:

    Description:Temperature

  • boundaryThe list of boundary IDs from the mesh where this boundary condition applies

    C++ Type:std::vector<BoundaryName>

    Options:

    Description:The list of boundary IDs from the mesh where this boundary condition applies

  • k0pre-exponent factor

    C++ Type:double

    Options:

    Description:pre-exponent factor

  • scale_factorscale factor

    C++ Type:double

    Options:

    Description:scale factor

  • variableThe name of the variable that this residual object operates on

    C++ Type:NonlinearVariableName

    Options:

    Description:The name of the variable that this residual object operates on

Required Parameters

  • diag_save_inThe name of auxiliary variables to save this BC's diagonal jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

    C++ Type:std::vector<AuxVariableName>

    Options:

    Description:The name of auxiliary variables to save this BC's diagonal jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

  • displacementsThe displacements

    C++ Type:std::vector<VariableName>

    Options:

    Description:The displacements

  • flux0The value of the implantation flux.

    Default:0

    C++ Type:double

    Options:

    Description:The value of the implantation flux.

  • presetTrueWhether or not to preset the BC (apply the value before the solve begins).

    Default:True

    C++ Type:bool

    Options:

    Description:Whether or not to preset the BC (apply the value before the solve begins).

  • save_inThe name of auxiliary variables to save this BC's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

    C++ Type:std::vector<AuxVariableName>

    Options:

    Description:The name of auxiliary variables to save this BC's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)

  • set_x_compTrueWhether to set the x-component of the variable

    Default:True

    C++ Type:bool

    Options:

    Description:Whether to set the x-component of the variable

  • set_y_compTrueWhether to set the y-component of the variable

    Default:True

    C++ Type:bool

    Options:

    Description:Whether to set the y-component of the variable

  • set_z_compTrueWhether to set the z-component of the variable

    Default:True

    C++ Type:bool

    Options:

    Description:Whether to set the z-component of the variable

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Options:

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Options:

    Description:Set the enabled status of the MooseObject.

  • implicitTrueDetermines whether this object is calculated using an implicit or explicit form

    Default:True

    C++ Type:bool

    Options:

    Description:Determines whether this object is calculated using an implicit or explicit form

  • seed0The seed for the master random number generator

    Default:0

    C++ Type:unsigned int

    Options:

    Description:The seed for the master random number generator

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Options:

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

  • extra_matrix_tagsThe extra tags for the matrices this Kernel should fill

    C++ Type:std::vector<TagName>

    Options:

    Description:The extra tags for the matrices this Kernel should fill

  • extra_vector_tagsThe extra tags for the vectors this Kernel should fill

    C++ Type:std::vector<TagName>

    Options:

    Description:The extra tags for the vectors this Kernel should fill

  • matrix_tagssystem timeThe tag for the matrices this Kernel should fill

    Default:system time

    C++ Type:MultiMooseEnum

    Options:nontime, system, time

    Description:The tag for the matrices this Kernel should fill

  • vector_tagsresidualThe tag for the vectors this Kernel should fill

    Default:residual

    C++ Type:MultiMooseEnum

    Options:nontime, time, residual

    Description:The tag for the vectors this Kernel should fill

Tagging Parameters

References

  1. Rémi Delaporte-Mathurin, Etienne A. Hodille, Jonathan Mougenot, Yann Charles, and Christian Grisolia. Finite element analysis of hydrogen retention in iter plasma facing components using festim. Nuclear Materials and Energy, 21:100709, 2019. URL: https://www.sciencedirect.com/science/article/pii/S2352179119300547, doi:https://doi.org/10.1016/j.nme.2019.100709.[BibTeX]