Author |
Message |
Liem Peng Hong (liemph)
Member Username: liemph
Post Number: 5 Registered: 09-2004
| Posted on Tuesday, August 30, 2005 - 09:32 am: | |
Dear Member, I am solving a one-group neutron diffusion eigenvalue problem (see attachment). With modes=1 I assume I obtain the smallest eigenvalue (lambda) and then the neutron multiplication keff=1/lambda can be derived. I check with other codes and by hand calculation the lambda (or keff) is accurate enough. But sometimes I got the eigenvector (i.e. the neutron flux) negative (i.e. correct spatial distribution but completely reversed), which is physically strange. Of course, this is mathematically correct. Is there any way to force the eigenvector to be positive distribution ? |
Robert G. Nelson (rgnelson)
Moderator Username: rgnelson
Post Number: 441 Registered: 06-2003
| Posted on Tuesday, August 30, 2005 - 07:46 pm: | |
As long as the negative result is a legitimate eigenfunction, there is not much you can do to block it. Attempts to modify the equation to force the result positive mostly lead to nonlinear equations, which FlexPDE cannot handle in eigenvalue mode. For the fundmental mode, you could merely plot abs(Flux). But all higher modes have both positive and negative values, so this would destroy the plots. You could force the plot to make the largest value positive by defining: pFlux = if globalmax(Flux)<abs(globalmin(Flux)) then -Flux else Flux and then plotting pFlux.
|
James B. Mehl (jmehl)
New member Username: jmehl
Post Number: 1 Registered: 09-2003
| Posted on Tuesday, August 30, 2005 - 09:13 pm: | |
You are free, of course, to normalize the eigenvectors any way you wish. I sometimes normalize to unit (positive) maximum using the following to normalize a variable u: uscale = if(globalmax(u) > abs(globalmin(u))) then globalmax(u) else globalmin(u) phi = u/uscale
|
Liem Peng Hong (liemph)
Member Username: liemph
Post Number: 6 Registered: 09-2004
| Posted on Wednesday, August 31, 2005 - 03:19 am: | |
Dear Robert and James, Thank you for your suggestion. They work nicely and solve my problem. In the neutron eigenvalue calculations, much interest is put on the fundamental eigenvalue and the corresponding eigenvector (that is the neutron flux distribution). We commonly use "power method iteration" or "source iteration method" to obtain those, which always results in positive distribution of neutron flux. We also periodically normalize the flux to avoid under or over flow problems. My (more elaborate) question is what method the FLEXPDE uses to obtain the fundamental eigenvalue ? And is there any guarantee that the modes=1 always produces the fundamental one ? Best Regards, Liem PH |