All notable changes to ForCAD will be documented in this file.
The format is based on Keep a Changelog,
- Improved
nearest_point2()
procedures. - Updated and improved unit tests.
- Fixed bugs in
set4
andcompute_dTgc_bspline_2d_vector
innurbs_surface
.
- Added generic
get_nc()
method tonurbs_surface
andnurbs_volume
derived types. - Added
det
,inv
,dyad
andgauss_leg
procedures in theforcad_utils
module. - Added procedure
set1a
to thenurbs_curve
derived type. - Added procedure
set4
tonurbs_curve
,nurbs_area
andnurbs_volume
derived types. - Added optional input variable
elem
toderivative_scalar
procedures. - Added
ansatz
procedures to compute shape functions, derivatives of shape functions and (dV, dA, dL). - Added
cmp_length()
to compute the length of a NURBS curve. - Added
cmp_area()
to compute the area of a NURBS surface. - Added
cmp_volume()
to compute the volume of a NURBS volume. - Added examples for
cmp_length()
,cmp_area()
, andcmp_volume()
.
- Fixed initial guess in
nearest_point2()
procedures
- Added
CHANGELOG.md
file. - Added
CONTRIBUTING.md
file. - Add NURBS surface to PPM conversion examples.
- Utilized ForUnitTest for testing.
- Added Support for
OpenMP
anddo concurrent
. - Implemented memory cleanup in the examples and tests.
- Added cleanup for colormap type in the ppm examples.
- Added screenshots to the README file.
- Included nvidia compiler in the CI.
- Added missing allocation for
Tgc
in thecompute_Xg_nurbs_1d
subroutine. - Added
nearest_point()
procedures to thenurbs_curve
,nurbs_surface
andnurbs_volume
. - Added examples for the
nearest_point()
method. - Added
Xt
to thenurbs_surface
andnurbs_volume
derived types. - Added codecoverage to the CI.
- Added allocate(Tgci) and allocate(dTgci) to
compute_Tgc_nurbs_*d()
andcompute_dTgc_nurbs_*d()
subroutines. - Added
cmp_elemFace_Xc_vis()
to extract element connectivity of the faces of control geometry. - Added
cmp_elemFace_Xg_vis()
to extract element connectivity of the faces of visualization geometry points. - Added
cmp_elemFace()
to extract element connectivity of faces. - Added
cmp_degreeFace()
to extract the degrees of faces. - Updated
example_volume_1
to usecmp_elemFace()
andcmp_degreeFace()
. - Added
cmp_Xg()
to evaluate the geometry points. - Added generic method
derivative2()
to compute the second derivative of a NURBS objects. - Added
nearest_point2()
to compute the nearest point on a NURBS object using optimization. - Added Interfaces.
- Added new tests: fdm_curve.f90, fdm_surface.f90, fdm_volume.f90.
- Updated nearest_point_* examples to use the new
nearest_point2()
method.
- Updated
README.md
file. - Updated tests to use ForUnitTest.
- Added ParaView to the list of References in the README file.
- Used
matmul
instead ofdot_product
in theput_to_nurbs
subroutine. - Removed unused variables in the
put_to_nurbs
subroutine. - Removed unused variables in the
example_ppm3.f90
file. - Renamed program name in the example
put_to_nurbs.f90
file. - Parallelized calculation of distance in the
nearest_point()
method. - Updated
ROADMAP.md
file. - Updated unit tests for
nurbs_curve
. - Improved
elemConn_C0
to support higher order elements and check for the number of elements. - Renamed test files to match the module name.
- Used
do concurrent
withinkron
andbasis_bspline
functions. - Converted the
basis_bspline_der
function to a subroutine. - Fixed NURBS derivative calculations.
- Made
basis
andderivative
generic methods. - Fixed initial guess in
nearest_point2()
procedures
- Excluded macOS from CI due to a problem with fpm.
- Removed
intel-classic
from CI (ifort
is deprecated).