Skip to content

A minor issue on ACE.SphericalHarmonics:cart2spher #137

@zhanglw0521

Description

@zhanglw0521

If the input of cart2spher is $(0,0,0)$ under Cartesian, it returns NaN for the field $\cos\theta$, which leads to a state that cannot be recognised by function evaluate. Can we map Cartesian $(0,0,0)$ to something like $(0,1,0,1,0)$ under the spherical coordinate system (though we can choose both angles freely...).

e.g., change it to

function cart2spher(R::AbstractVector)
	@assert length(R) == 3
	r = norm(R)
	if r == 0
		return SphericalCoords(0.0, 1.0, 0.0, 1.0, 0.0)
	end
	φ = atan(R[2], R[1])
	sinφ, cosφ = sincos(φ)
	cosθ = R[3] / r
	sinθ = sqrt(R[1]^2+R[2]^2) / r
	return SphericalCoords(r, cosφ, sinφ, cosθ, sinθ)
end

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions