ADflow  v1.0
ADflow is a finite volume RANS solver tailored for gradient-based aerodynamic design optimization.
Functions/Subroutines
stringops Module Reference

Functions/Subroutines

subroutine nullifystring (string)
 
subroutine deallocatestring (string)
 
subroutine setstringpointers (string)
 
subroutine createorderedstrings (master, strings, nString)
 
subroutine performselfzip (master, strings, nStrings, debugZipper)
 
subroutine reducegapstring (string)
 
recursive subroutine createnodetoelem (string)
 
subroutine dochain (master, iStart, iSub)
 
subroutine createsubstringfromelems (p, s, id)
 
subroutine combinechainbuffers (s)
 
subroutine selfzip (s, cutOff, nZipped)
 
subroutine crosszip (str1, N1, N2, str2, N3, N4, debugZipper, failed)
 
subroutine addtri (A, sA, B, sB, C, sC)
 
subroutine makecrosszip (p, strings, nStrings, debugZipper)
 
subroutine makepocketzip (p, strings, nStrings, pocketMaster, debugZipper)
 
subroutine pocketzip (s)
 
subroutine computetrisurfarea (master, area)
 
logical function trioverlap (pt1, pt2, pt3, str, i1, i2)
 
subroutine shortenstring (s, nodeMap)
 
subroutine addpotentialtriangle (s, im1, ii, ip1, nodeMap, results, added)
 
subroutine closestsymmetricnode (s1, s2, i, j)
 
subroutine stringmatch (strings, nStrings, debugZipper)
 
subroutine writeoversetstring (str, strings, n, fileID)
 
subroutine writeoversetmaster (str, fileID)
 
subroutine writeoversettriangles (string, fileName, startTri, endTri)
 
subroutine writezipperdebug (str)
 
subroutine loadzipperdebug (fileName, str)
 
subroutine pointintriangle (x1, x2, x3, pt, inTri)
 
logical function positivetriarea (p1, p2, p3, norm)
 
subroutine getnodeinfo (str, j, checkLeft, checkRight, concave, xj, xjm1, xjp1, normj)
 
logical function nodeinfrontofedges (pt, concave, checkLeft, checkRight, xj, xjm1, xjp1, normj)
 
logical function overlappededges (str, j, pt)
 
logical function overlappededges2 (str, pt1, norm, pt2)
 

Function/Subroutine Documentation

◆ addpotentialtriangle()

subroutine stringops::addpotentialtriangle ( type(oversetstring s,
integer(kind=inttype), intent(in)  im1,
integer(kind=inttype), intent(in)  ii,
integer(kind=inttype), intent(in)  ip1,
integer(kind=inttype), dimension(:), intent(inout)  nodeMap,
type(kdtree2_result), dimension(:), allocatable  results,
logical, intent(out)  added 
)

Definition at line 2372 of file stringOps.F90.

References addtri(), constants::half, kdtree2_module::kdtree2_r_nearest(), pointintriangle(), and constants::zero.

Referenced by pocketzip(), and selfzip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addtri()

subroutine stringops::addtri ( integer(kind=inttype), intent(in)  A,
type(oversetstring), intent(in)  sA,
integer(kind=inttype), intent(in)  B,
type(oversetstring), intent(in)  sB,
integer(kind=inttype), intent(in)  C,
type(oversetstring), intent(in)  sC 
)

Definition at line 1328 of file stringOps.F90.

Referenced by addpotentialtriangle(), crosszip(), and pocketzip().

Here is the caller graph for this function:

◆ closestsymmetricnode()

subroutine stringops::closestsymmetricnode ( type(oversetstring s1,
type(oversetstring s2,
integer(kind=inttype), intent(out)  i,
integer(kind=inttype), intent(out)  j 
)

Definition at line 2476 of file stringOps.F90.

References constants::large, and utils::mynorm2().

Referenced by makecrosszip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ combinechainbuffers()

subroutine stringops::combinechainbuffers ( type(oversetstring), intent(inout)  s)

Definition at line 613 of file stringOps.F90.

Referenced by createorderedstrings().

Here is the caller graph for this function:

◆ computetrisurfarea()

subroutine stringops::computetrisurfarea ( type(oversetstring), intent(in)  master,
real(kind=realtype), intent(out)  area 
)

Definition at line 2214 of file stringOps.F90.

References utils::cross_prod(), constants::half, and utils::mynorm2().

Here is the call graph for this function:

◆ createnodetoelem()

recursive subroutine stringops::createnodetoelem ( type(oversetstring string)

Definition at line 342 of file stringOps.F90.

References utils::terminate().

Referenced by createorderedstrings(), createsubstringfromelems(), makepocketzip(), and shortenstring().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createorderedstrings()

subroutine stringops::createorderedstrings ( type(oversetstring master,
type(oversetstring), dimension(:), allocatable  strings,
integer(kind=inttype)  nString 
)

Definition at line 104 of file stringOps.F90.

References combinechainbuffers(), createnodetoelem(), createsubstringfromelems(), dochain(), and nullifystring().

Referenced by zippermesh::zippercore().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ createsubstringfromelems()

subroutine stringops::createsubstringfromelems ( type(oversetstring), intent(in), target  p,
type(oversetstring), intent(out)  s,
integer(kind=inttype), intent(in)  id 
)

Definition at line 508 of file stringOps.F90.

References createnodetoelem(), nullifystring(), and setstringpointers().

Referenced by createorderedstrings(), and makepocketzip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ crosszip()

subroutine stringops::crosszip ( type(oversetstring), intent(inout)  str1,
integer(kind=inttype)  N1,
integer(kind=inttype)  N2,
type(oversetstring), intent(inout)  str2,
integer(kind=inttype)  N3,
integer(kind=inttype)  N4,
logical  debugZipper,
logical  failed 
)

Definition at line 741 of file stringOps.F90.

References addtri(), utils::cross_prod(), utils::mynorm2(), nextnode(), positivetriarea(), trioverlap(), and vecangle().

Referenced by makecrosszip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ deallocatestring()

subroutine stringops::deallocatestring ( type(oversetstring string)

Definition at line 37 of file stringOps.F90.

References nullifystring().

Referenced by zippermesh::createzippermesh(), gapboundaries::makegapboundarystrings(), makepocketzip(), and zippermesh::zippercore().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dochain()

subroutine stringops::dochain ( type(oversetstring master,
integer(kind=inttype), intent(in)  iStart,
integer(kind=inttype), intent(in)  iSub 
)

Definition at line 434 of file stringOps.F90.

Referenced by createorderedstrings(), and makepocketzip().

Here is the caller graph for this function:

◆ getnodeinfo()

subroutine stringops::getnodeinfo ( type(oversetstring str,
integer(kind=inttype)  j,
logical  checkLeft,
logical  checkRight,
logical  concave,
real(kind=realtype), dimension(3)  xj,
real(kind=realtype), dimension(3)  xjm1,
real(kind=realtype), dimension(3)  xjp1,
real(kind=realtype), dimension(3)  normj 
)

Definition at line 3098 of file stringOps.F90.

References utils::cross_prod(), and constants::zero.

Referenced by stringmatch().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ loadzipperdebug()

subroutine stringops::loadzipperdebug ( character(*), intent(in)  fileName,
type(oversetstring str 
)

Definition at line 3007 of file stringOps.F90.

References nullifystring(), and setstringpointers().

Referenced by zippermesh::checkzipper().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ makecrosszip()

subroutine stringops::makecrosszip ( type(oversetstring), intent(inout), target  p,
type(oversetstring), dimension(nstrings), intent(inout), target  strings,
integer(kind=inttype), intent(in)  nStrings,
logical, intent(in)  debugZipper 
)

Definition at line 1373 of file stringOps.F90.

References closestsymmetricnode(), crosszip(), elemsforrange(), flagnodesused(), nextnode(), prevnode(), startnode(), and tracematch().

Referenced by zippermesh::zippercore().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ makepocketzip()

subroutine stringops::makepocketzip ( type(oversetstring), intent(in)  p,
type(oversetstring), dimension(nstrings), intent(in)  strings,
integer(kind=inttype), intent(in)  nStrings,
type(oversetstring pocketMaster,
logical, intent(in)  debugZipper 
)

◆ nodeinfrontofedges()

logical function stringops::nodeinfrontofedges ( real(kind=realtype), dimension(3), intent(in)  pt,
logical, intent(in)  concave,
logical, intent(in)  checkLeft,
logical, intent(in)  checkRight,
real(kind=realtype), dimension(3), intent(in)  xj,
real(kind=realtype), dimension(3), intent(in)  xjm1,
real(kind=realtype), dimension(3), intent(in)  xjp1,
real(kind=realtype), dimension(3), intent(in)  normj 
)

Definition at line 3160 of file stringOps.F90.

References positivetriarea().

Referenced by stringmatch().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ nullifystring()

subroutine stringops::nullifystring ( type(oversetstring string)

Definition at line 7 of file stringOps.F90.

Referenced by createorderedstrings(), createsubstringfromelems(), deallocatestring(), loadzipperdebug(), gapboundaries::makegapboundarystrings(), and makepocketzip().

Here is the caller graph for this function:

◆ overlappededges()

logical function stringops::overlappededges ( type(oversetstring), intent(in)  str,
integer(kind=inttype), intent(in)  j,
real(kind=realtype), dimension(3), intent(in)  pt 
)

Definition at line 3192 of file stringOps.F90.

References utils::cross_prod(), constants::half, utils::mynorm2(), constants::one, and constants::zero.

Referenced by stringmatch().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ overlappededges2()

logical function stringops::overlappededges2 ( type(oversetstring), intent(in)  str,
real(kind=realtype), dimension(3), intent(in)  pt1,
real(kind=realtype), dimension(3), intent(in)  norm,
real(kind=realtype), dimension(3), intent(in)  pt2 
)

Definition at line 3285 of file stringOps.F90.

References utils::cross_prod(), constants::half, utils::mynorm2(), constants::one, and constants::zero.

Referenced by stringmatch().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ performselfzip()

subroutine stringops::performselfzip ( type(oversetstring master,
type(oversetstring), dimension(nstrings), target  strings,
integer(kind=inttype)  nStrings,
logical, intent(in)  debugZipper 
)

Definition at line 205 of file stringOps.F90.

References selfzip(), inputoverset::selfzipcutoff, and stringmatch().

Referenced by zippermesh::zippercore().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pocketzip()

subroutine stringops::pocketzip ( type(oversetstring), intent(inout), target  s)

Definition at line 2071 of file stringOps.F90.

References addpotentialtriangle(), addtri(), utils::cross_prod(), constants::large, utils::mynorm2(), nextnode(), constants::one, prevnode(), and shortenstring().

Referenced by makepocketzip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pointintriangle()

subroutine stringops::pointintriangle ( real(kind=realtype), dimension(3), intent(in)  x1,
real(kind=realtype), dimension(3), intent(in)  x2,
real(kind=realtype), dimension(3), intent(in)  x3,
real(kind=realtype), dimension(3), intent(in)  pt,
logical, intent(out)  inTri 
)

Definition at line 3051 of file stringOps.F90.

References utils::cross_prod(), and sameside().

Referenced by addpotentialtriangle(), and trioverlap().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ positivetriarea()

logical function stringops::positivetriarea ( real(kind=realtype), dimension(3), intent(in)  p1,
real(kind=realtype), dimension(3), intent(in)  p2,
real(kind=realtype), dimension(3), intent(in)  p3,
real(kind=realtype), dimension(3), intent(in)  norm 
)

Definition at line 3081 of file stringOps.F90.

References utils::cross_prod(), and constants::zero.

Referenced by crosszip(), and nodeinfrontofedges().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reducegapstring()

subroutine stringops::reducegapstring ( type(oversetstring), intent(inout)  string)

Definition at line 258 of file stringOps.F90.

References utils::mynorm2(), utils::pointreduce(), setstringpointers(), and constants::zero.

Referenced by gapboundaries::makegapboundarystrings(), and makepocketzip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ selfzip()

subroutine stringops::selfzip ( type(oversetstring), intent(inout), target  s,
real(kind=realtype), intent(in)  cutOff,
integer(kind=inttype), intent(out)  nZipped 
)

Definition at line 635 of file stringOps.F90.

References addpotentialtriangle(), utils::cross_prod(), utils::mynorm2(), constants::pi, shortenstring(), and constants::zero.

Referenced by performselfzip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setstringpointers()

subroutine stringops::setstringpointers ( type(oversetstring string)

◆ shortenstring()

subroutine stringops::shortenstring ( type(oversetstring s,
integer(kind=inttype), dimension(:), intent(inout)  nodeMap 
)

Definition at line 2279 of file stringOps.F90.

References createnodetoelem(), and setstringpointers().

Referenced by pocketzip(), and selfzip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stringmatch()

subroutine stringops::stringmatch ( type(oversetstring), dimension(nstrings), target  strings,
integer(kind=inttype), intent(in)  nStrings,
logical, intent(in)  debugZipper 
)

Definition at line 2509 of file stringOps.F90.

References getnodeinfo(), kdtree2_module::kdtree2_n_nearest(), constants::large, utils::mynorm2(), nodeinfrontofedges(), overlappededges(), and overlappededges2().

Referenced by performselfzip(), and zippermesh::zippercore().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ trioverlap()

logical function stringops::trioverlap ( real(kind=realtype), dimension(3), intent(in)  pt1,
real(kind=realtype), dimension(3), intent(in)  pt2,
real(kind=realtype), dimension(3), intent(in)  pt3,
type(oversetstring), intent(in)  str,
integer(kind=inttype), intent(in)  i1,
integer(kind=inttype), intent(in)  i2 
)

Definition at line 2243 of file stringOps.F90.

References utils::cross_prod(), utils::mynorm2(), and pointintriangle().

Referenced by crosszip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeoversetmaster()

subroutine stringops::writeoversetmaster ( type(oversetstring), intent(in)  str,
integer(kind=inttype), intent(in)  fileID 
)

Definition at line 2903 of file stringOps.F90.

References commonformats::int5, utils::mynorm2(), and commonformats::sci12.

Referenced by zippermesh::zippercore().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeoversetstring()

subroutine stringops::writeoversetstring ( type(oversetstring), intent(in)  str,
type(oversetstring), dimension(n), intent(in)  strings,
integer(kind=inttype), intent(in)  n,
integer(kind=inttype), intent(in)  fileID 
)

Definition at line 2797 of file stringOps.F90.

References commonformats::int5, utils::mynorm2(), commonformats::sci12, and constants::zero.

Referenced by makepocketzip(), and zippermesh::zippercore().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ writeoversettriangles()

subroutine stringops::writeoversettriangles ( type(oversetstring), intent(inout)  string,
character(*)  fileName,
integer(kind=inttype), intent(in)  startTri,
integer(kind=inttype), intent(in)  endTri 
)

Definition at line 2937 of file stringOps.F90.

References commonformats::sci12.

Referenced by zippermesh::zippercore().

Here is the caller graph for this function:

◆ writezipperdebug()

subroutine stringops::writezipperdebug ( type(oversetstring str)

Definition at line 2973 of file stringOps.F90.

Referenced by zippermesh::createzippermesh().

Here is the caller graph for this function: