10 #ifndef __INVERSE_LINEAR_LCONV_EVOLUTION_H 11 #define __INVERSE_LINEAR_LCONV_EVOLUTION_H 15 template<
class LINEAR_QUANTITY_TYPE>
42 double orbital_angmom,
45 double initial_conv_angmom,
51 __evolution_rate(evolution_rate),
52 __linear_quantity(total_angmom, orbital_angmom, initial_conv_angmom),
53 __find_lconv(__linear_quantity,
55 (total_angmom - orbital_angmom)
57 (1.0 + 100.0 *
std::numeric_limits<double>::epsilon())
85 "Finding all solutinos of ConservedLELconvEvolution not supported!" 104 double value = scaled_deriv->
order(0),
106 order2 = scaled_deriv->
order(2) * std::pow(__evolution_rate, 2);
InverseLinearLconvEvolution(double disk_lifetime, double total_angmom, double orbital_angmom, double initial_conv_angmom, double evolution_rate)
Declarses a class for functions that are the inverse of some analytical function. ...
A class representing a once differentiable function of a single argument.
double operator()(double age) const
Return the expected value for the stellar convective angular momentum at the given age...
Core::InterpSolutionIterator crossings(double=0) const
An iterator over the abscissas where the function takes the given y value.
InverseFunction __find_lconv
Evaluates to Lconv given .
double range_high() const
The lower end of the range over which the function is defined.
double __disk_lifetime
The lifetime of the protoplanetary disk.
virtual double order(unsigned deriv_order=1) const =0
Derivative of the given order of the function with respect to its argument.
An iterator over a set of solutions to an interpolating function.
double range_high() const
The lower end of the range over which the function is defined is uknown.
A class representing arbitrary order derivatives of a function.
double __evolution_rate
The rate at which the linear quantity (see for example Oblique10LinearQuantity) evolves.
double range_low() const
The upper end of the range over which the function is defined.
A class for the derivatives of a cubic spline (=0 for order>2).
The invrse of an existing function.
LINEAR_QUANTITY_TYPE __linear_quantity
A function of the convective zone angular momentum which evolves linearly with time.
const Core::FunctionDerivatives * deriv(double x) const
Returns a pointer to the derivative of the function.
double disk_lifetime() const
The disk lifetime specified at construction.
const Core::FunctionDerivatives * deriv(double age) const
Returns a pointer to the derivative of the function.