The interactive file manager requires Javascript. Please enable it or use sftp or scp.
You may still browse the files here.
Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
geomlib.tar.gz | 2025-03-13 | 58.3 kB | |
README | 2024-12-05 | 6.9 kB | |
arcs_block_3d.f90 | 2024-02-19 | 2.5 kB | |
quad_area.f90 | 2022-04-12 | 1.2 kB | |
hex_volume.f90 | 2022-03-17 | 1.7 kB | |
tet_vol.f90 | 2022-03-17 | 1.4 kB | |
hex_vol.f90 | 2022-03-17 | 3.0 kB | |
cross_product.f90 | 2022-03-15 | 696 Bytes | |
pyramid_volume.f90 | 2022-03-13 | 1.6 kB | |
curve_diffs.f90 | 2021-01-21 | 5.3 kB | |
solid_angle_quadrature_4.f90 | 2020-02-10 | 2.3 kB | |
handle_flatness.f90 | 2019-09-25 | 6.1 kB | |
detect_flatness.f90 | 2018-05-12 | 3.6 kB | |
detect_vertices.f90 | 2018-05-12 | 2.3 kB | |
angle_between_planes.f90 | 2018-05-04 | 3.1 kB | |
angle_between_vectors.f90 | 2018-05-04 | 1.0 kB | |
nearest_brick_point.f90 | 2016-08-16 | 6.5 kB | |
nearest_tri_pt_2d.f90 | 2016-07-26 | 6.6 kB | |
nearest_edge_pt_2d.f90 | 2016-07-26 | 4.4 kB | |
test_angle2d.f90 | 2014-06-26 | 346 Bytes | |
angle2d.f90 | 2014-06-26 | 1.2 kB | |
solid_angle_quad.f90 | 2014-03-26 | 3.5 kB | |
rotate_xyz.f90 | 2014-03-01 | 2.5 kB | |
surface_normal.f90 | 2014-02-21 | 6.0 kB | |
vertex_curvature.f90 | 2013-11-01 | 4.6 kB | |
nearest_hex_point.f90 | 2013-08-05 | 5.1 kB | |
nearest_prism_point.f90 | 2013-08-05 | 1.1 kB | |
nearest_pyramid_point.f90 | 2013-08-05 | 1.1 kB | |
nearest_quad_point.f90 | 2013-06-14 | 4.2 kB | |
nearest_cell_point.f90 | 2013-06-11 | 6.4 kB | |
circle_slope.f90 | 2012-10-25 | 1.8 kB | |
arcs2d.f | 2012-05-29 | 3.7 kB | |
unitnorm2d.f90 | 2012-02-14 | 2.5 kB | |
nearest_curve_point.f90 | 2012-02-04 | 3.9 kB | |
rigid_transform.f90 | 2011-10-09 | 3.2 kB | |
catenary_parameters.f90 | 2011-10-06 | 2.8 kB | |
gaussian_curvature.f90 | 2008-09-30 | 9.3 kB | |
rotate3d.f | 2007-10-25 | 2.7 kB | |
rotate2d.f | 2007-10-25 | 1.4 kB | |
param2d.f | 2007-09-19 | 5.2 kB | |
tri_normal_and_area.f90 | 2006-07-24 | 2.8 kB | |
chordsrow.f | 2005-10-05 | 2.4 kB | |
nearest_tet_point.f90 | 2004-08-28 | 7.4 kB | |
nearest_tri_point.f90 | 2004-08-27 | 7.1 kB | |
nearest_edge_point.f90 | 2004-08-27 | 4.4 kB | |
beval.f | 2004-05-18 | 13.5 kB | |
project3.f | 2004-03-09 | 4.1 kB | |
project4.f | 2004-02-13 | 8.9 kB | |
arcs3d.f | 2003-11-05 | 6.5 kB | |
area3.f | 2003-11-05 | 1.9 kB | |
area4.f | 2003-11-05 | 2.4 kB | |
areaxy.f | 2003-11-05 | 2.4 kB | |
chord3d.f | 2003-11-05 | 3.2 kB | |
chord.f | 2003-11-05 | 3.3 kB | |
chords2d.f | 2003-11-05 | 2.9 kB | |
chords3d.f | 2003-11-05 | 3.0 kB | |
chordsrf.f | 2003-11-05 | 2.4 kB | |
cross.f | 2003-11-05 | 1.1 kB | |
curv2d.f | 2003-11-05 | 1.5 kB | |
curv3d.f | 2003-11-05 | 1.8 kB | |
distptol.f | 2003-11-05 | 2.1 kB | |
distptop.f | 2003-11-05 | 2.5 kB | |
distptos.f | 2003-11-05 | 6.5 kB | |
param2do.f | 2003-11-05 | 4.9 kB | |
paramxy.f | 2003-11-05 | 3.0 kB | |
paramxyz.f | 2003-11-05 | 6.0 kB | |
polygon3.f | 2003-11-05 | 1.3 kB | |
polygon4.f | 2003-11-05 | 1.9 kB | |
rotate2.f | 2003-11-05 | 1.7 kB | |
unitnorm.f | 2003-11-05 | 2.9 kB | |
xderivs.f | 2003-11-05 | 1.9 kB | |
Totals: 71 Items | 308.5 kB | 4 |
The geomlib collection contains single-function utilities arising from geometric or graphical applications in 2- or 3-space. See also the gridlib and numodules collections for related utilities such as for curvature calculations. Note that the NEAREST_*_POINT utilities all return the point inside or on the boundary of the specified cell along with interpolation coefficients for that point, to be applied to data at the cell vertices. The associated squared distance may or may not be zero, because the returned point is not allowed to be outside the cell being investigated. This functionality is key to the effectiveness of the ADT search packages for various mesh types (see /adt). Conversely, PROJECT3 and PROJECT4 allow interpolation coefficients to be outside [0, 1], meaning the foot of the computed perpendicular may be outside the indicated triangle or quadrilateral in 3-space. But searching cells until one is found for which all coefficients are within [0, 1] is NOT the recommended strategy. The NEAREST_*_POINT utilities employed by the ADT (Alternating Digital Tree) packages are likely to be preferable, as the searches are not affected by whether the target point is inside the grid being searched or outside it. Two-space variants, nearest_edge_pt_2d and nearest_tri_pt_2d, have most recently been prompted by the need to work with Delaunay triangulations of (x,y) data. Two recent additions, DETECT_VERTICES and VERTEX_CURVATURE, are now options in CURVDIS[2] (see gridlib) as needed by the CAPSULE_GRID application. Two more recent additions are also used by gridlib/curvdis.f: detect_flatness and handle_flatness, for broadening high-curvature regions onto flat regions. There are multiple ways of calculating the volume of a tetrahedron, pyramid, and hexahedron, and their results differ slightly. Those based on the tet method found in Wolfram, V = | a . ( b x c) | / 6, and implemented in tet_vol here, are the most efficient. angle2d.f90 ! 2-space angle at point i between adjacent segments angle_between_planes ! Angle between planes defined by two triangles angle_between_vectors! Angle between two vectors in 3-space arcs2d.f ! Normalized arcs for a surface grid stored as triples arcs3d.f ! Normalized arcs for a volume grid stored as triples arcs_block_3d.f90 ! Arc lengths along any line of a 3D volume grid block area3.f ! 3-space triangle area; cross-products/determinants area4.f ! 3-space quadrilateral area, as that of 2 triangles areaxy.f ! 2-space polygon area; no square roots beval.f ! "Sine-bump" type shape functions (see PROFILE app.) catenary_parameters.f90 ! Find a in y = a cosh (x/a) - a for given defln. chord3d.f ! Chord length sum between points on a 3-space curve chord.f ! Chord length sum between points on a 2-space curve chords2d.f ! Cumulative chords lengths, 2-space, normalize option chords3d.f ! Cumulative chords lengths, 3-space, normalize option chordsrf.f ! Variant of CHORDS3D for a row of a surface grid chordsrow.f ! 2-space analogue of CHORDSRF; normalize option circle_slope.f90 ! Find the point on a circle with a specified slope cross.f ! Cross product vector of two 3-space vectors cross_product.f90 ! Updated variant of the cross product curv2d.f ! Signed curvature(s) for a 2-space curve curv3d.f ! Arc-length-based curvature(s) for a 3-space curve curve_diffs ! Shortest distances between two 2-space curves detect_flatness.f90 ! Detect low/zero-curvature regions in a distribtion detect_vertices.f90 ! Detect 1-point spikes in a curvature distribution distptol.f ! Perpendicular dist. from a point to an n-space line distptop.f ! (Careful) distance between two points in 3-space distptos.f ! Distance from a 3-sp. point to a finite line segment gaussian_curvature.f90 ! Gaussian & mean curvatures, structured surface handle_flatness.f90 ! Companion to detect_flatness & gridlib/curvdis.f hex_vol.f90 ! Hexahedron volume as 6 tetraheadra (recommended) hex_volume.f90 ! Hexahedron volume as 3 quad-based pyramids nearest_brick_point.f90 ! Structured-vol.-grid var. of nearest_hex_point nearest_cell_point.f90 ! Nearest pt. in or on a cell of given mixed type nearest_curve_point.f90 ! Nearest pt. not off a finite 3-space curve nearest_edge_pt_2d.f90 ! 2-space variant of nearest_edge_point nearest_edge_point.f90 ! Nearest pt. not off a 3-spc. 2-pt. line segment nearest_hex_point.f90 ! Nearest pt. in or on a hex cell, Fluent order nearest_prism_point.f90 ! To be completed if it's ever needed nearest_pyramid_point.f90 ! To be completed if it's ever needed nearest_quad_point.f90 ! Nearest pt. in or on a quad cell, Fluent order nearest_tet_point.f90 ! Nearest pt. not outside a tet cell nearest_tri_pt_2d.f90 ! 2-space variant of nearest_tri_point nearest_tri_point.f90 ! Nearest pt. in or on a triangular cell, 3-space param2d.f ! [Un]normalized arc lengths in a 3-space surface grid param2do.f ! Variant of PARAM2D with optional Umax, Vmax outputs paramxy.f ! Normalized arc lengths in a 2-space structured grid paramxyz.f ! 3-space variant of PARAMXY (surface or volume grid) polygon3.f ! Centroid and area of a 2-space triangle polygon4.f ! Centroid and area of a 2-space quadrilateral project3.f ! Nearest point on a plane defined by a 3-sp. triangle project4.f ! Nearest point on a surface defined by a 3-sp. quad. pyramid_volume.f90 ! Volume of a quad-based pyramid as base area*height/3 quad_area.f90 ! Quad. cell area via two cross products rigid_transform.f90 ! Transforms interior points given new curve end pts. rotate2.f ! Rotate 2-space point(s) about a 2-sp. pt. rotate2d.f ! Rotate 2-space point(s) about a 2-sp. pt. in place rotate3d.f ! Rotate 3-space point(s) about a 3-sp. pt. in place rotate_xyz.f90 ! Variant of ROTATE3D for xyz(1:3) triple(s) solid_angle_quad.f90 ! Solid angle element at a point for quad. cell (i,j) solid_angle_quadrature_4 ! Integn. w.r.t. solid angle at P over a quad. patch surface_normal.f90 ! (Careful) unit normal to a structured surface tet_vol.f90 ! Tetrahedron volume as | a . (b x c) | / 6 (Wolfram). tri_normal_and_area.f90 ! Unit normal, area of surface triangulation cell unitnorm.f ! Unit normals at points defining a 2-space curve unitnorm2d.f90 ! Unit normal to a 2-space curve at any arc length vertex_curvature.f90 ! Moderate 1-pt. curvature spikes at indicated indices xderivs.f ! Given dx/dt, dy/dt, d2*/dt2, compute dy/dx & d2y/dx2