Dear Roy,
Glad to hear that ParsedFEMFunction can do the work. In fact I plan to embed the wall boundary condition of omega in the k-omega turbulence model in my RANS code. In this case the wall value of omega requires a term from the derivatives of velocity at each iteration. Therefore I hope I can apply such one boundary condition in the nonlinear residual computation function and then it can be called in every inner loop. As you said, in this case, maybe I have to do the constraint initialization work manually. Could you show any further hints on it? By the way, I am solving the RANS system (N-S + turbulence) as a fully coupled system other than a segragated one. If I use the FEMSystem, will it be any improvements to global performance? Many thanks! Zhenyu ------------------ Original ------------------ From: "Roy Stogner";<royst...@ices.utexas.edu>; Date: Thu, Sep 17, 2015 09:32 PM To: "Zhenyu Zhang"<zyzhang_n...@qq.com>; Cc: "libmesh-users"<libmesh-users@lists.sourceforge.net>; Subject: Re: [Libmesh-users] How to apply non-constant boundary conditionsin a time-transient simulation On Thu, 17 Sep 2015, Zhenyu Zhang wrote: > 1) How to apply such a condition, in which the condition variable's value > not depend on x,y,z and t, but > on other primitive variables. I wonder now how to implement it with > ParsedFunction yet. So there's no direct dependence on t, but there's an indirect dependence via the dependence on other primitive variables? > 2) Generally we set up the BC objects with pre-specfied values or > fucntions before the loop of time marching or iteration. Now with > TransientNonlinearImplicitSystem, is it possible to add the above > real time setup of boundary condition into the loop? If you use a ParsedFEMFunction, you can easily get your boundary condition to depend on any primitive variable in the same system. *However*, the boundary conditions will only be re-evaluated when you call System::reinit_constraints() (or anything that calls it, like EquationSystems::reinit()). If your system isn't very sensitive to the boundary conditions, you can probably live with the small-constant-times-deltat error you'll get by just doing a reinit_constraints() at the start of every time step. If your system is sensitive to the boundary conditions, so lagging them gives an error (and/or stability restriction on deltat!) which is too severe, you'll need to reinit_constraints() within your nonlinear solver loop. If your system is *very* sensitive to the boundary conditions, then even a reinit_constraints() within the nonlinear solver might not be enough (it ought to add a sub-quadratic term to your convergence behavior) and you'll need to handle constraints manually within your residual. --- Roy ------------------------------------------------------------------------------ Monitor Your Dynamic Infrastructure at Any Scale With Datadog! Get real-time metrics from all of your servers, apps and tools in one place. SourceForge users - Click here to start your Free Trial of Datadog now! http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 _______________________________________________ Libmesh-users mailing list Libmesh-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-users