0.6.0
Loading...
Searching...
No Matches
mod_mof3d_tetra_analytic_centroid Module Reference

Functions/Subroutines

pure subroutine, public mof3d_tetra_compute_analytic_gradient (p0, p1, p2, p3, angles, ref_centroid1, ref_centroid2, ref_volume, objective, gradient)
 Compute the centroid and the gradient of the objective function in a tetrahedral cell.
 
pure subroutine, public mof3d_tetra_compute_residual (p0, p1, p2, p3, angles, ref_centroid1, ref_centroid2, ref_volume, residual, jacobian)
 Compute the centroid and the derivatives in a tetrahedral cell.
 
pure subroutine, public mof3d_tetra_find_best_transformation (tetra, cell_centroid, ref_centroid, best_tetra)
 
pure subroutine, public mof3d_tetra_compute_transformation (p0, p1, p2, p3, transformation)
 Compute the matrix to transform the reference tetrahedron to the original (transformed) tetrahedron.
 
pure subroutine, public mof3d_tetra_transform_angles_to_reference (transformation, orig_angles, ref_angles)
 Transform the spherical angles in the original configuration to the reference configuration.
 
pure subroutine, public mof3d_tetra_transform_angles_to_original (transformation, ref_angles, orig_angles)
 Transform the spherical angles in the reference configuration to the original configuration.
 
pure subroutine, public mof3d_tetra_compute_analytic_gradient_reference (angles, ref_centroid, volume, objective, gradient)
 Compute the centroid and the gradient of the objective function in the reference tetrahedron.
 
pure subroutine compute_derivatives (angles, volume, centroid, derivative)
 
pure subroutine derivatives_triangle1 (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_triangle1dual (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_triangle2 (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_triangle2dual (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_triangle3 (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_triangle3dual (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_triangle4 (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_triangle4dual (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_quad_edge1 (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_quad_edge1dual (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_quad_edge2 (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_quad_edge2dual (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_quad_edge3 (trigo, volume, derivative_theta, derivative_phi, centroid)
 
pure subroutine derivatives_quad_edge3dual (trigo, volume, derivative_theta, derivative_phi, centroid)
 
double precision pure function g0 (x, y, z)
 
double precision pure function g1 (x, y, z)
 
double precision pure function f0qex (x, y, z, v)
 
double precision pure function f0qez (x, y, z, v)
 
double precision pure function f1qex (x, y, z, v)
 
double precision pure function f1qez (x, y, z, v)
 
double precision pure function f1qexbis (x, y, z, v, sqrt_t23)
 
double precision pure function f1qezbis (x, y, z, v, sqrt_t23)
 
double precision pure function f2qex (x, y, z)
 
double precision pure function f2qez (x, y, z)
 
pure subroutine quadedge_analytic_derivatives (trigo, a, b, c, d, volume, derivative_theta, derivative_phi)
 
double precision pure function modulo_tau (x)
 

Variables

double precision, parameter pi_2 = acos(0d0)
 
double precision, parameter pi = 2d0*acos(0d0)
 
double precision, parameter tau = 4d0*acos(0d0)
 
integer, parameter c_theta = 1
 
integer, parameter s_theta = 2
 
integer, parameter c_phi = 3
 
integer, parameter s_phi = 4
 

Function/Subroutine Documentation

◆ compute_derivatives()

pure subroutine mod_mof3d_tetra_analytic_centroid::compute_derivatives ( double precision, dimension(2), intent(in) angles,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) centroid,
double precision, dimension(3,2), intent(out) derivative )
private

◆ derivatives_quad_edge1()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_quad_edge1 ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_quad_edge1dual()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_quad_edge1dual ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_quad_edge2()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_quad_edge2 ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_quad_edge2dual()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_quad_edge2dual ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_quad_edge3()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_quad_edge3 ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_quad_edge3dual()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_quad_edge3dual ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_triangle1()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_triangle1 ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_triangle1dual()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_triangle1dual ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_triangle2()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_triangle2 ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_triangle2dual()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_triangle2dual ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_triangle3()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_triangle3 ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_triangle3dual()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_triangle3dual ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_triangle4()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_triangle4 ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ derivatives_triangle4dual()

pure subroutine mod_mof3d_tetra_analytic_centroid::derivatives_triangle4dual ( double precision, dimension(4), intent(in) trigo,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi,
double precision, dimension(3), intent(out) centroid )
private

◆ f0qex()

double precision pure function mod_mof3d_tetra_analytic_centroid::f0qex ( double precision, intent(in) x,
double precision, intent(in) y,
double precision, intent(in) z,
double precision, intent(in) v )
private

◆ f0qez()

double precision pure function mod_mof3d_tetra_analytic_centroid::f0qez ( double precision, intent(in) x,
double precision, intent(in) y,
double precision, intent(in) z,
double precision, intent(in) v )
private

◆ f1qex()

double precision pure function mod_mof3d_tetra_analytic_centroid::f1qex ( double precision, intent(in) x,
double precision, intent(in) y,
double precision, intent(in) z,
double precision, intent(in) v )
private

◆ f1qexbis()

double precision pure function mod_mof3d_tetra_analytic_centroid::f1qexbis ( double precision, intent(in) x,
double precision, intent(in) y,
double precision, intent(in) z,
double precision, intent(in) v,
double precision, intent(in) sqrt_t23 )
private

◆ f1qez()

double precision pure function mod_mof3d_tetra_analytic_centroid::f1qez ( double precision, intent(in) x,
double precision, intent(in) y,
double precision, intent(in) z,
double precision, intent(in) v )
private

◆ f1qezbis()

double precision pure function mod_mof3d_tetra_analytic_centroid::f1qezbis ( double precision, intent(in) x,
double precision, intent(in) y,
double precision, intent(in) z,
double precision, intent(in) v,
double precision, intent(in) sqrt_t23 )
private

◆ f2qex()

double precision pure function mod_mof3d_tetra_analytic_centroid::f2qex ( double precision, intent(in) x,
double precision, intent(in) y,
double precision, intent(in) z )
private

◆ f2qez()

double precision pure function mod_mof3d_tetra_analytic_centroid::f2qez ( double precision, intent(in) x,
double precision, intent(in) y,
double precision, intent(in) z )
private

◆ g0()

double precision pure function mod_mof3d_tetra_analytic_centroid::g0 ( double precision, intent(in) x,
double precision, intent(in) y,
double precision, intent(in) z )
private

◆ g1()

double precision pure function mod_mof3d_tetra_analytic_centroid::g1 ( double precision, intent(in) x,
double precision, intent(in) y,
double precision, intent(in) z )
private

◆ modulo_tau()

double precision pure function mod_mof3d_tetra_analytic_centroid::modulo_tau ( double precision, intent(in) x)
private

◆ mof3d_tetra_find_best_transformation()

pure subroutine, public mod_mof3d_tetra_analytic_centroid::mof3d_tetra_find_best_transformation ( type(t_polyhedron), intent(in) tetra,
double precision, dimension(3), intent(in) cell_centroid,
double precision, dimension(3), intent(in) ref_centroid,
type(t_polyhedron), intent(out) best_tetra )

◆ quadedge_analytic_derivatives()

pure subroutine mod_mof3d_tetra_analytic_centroid::quadedge_analytic_derivatives ( double precision, dimension(4), intent(in) trigo,
double precision, dimension(3), intent(in) a,
double precision, dimension(3), intent(in) b,
double precision, dimension(3), intent(in) c,
double precision, dimension(3), intent(in) d,
double precision, intent(in) volume,
double precision, dimension(3), intent(out) derivative_theta,
double precision, dimension(3), intent(out) derivative_phi )
private

Variable Documentation

◆ c_phi

integer, parameter mod_mof3d_tetra_analytic_centroid::c_phi = 3
private

◆ c_theta

integer, parameter mod_mof3d_tetra_analytic_centroid::c_theta = 1
private

◆ pi

double precision, parameter mod_mof3d_tetra_analytic_centroid::pi = 2d0*acos(0d0)
private

◆ pi_2

double precision, parameter mod_mof3d_tetra_analytic_centroid::pi_2 = acos(0d0)
private

◆ s_phi

integer, parameter mod_mof3d_tetra_analytic_centroid::s_phi = 4
private

◆ s_theta

integer, parameter mod_mof3d_tetra_analytic_centroid::s_theta = 2
private

◆ tau

double precision, parameter mod_mof3d_tetra_analytic_centroid::tau = 4d0*acos(0d0)
private