GyotoKerrKS.h
Go to the documentation of this file.
/*
Copyright 2011-2015 Frederic Vincent, Thibaut Paumard
This file is part of Gyoto.
Gyoto is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Gyoto is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Gyoto. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __GyotoKerrKS_H_
#define __GyotoKerrKS_H_
namespace Gyoto {
namespace Metric { class KerrKS; }
}
#include <GyotoMetric.h>
#include <GyotoWorldline.h>
#ifdef GYOTO_USE_XERCES
#include <GyotoRegister.h>
#endif
class Gyoto::Metric::KerrKS
: public Metric::Generic
{
friend class Gyoto::SmartPointer<Gyoto::Metric::KerrKS>;
// Data :
// -----
protected:
double spin_ ;
double a2_;
double rsink_;
double drhor_;
// Constructors - Destructor
// -------------------------
public:
GYOTO_OBJECT;
KerrKS();
virtual KerrKS* clone () const;
// Mutators / assignment
// ---------------------
public:
// default operator= is fine
void spin(const double spin);
// Accessors
// ---------
public:
double spin() const ;
void horizonSecurity(double drhor);
double horizonSecurity() const;
virtual double gmunu(double const x[4], int alpha, int beta) const ;
virtual void gmunu(double ARGOUT_ARRAY2[4][4], const double IN_ARRAY1[4]) const ;
using Gyoto::Metric::Generic::gmunu_up;
virtual void gmunu_up(double ARGOUT_ARRAY2[4][4], const double IN_ARRAY1[4]) const;
virtual void jacobian(double ARGOUT_ARRAY3[4][4][4], const double x[4]) const ;
virtual void gmunu_up_and_jacobian(double ARGOUT_ARRAY2[4][4], double ARGOUT_ARRAY3[4][4][4], const double IN_ARRAY1[4]) const;
virtual void circularVelocity(double const pos[4], double vel [4],
double dir=1.) const ;
virtual int isStopCondition(double const coord[8]) const;
virtual int setParameter(std::string name,
std::string content,
std::string unit);
};
#endif
GyotoMetric.h
Base class for metric description.
GYOTO_OBJECT
#define GYOTO_OBJECT
Declare class::properties and class::getProperties().
Definition GyotoObject.h:84
GyotoRegister.h
Gyoto registers.
GyotoWorldline.h
Timelike or null geodesics.
Gyoto::Metric::Generic
Base class for metrics.
Definition GyotoMetric.h:162
Gyoto::Metric::Generic::gmunu_up
virtual double gmunu_up(double const x[4], int mu, int nu) const
Metric contravariant coefficients.
Gyoto::Metric::KerrKS
Metric around a Kerr black-hole in Kerr-Schild coordinates Warning: this metric is seldom used and ma...
Definition GyotoKerrKS.h:54
Gyoto::Metric::KerrKS::rsink_
double rsink_
numerical horizon
Definition GyotoKerrKS.h:63
Gyoto::Metric::KerrKS::spin_
double spin_
Angular momentum parameter.
Definition GyotoKerrKS.h:61
Gyoto::Metric::KerrKS::setParameter
virtual int setParameter(std::string name, std::string content, std::string unit)
Set parameter by name.
Gyoto::Metric::KerrKS::drhor_
double drhor_
horizon security
Definition GyotoKerrKS.h:64
Gyoto::Metric::KerrKS::jacobian
virtual void jacobian(double ARGOUT_ARRAY3[4][4][4], const double x[4]) const
The derivatives of gmunu.
Gyoto::Metric::KerrKS::spin
void spin(const double spin)
Set spin.
Gyoto::Metric::KerrKS::gmunu_up
virtual void gmunu_up(double ARGOUT_ARRAY2[4][4], const double IN_ARRAY1[4]) const
The inverse matrix of gmunu.
Gyoto::Metric::KerrKS::KerrKS
KerrKS()
Default constructor.
Gyoto::Metric::KerrKS::a2_
double a2_
spin_*spin_
Definition GyotoKerrKS.h:62
Gyoto::Metric::KerrKS::isStopCondition
virtual int isStopCondition(double const coord[8]) const
Check whether integration should stop.
Gyoto::Metric::KerrKS::gmunu
virtual double gmunu(double const x[4], int alpha, int beta) const
Metric coefficients.
Gyoto::Metric::KerrKS::clone
virtual KerrKS * clone() const
Copy constructor.
Gyoto::Metric::KerrKS::circularVelocity
virtual void circularVelocity(double const pos[4], double vel[4], double dir=1.) const
Yield circular velocity at a given position.
Gyoto::Metric::KerrKS::gmunu_up_and_jacobian
virtual void gmunu_up_and_jacobian(double ARGOUT_ARRAY2[4][4], double ARGOUT_ARRAY3[4][4][4], const double IN_ARRAY1[4]) const
gmunu_up() and jacobian() in one go
Gyoto::SmartPointer
Pointers performing reference counting.
Definition GyotoSmartPointer.h:135
Gyoto::Metric
Access to metrics.
Definition GyotoAstrobj.h:47
Gyoto
Namespace for the Gyoto library.
Definition GyotoAstrobj.h:44