Opened 7 years ago

Closed 5 years ago

Last modified 5 years ago

#167 closed defect - etc (fixed)

Bad line profile in rt_line_one

Reported by: rjrw Owned by: nobody
Priority: critical Milestone: c13 release
Component: radiative transfer Version: trunk
Keywords: Cc:

Description

The default line profile used in rt_line_one doesn't look anything like a Voigt profile.

A more accurate implementation can now be switched on by changing the branch used in function getVoigt -- it needs to be verified that this version is correct, and the impact on run time assessed.

Attachments (1)

profile.pdf (3.6 KB) - added by Gary J. Ferland 7 years ago.
Robin's plot of the profile

Download all attachments as: .zip

Change History (11)

comment:1 Changed 7 years ago by rjrw

I introduced variable names to the code at r4358 which explain the issues.

The alternative branch will slow the code; Peter says he can do something better.

Changed 7 years ago by Gary J. Ferland

Attachment: profile.pdf added

Robin's plot of the profile

comment:2 Changed 7 years ago by Gary J. Ferland

code in question is rt_line_one.cpp:395

comment:3 Changed 7 years ago by peter

In r4619, r4620, and r4621 several (wrapper) routines were added that should help in calculating Voigt profiles.

VoigtU() calculates a Voigt profile U(a,v) using the normalization in Eq. 9-45 of Mihalas.

VoigtH() calculates a Voigt profile H(a,v) using the normalization in Eq. 9-44 of Mihalas.

VoigtU0() calculates U(a,0), i.e. the central depth of the profile.

VoigtH0() calculates H(a,0).

The last two routines are faster and more accurate than the generic Voigt routine, but obviously only work at the line center.

comment:4 Changed 7 years ago by peter

In r4624 a fast version of VoigtH() was added, called FastVoigtH().

comment:5 Changed 7 years ago by peter

In r4627 FastVoigtH() was tuned further and some comments were added regarding its accuracy.

comment:6 Changed 7 years ago by peter

In r4630 a higher order term was added to FastVoigtH() to increase its accuracy and extend the region where it can be applied to higher a values.

comment:7 Changed 7 years ago by peter

A bug in r4624 was fixed in r4695.

comment:8 Changed 7 years ago by peter

In r4703 the unit tests were fixed and int_ex2() was renamed to dawson().

comment:9 Changed 5 years ago by Ryan Porter

Resolution: fixed
Status: newclosed

Peter fixed all the bad profile cases in r6336.

comment:10 Changed 5 years ago by Ryan Porter

Milestone: C10 releasec13 release

Milestone C10 release deleted

Note: See TracTickets for help on using tickets.