Kernels at time interval and floating potential #152
-
Hi, I have two questions:
|
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 11 replies
-
Hi, about your questions:
|
Beta Was this translation helpful? Give feedback.
-
Thank you for the help with these questions, I did have a follow-up relevant to the second one. I wanted to find out how to have the variable (different from the variable for which the BC is for) inputs for a BC to be limited to their values at a different boundary, either by changing the syntax of the BC .C file (something in lieu of variable[_qp]) or by how the variable is given to the BC in the input file |
Beta Was this translation helpful? Give feedback.
-
For clarification, by "floating potential BC", your are referring to a boundary condition where the net current is zero? In that case, you can try something like in The other option is to try making a Penalty Dirichlet, with treats a Dirichlet BC as an IntegratedBC, instead of a NodalBC (more information here: https://mooseframework.inl.gov/source/bcs/ADPenaltyDirichletBC.html) Also, if one of these options work for you and you can wait by a week, you can add an issue to Zapdos about a floating potential BC, outlining what exactly you would like in the BC and we can code it up with a MMS test by next Friday (the simplest option is to reformat the Just to note that in both cases I am assuming you have a DC case, otherwise you would need to integrate the current over a RF time scale and balance the current each RF period or once every several RF periods (which I am currently working on for the self-bias BC). |
Beta Was this translation helpful? Give feedback.
-
I had a follow-up question that's confusing me a bit. Relevant to both using NearestNodeValueAux as well as NearestNodeTransfer, I don't quite understand how I should be using these. In the case of NearestNodeValueAux, per your response about using NearestNodeValueAux to retrieve variable values from one boundary to use as an AuxVariable input into a non-adjacent BC, I'm not understanding how to implement this exactly; I'm wanting the value of an elemental variable at the boundary to store in an AuxVariable but would this approach work using the NearestNodeValueAux AuxKernel given that it only uses the nearest node value to the boundary? In trying to do so, I've been getting "Please use getBoundaryIDs() when passing "ANY_BOUNDARY_ID"" when implementing a floating potential BC based on the PenaltyDirichlet approach you mentioned in one of your responses. Related to this question is another suggestion you made about using the MultiApp system for two problems on different timescales. I've been using MultiAppNearestNodeTransfer but I get warnings saying that "Setting a target boundary is only valid for receiving variables of the LAGRANGE basis", which makes sense since I'm trying to transfer elemental variables; is there a way around this? |
Beta Was this translation helpful? Give feedback.
Hi, about your questions:
You can use MOOSE's MultiApp System to calculate a separate variable with a different time step (this is how MOOSE uses sub-cycling). You can also "turn off and on" kernels throughout a simulation using
PeriodicControllers
. If you can provide more information on your problem, we can better point out what approach might be more beneficial.There is currently no floating potential BC right now that ensures a zero net current (there is a DC-bias BC in the works that can be modified into a generic floating potential BC). Currently Zapdos can do DC, frequency-based, and ground potential BC. One side note is that for the electrostatic condition, one could do a zero…