You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have a NonlinearForm object nonlinearform that belongs to a TimeDependentOperator class performing DG semi-discretization for Euler equations. I have implemented several custom boundary face integrators for weak imposition of boundary conditions, which I add to my scheme through nonlinearform->AddBdrFaceIntegrator(NonlinearFormIntegrator* bfi, Array<int>& bdr_marker).
Now one of the boundary integrators should weakly impose a time-dependent fixed state (e.g., top boundary in Double Mach Reflection problem). I was thinking of adding a VectorFunctionCoefficient object bc_fun (that would be initialized with the time-dependent boundary function of interest) to my custom integrator and then calling bc_fun.Eval(state2, &Tr, ip). Getting Tr and ip is easy as I will have access to them in the custom AssembleFaceVector method. However, Eval also needs the current time to calculate the time-dependent boundary state and I don't have access to it. How could I pass the time information from the TimeDependentOperator to only a specific (applied only to a part of the boundary) boundary integrator among the boundary integrators added through nonlinearform->AddBdrFaceIntegrator?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hi,
I have a
NonlinearForm
objectnonlinearform
that belongs to aTimeDependentOperator
class performing DG semi-discretization for Euler equations. I have implemented several custom boundary face integrators for weak imposition of boundary conditions, which I add to my scheme throughnonlinearform->AddBdrFaceIntegrator(NonlinearFormIntegrator* bfi, Array<int>& bdr_marker)
.Now one of the boundary integrators should weakly impose a time-dependent fixed state (e.g., top boundary in Double Mach Reflection problem). I was thinking of adding a
VectorFunctionCoefficient
objectbc_fun
(that would be initialized with the time-dependent boundary function of interest) to my custom integrator and then callingbc_fun.Eval(state2, &Tr, ip)
. GettingTr
andip
is easy as I will have access to them in the customAssembleFaceVector
method. However,Eval
also needs the current time to calculate the time-dependent boundary state and I don't have access to it. How could I pass the time information from theTimeDependentOperator
to only a specific (applied only to a part of the boundary) boundary integrator among the boundary integrators added throughnonlinearform->AddBdrFaceIntegrator
?Thank you in advance.
Farhad
Beta Was this translation helpful? Give feedback.
All reactions