- position_unitsUnits of position
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Units of position
- potential_unitsUnits of potential (V or kV)
C++ Type:std::string
Controllable:No
Description:Units of potential (V or kV)
- use_molesFalseWhether to convert from units of moles to \#.
Default:False
C++ Type:bool
Controllable:No
Description:Whether to convert from units of moles to \#.
AddDriftDiffusionAction
This Action automatically adds the necessary variables and objects to model the drift-diffusion equations within a domain block.
Overview
The DriftDiffusionAction
object provides the necessary variables and objects to model the transport of plasma species using the drift-diffusion approximation.
The equation for the species density using the drift-diffusion approximation is:
Where:
the subscript represents properties of the plasma species,
indicates the advection behavior ( for positively charged species, for negatively charged species, and for neutral species),
is the mobility coefficient,
is the diffusion coefficient,
is the density,
is the electric field, and
is the source term.
In addition to the species density, Zapdos also tracks the mean energy density of the electrons using the equation:
Where:
the subscript represents properties of the electrons,
is the electron mean energy density (defined as )
is the electron mean energy in units of eV,
is the electron mean energy density mobility coefficient (defined as by default),
is the electron mean energy density diffusion coefficient (defined as by default), and
is the electron mean energy source term.
DriftDiffusionAction
provides the objects for the right hand side of the above equations, while CRANE's AddZapdosReactions action is often used to supply the chemistry network which defines and .
If using the electrostatic approximation for the electric field, DriftDiffusionAction
supplies the Poisson's equation, in the form of:
Where:
is the electrostatic potential, and
is the permittivity of free space.
DriftDiffusionAction
can supply additional outputs for electron temperature, current, and electric field by supplying the auxkernels ElectronTemperature, Current, and Efield respectively.
Example Input File Syntax
[DriftDiffusionAction<<<{"href": "../../syntax/DriftDiffusionAction/index.html"}>>>]
[Plasma]
electrons<<<{"description": "User given variable name for energy dependent electrons"}>>> = em
charged_particle<<<{"description": "User given variable name for energy independent charged particle"}>>> = Ar+
Neutrals<<<{"description": "The names of the neutrals that should be added"}>>> = Ar*
mean_energy<<<{"description": "The gives the mean energy a variable name"}>>> = mean_en
field<<<{"description": "The gives the field a variable name"}>>> = potential
Is_field_unique<<<{"description": "Is the field unique to this block?If not, then the field variable should be defined in the Variable Block."}>>> = true
using_offset<<<{"description": "Is the LogStabilizationMoles Kernel being used"}>>> = false
position_units<<<{"description": "Units of position"}>>> = ${dom0Scale}
Additional_Outputs<<<{"description": "Current list of available ouputs options in this action: Current, ElectronTemperature, EField"}>>> = 'ElectronTemperature Current EField'
[]
[]
(test/tests/DriftDiffusionAction/RF_Plasma_actions.i)Input Parameters
- Additional_OutputsCurrent list of available ouputs options in this action: Current, ElectronTemperature, EField
C++ Type:std::vector<std::string>
Controllable:No
Description:Current list of available ouputs options in this action: Current, ElectronTemperature, EField
- First_DriftDiffusionAction_in_blockTrueIs this the first DriftDiffusionAction for this block?If not, then the field solver kernels and Position auxkernel will NOT be supplied by this action.
Default:True
C++ Type:bool
Controllable:No
Description:Is this the first DriftDiffusionAction for this block?If not, then the field solver kernels and Position auxkernel will NOT be supplied by this action.
- Is_field_uniqueFalseIs the field unique to this block?If not, then the field variable should be defined in the Variable Block.
Default:False
C++ Type:bool
Controllable:No
Description:Is the field unique to this block?If not, then the field variable should be defined in the Variable Block.
- NeutralsThe names of the neutrals that should be added
C++ Type:std::vector<NonlinearVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The names of the neutrals that should be added
- active__all__ If specified only the blocks named will be visited and made active
Default:__all__
C++ Type:std::vector<std::string>
Controllable:No
Description:If specified only the blocks named will be visited and made active
- blockThe subdomain that this action applies to.
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The subdomain that this action applies to.
- charged_particleUser given variable name for energy independent charged particle
C++ Type:std::vector<NonlinearVariableName>
Unit:(no unit assumed)
Controllable:No
Description:User given variable name for energy independent charged particle
- eff_fieldsThe effective fields that only affect their respective secondary charged particle.
C++ Type:std::vector<NonlinearVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The effective fields that only affect their respective secondary charged particle.
- eff_fields_property_namesName of the solver interface material property for the effective fields.
C++ Type:std::vector<std::string>
Controllable:No
Description:Name of the solver interface material property for the effective fields.
- electronsUser given variable name for energy dependent electrons
C++ Type:NonlinearVariableName
Unit:(no unit assumed)
Controllable:No
Description:User given variable name for energy dependent electrons
- familyLAGRANGESpecifies the family of FE shape functions to use for this variable
Default:LAGRANGE
C++ Type:MooseEnum
Controllable:No
Description:Specifies the family of FE shape functions to use for this variable
- fieldThe gives the field a variable name
C++ Type:std::string
Controllable:No
Description:The gives the field a variable name
- field_property_namefield_solver_interface_propertyName of the solver interface material property.
Default:field_solver_interface_property
C++ Type:std::string
Controllable:No
Description:Name of the solver interface material property.
- field_solverelectrostaticElectrostatic or electromagnetic field solver (default = electrostatic).
Default:electrostatic
C++ Type:MooseEnum
Controllable:No
Description:Electrostatic or electromagnetic field solver (default = electrostatic).
- inactiveIf specified blocks matching these identifiers will be skipped.
C++ Type:std::vector<std::string>
Controllable:No
Description:If specified blocks matching these identifiers will be skipped.
- initial_conditionSpecifies a constant initial condition for this variable
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Specifies a constant initial condition for this variable
- initial_from_file_varGives the name of a variable for which to read an initial condition from a mesh file
C++ Type:std::string
Controllable:No
Description:Gives the name of a variable for which to read an initial condition from a mesh file
- mean_energyThe gives the mean energy a variable name
C++ Type:NonlinearVariableName
Unit:(no unit assumed)
Controllable:No
Description:The gives the mean energy a variable name
- offset20The offset parameter that goes into the exponential function
Default:20
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The offset parameter that goes into the exponential function
- orderFIRSTSpecifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)
Default:FIRST
C++ Type:MooseEnum
Controllable:No
Description:Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)
- scalingSpecifies a scaling factor to apply to this variable
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:Specifies a scaling factor to apply to this variable
- secondary_charged_particlesThese are charged particles whose advection term in determined by an effective field.
C++ Type:std::vector<NonlinearVariableName>
Unit:(no unit assumed)
Controllable:No
Description:These are charged particles whose advection term in determined by an effective field.
- using_offsetFalseIs the LogStabilizationMoles Kernel being used
Default:False
C++ Type:bool
Controllable:No
Description:Is the LogStabilizationMoles Kernel being used
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.