GLAMERDOC++
Gravitational Lensing Code Library
Loading...
Searching...
No Matches
ISOP Namespace Reference

ISOP namespace is for functions related to isoparametric interpolation. More...

Namespaces

namespace  Rules
 Quadrature rules. Must be of the closed type.
 

Classes

struct  isop_map
 Functor to transparently map [-1,1]x[-1,1] to interpolation space. More...
 
struct  quadrature_result
 Result of numerical integration. More...
 

Functions

double isop (const double nodes[], double xi, double eta)
 Do the isoparametric interpolation given a list of 8 nodes. See notes for isop_render().
 
template<typename Function >
isop_map< Function > make_isop_map (Function f, const double *x, const double *y)
 Creates an isoparametric mapping functor.
 
double isop_render (Source &source, const double nodx[], const double nody[], double a_xi, double b_xi, double a_eta, double b_eta)
 Integrate source flux using the isoparameterized lens.
 
template<typename Rule , typename Function >
quadrature_result quadrature (Function f, double a0, double b0, double a1, double b1, double pg, double ag)
 

Detailed Description

ISOP namespace is for functions related to isoparametric interpolation.

Function Documentation

◆ isop()

double ISOP::isop ( const double nodes[],
double xi,
double eta )
inline

Do the isoparametric interpolation given a list of 8 nodes. See notes for isop_render().

Parameters
nodesvalues of interpolated quantity (ie kappa, y coordinate) for the 8 border points
xix position where interpolate is wanted in [-1,1 units
etay position where interpolate is wanted in [-1,1 units

◆ isop_render()

double ISOP::isop_render ( Source & source,
const double nodx[],
const double nody[],
double a_xi,
double b_xi,
double a_eta,
double b_eta )

Integrate source flux using the isoparameterized lens.

Integrate the surface brightness of a source using the isoparametric representation of the lens mapping.

The isoparametric representation is defined by the 8 nodes on the border of a [-1,1]x[-1,1] square. The first node (index 0) is in the bottom-left corner, and then nodes are counted counter-clockwise:

* 6 -- 5 -- 4
* |         |
* 7         3
* |         |
* 0 -- 1 -- 2
* 

The positions of the nodes in the isoparametric space are

* (-1, 1) -- ( 0, 1) -- ( 1, 1)
*    |                     |
* (-1, 0)               ( 1, 0)
*    |                     |
* (-1,-1) -- ( 0,-1) -- ( 1,-1)
* 

The interval to be integrated is given in terms of the isoparametric coordinates xi and eta.

Parameters
sourceSource to be integrated
nodxSource plane x coordinates of 8 nodes.
nodySource plane y coordinates of 8 nodes.
a_xiLower bound of xi integration.
b_xiUpper bound of xi integration.
a_etaLower bound of eta integration.
b_etaUpper bound of eta integration.