From: <ss...@pu...> - 2018-10-15 08:30:27
|
Thank you for your reply, but I still have not solved my problem. My questions seemed to be something wrong, so I want to ask again about a posteriori error estimation. According to “Reduced Basis Approximation and A Posteriori Error Estimation for Parameterized Partial Differential Equations” by Anthony T. Patera and Gianluigi Rozza, there are two error estimators, (i) energy-norm error bounds and (ii) X-norm error bounds. I think that these estimators are related to the variable “abs_error_bound” in the “Real RBEvaluation::rb_solve(unsigned int N)” code. Here I do not know if “abs_error_bound” is energy-norm error bounds or X-norm error bounds. This is the original question I intended in the first email. I am always thankful for your kind answers, David. Best regards, SKang From: David Knezevic <dav...@ak...> Sent: Monday, October 15, 2018 10:00 AM To: 강신성 <ss...@pu...> Cc: libmesh-users <lib...@li...> Subject: Re: [Libmesh-users] [RB] Question about a poseteriori error estimation On Sun, Oct 14, 2018 at 8:40 PM <ss...@pu... <mailto:ss...@pu...> > wrote: Thanks to your help, I understood inner-product and norm in the LibMesh. However, I have another question about the dual norm of residual. Despite the parameter-independent norm, I know that we need to a reference parameter set to compute the residual. How is this reference parameter set selected in our parameter domain? Do they use random or middle value in the parameter domain as a reference parameter set? I will be waiting for your reply. As I mentioned below, you define the inner product however you like. The code that determines the inner product/norm that is used is the assembly routine that is passed to "set_inner_product_assembly", so in that assembly routine you can set a particular parameter that is used to define the inner product matrix if that's what you want. You're right that in the RB literature it's common to choose an inner product based on the operator sampled at a particular parameter, and in order to do that in libMesh's RB code you have to do it manually in the inner product assembly code. Best, David From: David Knezevic <dav...@ak... <mailto:dav...@ak...> > Sent: Monday, October 15, 2018 2:45 AM To: 강신성 <ss...@pu... <mailto:ss...@pu...> > Cc: libmesh-users <lib...@li... <mailto:lib...@li...> > Subject: Re: [Libmesh-users] [RB] Question about a poseteriori error estimation On Sun, Oct 14, 2018 at 3:45 AM <ss...@pu... <mailto:ss...@pu...> > wrote: Thank you for your prompt reply, David. I looked at the “assembly.h” in RB example 1 and my code, and I understood your answer. You said inner-product must be parameter-independent. That is, dual norm of residual in LibMesh is always “X-norm” (parameter-independent norm), right? Yes, it uses the parameter-independent inner product and norm that you specify. (I'm not familiar with referring to this as the "X-norm", but if that's what you want to call it then that's fine.) By the way, if you do not mind, could you please tell me what special case used the parameter in “compute_residual_dual_norm(N)” code? You call compute_residual_dual_norm after you do a solve. So the parameter mu that is used inside compute_residual_dual_norm is the parameter that was used for the preceding solve. The idea is that you're getting the dual norm of the residual associated with your previous solve. Best, David From: David Knezevic <dav...@ak... <mailto:dav...@ak...> > Sent: Friday, October 12, 2018 9:30 PM To: 강신성 <ss...@pu... <mailto:ss...@pu...> > Cc: libmesh-users <lib...@li... <mailto:lib...@li...> > Subject: Re: [Libmesh-users] [RB] Question about a poseteriori error estimation On Fri, Oct 12, 2018 at 2:58 AM <ss...@pu... <mailto:ss...@pu...> > wrote: Hello, all. I have a question about the RB error estimation in LibMesh. I know that the maximum error bound is computed in the function "RBConstruction::compute_max_error_bound()." Here we should compute the "dual norm of residual" using the function "compute_residual_dual_norm(N)." But I do not know exactly if this "dual norm of residual" is "X-norm" or "energy-norm," where "X-norm" is parameter-independent and "energy-norm" is parameter-dependent. The norm that is used is specified by the user. For example, in reduced_basis_ex1, we set the inner product in SimpleRBConstruction to be the "A0" operator (and the inner product is used to generate the norm). So the inner-product and norm that is used is completely up to you. Note, though, that the inner product must be parameter independent. This is necessary since we don't want to change the inner product when we change parameters. When I looked at the "compute_residual_dual_norm(N)" code, the current parameter is called by the "const RBParameters & mu = get_parameters();" code line. So I guess the "dual norm of residual" is the "energy-norm," and I would like to ask if it is correct. No, the residual is whatever is specified by the user by calling "set_inner_product_assembly". The parameter is used to evaluate the dual norm in any specific case, but that is not related to the inner product that is used. Best, David |