5 #include <configure.hpp>
8 #include <athena/coordinates/coordinates.hpp>
9 #include <athena/hydro/hydro.hpp>
10 #include <athena/mesh/mesh.hpp>
13 #include <application/application.hpp>
20 Application::Logger app(
"inversion");
23 std::vector<Real> zlev(nsample);
24 std::vector<Real> zstd(nsample);
26 Real P0 =
pmy_block_->pcoord->GetReferencePressure();
27 Real H0 =
pmy_block_->pcoord->GetPressureScaleHeight();
29 for (
int i = 0; i < nsample; ++i) zlev[i] = -H0 * log(
plevel_[i] / P0);
33 for (
int i = 0; i < nsample; ++i)
34 zstd[i] =
Xstd_[m] * pow(exp(zlev[i] / H0),
chi_);
36 zstd.data(), nsample,
Xlen_[m]);
39 app->Log(
"Log prior probability = " + std::to_string(lnprior));
MeshBlock const * pmy_block_
pointer to parent MeshBlock
virtual Real LogPriorProbability(Real **XpSample) const
std::vector< Real > plevel_
double gp_lnprior(KernelFunction_t kernel, double const *arr1, double const *x1, double const *s1, int n1, double len)
double SquaredExponential(double x1, double x2, double l, double s1s2=1.)