Changes
#40 (Dec 29, 2023, 3:32:09 PM)
- Fix fun3d NMakefile — galbramc / detail
- Use AFLR instead of Tetgen for SU2 testing — galbramc / detail
- Swap serveCSM with serveESP — galbramc / detail
- Update meshWriter structure and function documentation — galbramc / detail
- Remove c++ link for tacs AIM — galbramc / detail
- Update CAPS copyright — galbramc / detail
- One more try fixing Cart3D — galbramc / detail
- Try cart3d fix one more time — galbramc / detail
- Another try at fixing Cart3D — galbramc / detail
- Remove one more undefined error — galbramc / detail
- More link warning fixes — galbramc / detail
- stanalizer fix — galbramc / detail
- Remove unnecessary lc++ — galbramc / detail
- Fix link warning — galbramc / detail
- Training solution fixes — galbramc / detail
- More dox fixes — galbramc / detail
- Add fun3d refine example. Update dox — galbramc / detail
- Forgot updated example — galbramc / detail
- Fix astros Aero_Reference so it's a tuple — galbramc / detail
- Add missing -ldl — galbramc / detail
- Missed one file — galbramc / detail
- Improve speed of mesh QuickRef and fix memory leak — galbramc / detail
- More abaqus fixes — galbramc / detail
- Fix nodal averaging for abaqus — galbramc / detail
- Lint fix, add abaqus concentrated load — galbramc / detail
- Abaqus does not write out all nodes — galbramc / detail
- Refactor abaqus displacement reads — galbramc / detail
- Lint fix — galbramc / detail
- Add Tmax to abaqus AIM outpus — galbramc / detail
- Fixes to abaqus dor FSI — galbramc / detail
- lint fixes — galbramc / detail
- Fix typo — galbramc / detail
- Fix double free in mystran. Fix Windoze NMakefiles — galbramc / detail
- Abaqus IO is really really slow... — galbramc / detail
- Read MISES and Displacements from Abaqus .dat file — galbramc / detail
- Fix windoze build — galbramc / detail
- Move cython generated files into sub-directories so scan-build can ignore them — galbramc / detail
- Abaqus fixes — galbramc / detail
- Fix capsBound sideset segfault for exodus — galbramc / detail
- Lint fixes — galbramc / detail
- Parse outputs with SierraSM. Add Displacement dynout for mystran. — galbramc / detail
- One more lint fix — galbramc / detail
- Don't scan-build cython generated files — galbramc / detail
- scan-build fixes — galbramc / detail
- lint fixes — galbramc / detail
- Add maximum displacement for mystran — galbramc / detail
- Fix abaqus NMakefile — galbramc / detail
- Fix abaqus Windoze build — galbramc / detail
- Add abaqus to AGARD445 — galbramc / detail
- Fix warnings — galbramc / detail
- Update makefile. Update cython instantiations. Other small fixes — galbramc / detail
- Add abaqus AIM — galbramc / detail
- Update some examples, add abaqus examples — galbramc / detail
- AFLR2 dods not apways generare valid quads — galbramc / detail
- Fix ESPxddm. Fix dox — galbramc / detail
- Write capsBound as sideset for exodus — galbramc / detail
- Write out capsGroups as exodus sidesets — galbramc / detail
- Distingush between 2D and 3D quad in exodus — galbramc / detail
- Fix merging of VLM surfaces for astros — galbramc / detail
- Fix link error — galbramc / detail
- Add missing include — galbramc / detail
- Finish allowing quad elements in Exodus files. — galbramc / detail
- Add quad mesh support for Exodus files — galbramc / detail
- Fix for SierraSD solution read — galbramc / detail
- One last stanalizer fix — galbramc / detail
- Stanalizer fixes — galbramc / detail
- Update SierraSD to provude nodal averaged elemental data — galbramc / detail
- Try to fix another warning — galbramc / detail
- Rename siearra to sierraSM — galbramc / detail
- Fix compiler warnings — galbramc / detail
- Add sierraSD to aim Makefile. Other small updates. — galbramc / detail
- Add initial sierraSD AIM framework. Lots of work still todo. — galbramc / detail
- More error checking in nastranAIM. Don't allocate zero length array. — galbramc / detail
- Add Input_String to sierra — galbramc / detail
- Various small updates — galbramc / detail
- Add framework for sierra AIM — galbramc / detail
- Make outputs lower case in fun3d when not compiled with python — galbramc / detail
- Lint fix — galbramc / detail
- Use EG_mapBody2 for morhing bodies with a single face. Fix indexing with refine. Add documentation reference for exodus writer. — galbramc / detail
- Add bound VTK dump — galbramc / detail
- Add Fun3D option to refineAIM. Fixes for phasing with refine — galbramc / detail
- Only allow capps to aim_deleteMeshes in aimPreAnalysis. Add MAT5 nastran Card. Clear data transfer if tessellation is updated. Copy over previous files when removing a clink — galbramc / detail
- Missed a file — galbramc / detail
- Fix TEMP card. Fix TACS temperature transfer. — galbramc / detail
- Lint fixes — galbramc / detail
- Fix for windoze — galbramc / detail
- Parse von Mises stress and strain from Mystran. Fix refineAIM to remove old meshes. — galbramc / detail
- Use latest version of SU2(8.0.0) — nitin / detail
- Updates for SU2 Harrier, version 8.0.0 — nitin / detail
- Fix memory leak — galbramc / detail
- Fix array bound error. Update legacy example. — galbramc / detail
- Dont require meshRef for meshWriters — galbramc / detail
- Add remaining MAT8 entries. Always check for valid indexes in meshes. Various other fixes. — galbramc / detail
- Lots of lint fixes and memory leak fix — galbramc / detail
- Fix bug in refine libMeshb reader — galbramc / detail
- Fix memory leak in mystran AIM — galbramc / detail
- Fix warning — galbramc / detail
- Exclusively use MESHEXTENSION for refine — galbramc / detail
- Don't reqiore capsMeshLength for auto feaMeshing — galbramc / detail
- Use egadsTess functions to build on the fly fea Meshes — galbramc / detail
- Guard against using null pointer — galbramc / detail
- allow assert_failed signal to be caught; check that arguments to COMBINE command are all valid Edge and/or Face numbers; fix bug in serveESP that seg faulted when a DESPMTR exceeded its LBOUND or UBOUND in the .csm file; fix memory leak associated with private data in UDP/UDFs; fix bug in GROUP command when ngroup was positive; update group5 test case and its verification data; start to modify ESP-help to include examples — jfdannen / detail
- fix undefined variable associated with degenerate Edges when using udfOffset — jfdannen / detail
- add deprecation warnings to all .csm/.udc/.cpc files that use LOFT, MACBEG, MACEND, and RECALL — jfdannen / detail
- update sensitivity calculations in udpParsec; add capNacelle*, testAdjoint6, and testAdjoint7 test cases; change copyright dates from 2023 to 2024 — jfdannen / detail
- fix bug in ocsmCopy that seg faulted when a Branch name exceeded 11 characters — jfdannen / detail
- re-add duplicate libraries for linking tile.so (even though latest linker will issue a warning) — jfdannen / detail
- fix udp.def for udpPost — jfdannen / detail
- try to eliminate duplicate library warnings when linking tile.so — jfdannen / detail
- fix bug in transferring Edge attributes when SUBTRACTing a SheetBody from another SheetBody (due to an OpenCASCADE error); fix bug that (erroneously) evalauted arguments to ELSEIF even when the matching IFTHEN evaluated to true; provide udps.ndotchg to tell it any inputs to sensitivities have changed since previous call for sensitivities; provide COPYUDPDATA to copy private data in UDP/UDFs — jfdannen / detail
- attempt to fix stanalizer errors — jfdannen / detail
- attempt to fix stanalizer errors — jfdannen / detail
- attempt to fix stanalizer errors — jfdannen / detail
- update udp.def for Windoze — jfdannen / detail
- refactor UDP/UDF global storage — jfdannen / detail
- fix the code that finds the (non-manifold) Edge velocities generated by a Boolean operation on SheetBodys as well as SolidBodys; update ESP to account for new arguments to DUMP command; fix bug in copying UDP/UDF data that was identified by memcheck; fix bug with optional last argument to DUMP; fix bug associated with copying bodyList in ocsmCopy; print triangle and quadrilateral count when writing .obj file — jfdannen / detail
- fix bug in the pattern counter when executing PATBREAK — jfdannen / detail
- make UDP/UDFs thread-safe. THIS REQUIRED A CHANGE IN ALL UDP/UDFs. See OpenCSM/src/udp.help for information — jfdannen / detail
- fixed bug when using a UDP/UDF that returns a value and finite difference sensitivities are being computed; fix compiler warning associated with _viz attribute; clean up memory at end of ocsmAdjoint — jfdannen / detail
- added _grd, _trn, and _ori attributes to change initial settings for Faces and Edges; fix RALLOC so that it can be thread-safe — jfdannen / detail
- add Node tolerance checks when reporting tolerance associated with a Body; adding _viz=off Attribute to a Face, Edge, or Node makes them initially not displayed in serveESP (although they can be toggled via the GUI); fix valgrind error associated with not initializing the output Body to EG_mapBody — jfdannen / detail
- remove BWB.vsp3 test case since bug in OpenVSP sometimes causes OpenVSP to fail — jfdannen / detail
- remove verification data for 7.3.1 and 7.4.1 — jfdannen / detail
- change verification data for testAdjoint4 and testAdjoint5 to account for inconsistencies in number of spurious Nodes and Edges — jfdannen / detail
- fix bug that did not restore the stack properly when a command returned multiple Bodys; fix bug that did not clear display when plotter exits; make MessageWindow light green to alert user that they need to exit an overlay; allow TIM to reload (if state is TIM_READY); do not print warning that message is not broadcast because wv was not started (which can happen due to timing in multiple threads); add areaRule* test cases and python script — jfdannen / detail
- fix bug in filename compression — jfdannen / detail
- temporarily disable filename compression — jfdannen / detail
- add grpName=. optional argument to DUMP command for .obj files; fix implicit string defaults in ocsmMakeBrch — jfdannen / detail
- add ability to put attrName/attrValue on control surfaces in udc/flapz; prototype WaveFront .obj file writer; fix sensitivity bug that returns zeros when UDPs are used and -loadEgads was enabled; add quad output in .obj file writer — jfdannen / detail
- add LRED, LGREEN, and LBLUE to list of possible colors; multi-thread ocsmAdjoint; add testAdjoint4 and testAdjoint5 test cases; dynamically allocate arrays in testOcsmAdjoint; print Edge lengths in ocsmPrintBrep; change signature of ocsmAdjoint to not automatically compute full Jacobian; do not run testOcsmAdjoint if -loadEgads is enabled; fix sensitivities bug if there is a UDP/UDF and the -loadEgads flag is set; remove /../ patterns from .udc filenames; fix bug in capsMode that did not allow .csm files to have .udc files in subdirectories — jfdannen / detail
- add showsize option in udpNuScale; fix bug in udfOffset for Bodys with degenerate Edges; in udfEditAttr, allow attrValue to be a star in HAS statement, independent of whether the value is a string or a number — jfdannen / detail
- remove OPAM1_fillet test case (because FILLET works differently on various platforms) — jfdannen / detail
- fix undefined variable warning — jfdannen / detail
- fix sanitize error in velocityOfEdge — jfdannen / detail
- update method for assigning _edgeIDs associated with degenerate Edges; slight improvement in tessellation sensitivities for some cases — jfdannen / detail
- update to use EG_mapBody2 to make sure Edges are mapped properly during sensitivity calculations; update sensitivities (again) to improve Edges generated by boolean operations; update selected sensitivity verification data — jfdannen / detail
- remove FILLETs from OPAM1.csm; add OPAM1_fillet test case; fix typo in computation of analytic sensitivities for a CONE; fix tessellation sensitivities when Node motion is perpendicular to end of Edge; add designZ* test cases; update all verification data associated with data/basic/design* to account for the new (better) sensitivities — jfdannen / detail
- add missing data/vsp3 verification data for 7.6.0 — jfdannen / detail
- clean up some debug printing during sensitivity calculations — jfdannen / detail
- ensure _faceID and _edgeID sequence numbers are consistent when computing finite difference sensitivities; allow CSYSTEM name to be an expression; fix bug that did not apply csystems to SELECT BODY command; add csystem7* test cases — jfdannen / detail
- modify OPAM1.udc to pass Jenkins tests — jfdannen / detail
- add simple.py to demonstrate a pyscript that can be run either from python prompt or from serveESP — jfdannen / detail
- fix sanitize-address error in udpWaffle when progress=1 — jfdannen / detail
- modify ocsmGetUV so that inverse evalaution starts at closest tessellation point if npnt is negative; fix memory leak associated with testAdjoint*; fix bug that allowed _hist and __trace__ to contain duplicate entries, which sometimes resulted in an infinite loop; add uCRM test case to data/gallery; fix bug that made had _edgeID point to scribing Face instead of its _faceID during a scribing operation; Edges from a sketch should have _edgeID that identifies the Body and Edge number; fix scribeWing test case; fix _edgeID for Edges that result from SUBTRACTing a SolidBody or planar SheetBody from a SheetBody. BEWARE: backward incompatability for some _edgeID; add edgeIDtest* test cases — jfdannen / detail
- add testAdjoint1 test case — jfdannen / detail
- make udpWaffle clean up temporary variables if an error occurs while processing a file; add fitCurve8 test case; return error from vspSetup if .vsp3 file does not exist; add pylon/pod to vsp3/OPAM1* test cases — jfdannen / detail
- Remove MACOSX from makeEnv — galbramc / detail
- Add macOS 14 to makeEnv — galbramc / detail
- Add more checks on Julia version and ESP env for jlEGADS — galbramc / detail
- Update EGADS copyright — galbramc / detail
- change copyright date from 2023 to 2024 — jfdannen / detail
- Update README release in January 2024 — galbramc / detail
- Suppress gfortran link warnings on macOS — galbramc / detail
- Remove more undefined error link warnings. Stanalizer fixes — galbramc / detail
- More link warning suppression on macOS — galbramc / detail
- Remove depricated macOS undefined error link flag — galbramc / detail
- EGADS doc fixes — galbramc / detail
- update udp.def in udpTire folder — jfdannen / detail
- update to account for UDP/UDF changes — jfdannen / detail
- Update python version in setup scripts — galbramc / detail
- Update PreBuilt README and setup scripts — galbramc / detail
- Add contextCopy to pyEGADS and jlEGADS — galbramc / detail
- Remove incorrect 'wrong OR' check for EG_quadTess — galbramc / detail
- Write Name attribute to iges files — galbramc / detail
- Add contextCopy to def file — haimes / detail
- Add tessellation support in EG_contextCopy — haimes / detail
- Add EG_contextCopy — haimes / detail
- Fix stanalizer — galbramc / detail
- Fix FACE/LOOP for EG_imprintBody — galbramc / detail
- Allow EG_imprintBody to accept FACE/LOOP pairs — galbramc / detail
- Add more debug info in splitBody — haimes / detail
- Do not SameParamter shell — galbramc / detail
- Fix stanalizer warning — galbramc / detail
- Properly map Degenerate Edges in mapBody2 — galbramc / detail
- Skip degenerate Edges in mapBody2 — galbramc / detail
- Fix lint — galbramc / detail
- Fix EG_mapBody infinite loop — galbramc / detail
- Update egads.def with EG_mapBody2 — galbramc / detail
- Fix incorrect mapBody tests — galbramc / detail
- Fix compile error related to M_PI — galbramc / detail
- Fix EG_mapBody when topology is identical but geometry differs. Add EG_mapBody2 as replacement for EG_mapBody that also works on FaceBodys. — galbramc / detail
- Add additional Node check in EG_localToGlobal — galbramc / detail
- Add backup M_PI when not available for Surreal — galbramc / detail
- Fix memory leak when error occurs while reading units from STEP/IGES — galbramc / detail
- Upgrade Pointwise for new license — galbramc / detail
- Uptrade asan path to 15.0.0 — galbramc / detail
- Comment out IRIT — galbramc / detail
- Only suppress link warnings on macOS — galbramc / detail
- Suppress link warnings with PYTHONLIB — galbramc / detail
- Add abaqus to PATH — galbramc / detail
- Another Python address suppression — galbramc / detail
- Upgrade to Python 3.11.6 — galbramc / detail
- Undo looking for verfication data — galbramc / detail
- Warn about missing verification files — galbramc / detail
- Yet one more python suppression — galbramc / detail
- Another python valgrind suppression — galbramc / detail
- Upgrade to SU2 8.0.0 — galbramc / detail
#37 (Sep 14, 2023, 11:02:16 AM)
- More binary ugrid reader improvements — galbramc / detail
- Add isothermal material properties — galbramc / detail
- Rename ref test to avoid conflicting with NASA refine ref — galbramc / detail
#33 (Sep 14, 2023, 9:57:56 AM)
- More informative refine execution failure error messages — galbramc / detail
- Add execution error message for refine — galbramc / detail
- Fix Mesh_Morph for fea. Improve speed of binary ugrid reader. — galbramc / detail
- Lint fixes — galbramc / detail
- Update unit test — galbramc / detail
- Various small fixes — galbramc / detail
- Test with mixed quad/tri Face — galbramc / detail
- Allow mixed quad/tri on Faces for data transfer — galbramc / detail
- Update aimMesh for Morphing surface meshes — galbramc / detail
- Make mesh link optional again for astros — galbramc / detail
- Add mesh morphing to masstran — galbramc / detail
- remove X57_MAXWELL_CRM_v4.4.1 from svn (too big) — jfdannen / detail
- fix valgrind error in timVspSetup.c; initialization update required by change in EG_mapBody; add bentWaffle test case; SELECT * xmin xmax ... finds closest entity if xmin=xmax ... — jfdannen / detail
- Preserve tessellation attributes in mapTessBody — galbramc / detail
#32 (Sep 10, 2023, 2:11:44 PM)
- Fixes for refine and add Mesh_Morph for structures — galbramc / detail
- Lint fixes — galbramc / detail
- Fix ThermalExternal. Add Mesh_Morph and Temperaure field to SU2 — galbramc / detail
- Another try at scan-build suppression — galbramc / detail
- Dox and scan-build fixes — galbramc / detail
- lint fixes — galbramc / detail
- Fixes for Fun3D data transfer — galbramc / detail
- Fix last commit — galbramc / detail
- Refactor all mesh transfer to PointerMesh. Add thermal transfor for Fun3D and structures. — galbramc / detail
- Update testing geometries — galbramc / detail
- Fix warning — galbramc / detail
- Fix refine AIM compile error — galbramc / detail
- Add refine AIM — galbramc / detail
- Dox and other small fixes — galbramc / detail
- Update BuildFromRepo.txt — galbramc / detail
- Fix Cart3D example — galbramc / detail
- Update plato example csm file name — galbramc / detail
- Fixes for aflr3 MultiDomain — galbramc / detail
- Lint fixes — galbramc / detail
- Add Motion_Driver and Mesh_Movement to fun3D AIM to wtite moving body input file. Generate fun3dNamelist with latest cython. — galbramc / detail
- Fix bug in FEA connections — galbramc / detail
- xfoil fixes to normalize properly — galbramc / detail
- Do not normalize mses airfoils — galbramc / detail
- Upgrade to AFLR 11.5.9. Fix bug where aflr3 BL_Thickness and BL_Initial_Spacing were not scaled by capsMeshLength — galbramc / detail
- Suppress lint — galbramc / detail
- More cleanup for AFLR — galbramc / detail
- Lint fix — galbramc / detail
- Cleanup aflr3_Interface — galbramc / detail
- Fix AFLR link error — galbramc / detail
- Upgrade to AFLR 11.5.8 — galbramc / detail
- Fix stanalizer warning — galbramc / detail
- Update surface to volume mapping for mesh morphing — galbramc / detail
- Use EG_mapBody maps for more robust morphing — galbramc / detail
- Fix plato AIM Mesh_Morph symbolic link — galbramc / detail
- Uprev to ESP 1.24 — galbramc / detail
- Full double precision for point tecplot files — galbramc / detail
- Example to demo AFLR4 quad mesh generation — nitin / detail
- Appended AFLR4 related attributes — nitin / detail
- Fix for cart3d makefile — galbramc / detail
- Minor correction to friction static libgfortran check — galbramc / detail
- Check for static libgfortran — galbramc / detail
- Always build friction with static libgfortran — galbramc / detail
- Fix VLM memory leak — galbramc / detail
- Fix avl bug where controls are not updated when the surface is unchanged. — galbramc / detail
- Fix designVariableID for Structural design — galbramc / detail
- Fix last commit — galbramc / detail
- Install aim/utils header files on Windoze — galbramc / detail
- Add include guards to all aim/util header files. Install aim/util header files in ESP_ROOT/include/aim/util on unix. — galbramc / detail
- Lint fix — galbramc / detail
- Stanalizer fix — galbramc / detail
- Fix array bounds error and update another test with AFLR — galbramc / detail
- Stanalizer fixes — galbramc / detail
- Add aflr4 skin input — galbramc / detail
- Upgrade to AFLR 11.4.5 — galbramc / detail
- AFLR2 quad sometimes generates invalid elements — galbramc / detail
- Update two more aeroelastic examples to use AFLR — galbramc / detail
- Another try at more robust areolastic example — galbramc / detail
- Adjust tessellaton to hopefully help tetgen — galbramc / detail
- Add capsMeshLength to legacy csm file — galbramc / detail
- fix corsairlite atmosphere model — dongjoon / detail
- Fixes for AFLR2 — galbramc / detail
- Updated config file for the latest version of SU2 (7.5.1) — nitin / detail
- One more try at fixing valueString — galbramc / detail
- Accurate memory allocation in valueString — galbramc / detail
- remove clang warnings — jfdannen / detail
- Fix clang 14.0.3 warnings — galbramc / detail
- Lint suppression — galbramc / detail
- Update aflr2 to use capsMeshLength — galbramc / detail
- Fix aflr2 for Phasing — galbramc / detail
- Fix compile warning — galbramc / detail
- Fix for AFLR2 — galbramc / detail
- Comment out debug code — galbramc / detail
- Allow AFLR2 to work with multiple faces — galbramc / detail
- Only build Writer directories on Windoze — galbramc / detail
- Add meshWriter NMakefile verbosity — galbramc / detail
- Suppress lint warning — galbramc / detail
- NMakefile fix — galbramc / detail
- Fix NMakefiles for meshWriter — galbramc / detail
- Documentation updates — galbramc / detail
- Upgrade fun3d cython files — galbramc / detail
- One more try at AIM_NOTFOUND — galbramc / detail
- Add AIM_NOTFOUND macro — galbramc / detail
- Add aimInfo to fea_getDesignResponse — galbramc / detail
- Test cart3d on commit again — galbramc / detail
- Remove Cart3D from commit testing for now — galbramc / detail
- Dissable tecplot debug dump for aflr4 — galbramc / detail
- Fix compiler warning — galbramc / detail
- Upgrade to AFLR 11.3.17 — galbramc / detail
- Updated makefiles for AFLR 11.3.17. Add doc about capsFile. — galbramc / detail
- Fix typo — galbramc / detail
- Allow aflr4 to mesh abutting bodies with matching faces. — galbramc / detail
- fix memory leak in Slugs; update Makefile.DARWIN64 in Slugs to have sanitize targets — jfdannen / detail
- Fix block name for exodusWriter. Add symbolic link to mesh for plato AIM. — galbramc / detail
- Try that one more time — galbramc / detail
- Use and empty mesh instead of edge only for aflr2 tessellation — galbramc / detail
- Fix warning — galbramc / detail
- Fix uninitialized data in AFLR3 — galbramc / detail
- Add meshRef mapping for aflr2 — galbramc / detail
- Updated AFLR4 files for new Quading — galbramc / detail
- Upgrade to AFLR 11.3.15 — galbramc / detail
- Fix for 2D meshing — galbramc / detail
- Forgot a file — galbramc / detail
- Another try at the stanalizer — galbramc / detail
- Fix stanalizer warning — galbramc / detail
- Restore CAPS training files — galbramc / detail
- Add support for exodux Nodeset. Add surface morphing for plato aim (no volume morphing). — galbramc / detail
- another attempt to eliminate spurious compiler warnings — jfdannen / detail
- another attempt to fix spurious warning messages — jfdannen / detail
- fix to avoid compiler warnings — jfdannen / detail
- numerous updates to Slugs — jfdannen / detail
- Fix uninitialized data — galbramc / detail
- Fix last commit — galbramc / detail
- Fix surface to volume map for aflr3 MultiDomain — galbramc / detail
- Plug two aflr3 leaks — galbramc / detail
- Fix bug introduced in AFLR4 — galbramc / detail
- Fix MultiDomain mapvol for aflr3 — galbramc / detail
- Warning and lint fixes — galbramc / detail
- Update AFLR3 to work for MultiDomain. Add eto dump for plato AIM. Update TACS dox. Add more plato examples. — galbramc / detail
- small fix to morph test — ryan / detail
- small fix to morph test — ryan / detail
- Tex fix for training — galbramc / detail
- Training updates — galbramc / detail
- Training fixes and updates — galbramc / detail
- Lint fix — galbramc / detail
- Fix last commit — galbramc / detail
- Fully support 2D meshes for plato and exodus mesher writer — galbramc / detail
- Add missing avl derivatives — galbramc / detail
- Another round of training updates — galbramc / detail
- lint fix — galbramc / detail
- Comment on F_UFMTENDIAN environment variable if msesAIM fails to read mses sensx file. — galbramc / detail
- Add support for 2D meshes with exodusWriter — galbramc / detail
- One more training update — galbramc / detail
- Training tex updates — galbramc / detail
- Minor training fixes and updates — galbramc / detail
- Remove old training files. Some training tex fixes. — galbramc / detail
- Update date on training slides — galbramc / detail
- Add training tar script — galbramc / detail
- Corrections to CAPS session01 — galbramc / detail
- Missed a file — galbramc / detail
- Updated CAPS training for Jan 2023 — galbramc / detail
- update copyright notices — jfdannen / detail
- add transform option to Slugs; in Slugs, the KutTriangles option automatically creates a link; add optional GRAFIC to cutTriangles in Slugs; lots of improvements to Slugs, especially for cases with very noisy .stl file — jfdannen / detail
- Update Copyright date — galbramc / detail
- fix bug that did not allow interactive use of Slugs; add Kut triangles option in Slugs; update testScript.txt to include interactive Slugs testing — jfdannen / detail
- Fix surface to volume map for MultiDomain tetgen meshes — galbramc / detail
- Uprev to 1.23 — galbramc / detail
- dox fix — ryan / detail
- Add TACS and MSES to AIM documentation — galbramc / detail
- Check for nPoints==0 when filling bounds — galbramc / detail
- Check if no bodies have capsDiscipline Structure — galbramc / detail
- Rev update and other dox fixes — galbramc / detail
- More VLM error handling updates — galbramc / detail
- Update documentation for masstran. Update VLM input error messages. — galbramc / detail
- Use the body _name if there is only one body in exodus writer — galbramc / detail
- Initial commit of 2023 training — galbramc / detail
- add comments to cyli_box.csm — jfdannen / detail
- unset LD_PRELOAD when checking NETCDFINC — galbramc / detail
- Another debug attempt — galbramc / detail
- Debugging exodus makefile — galbramc / detail
- change sprintf to snprintf in Slugs — jfdannen / detail
- Missed one — galbramc / detail
- More example updates — galbramc / detail
- Replace last sprintf with snprintf — galbramc / detail
- fix examples — ryan / detail
- fix examples — ryan / detail
- Fix double free in astrosAIM — galbramc / detail
- Updated config file generator for SU2-7.4.0 — nitin / detail
- Warning fix. Double memory free fix. More sprintf replacements. — galbramc / detail
- Replace aim sprintf with snprintf — galbramc / detail
- scan-build fix — galbramc / detail
- Windoze fix — galbramc / detail
- masstran now supports analysis sensitvities — galbramc / detail
- More example updates for new structures design variable relations — galbramc / detail
- Fix for old training — galbramc / detail
- Lots of lint fixes — galbramc / detail
- Fix array bounds erros and update tests for new structures design variables — galbramc / detail
- scan-build fixes — galbramc / detail
- Fix legacy example — galbramc / detail
- Warning fix — galbramc / detail
- Fix previous commits. Add more info in caps_setValue error message. masstranAIM fix. — galbramc / detail
- fix of design variables — ryan / detail
- fix of design variables — ryan / detail
- fix of design variables — ryan / detail
- fix of design variables — ryan / detail
- add cvxopt debug messages — dongjoon / detail
- add more debugging statements — dongjoon / detail
- add debugging corsairlite statements
— dongjoon / detail - update corsairlite example for debugging — dongjoon / detail
- scan-build fixes — galbramc / detail
- Suppress warning — galbramc / detail
- Update cyli_box example with semi-colon separated capsGroup tags — galbramc / detail
- Add print statements for debugging — dongjoon / detail
- add more debugOutput statements to show timing in SLCP — dongjoon / detail
- Fix skipping geometry Design_Variable in TACS — galbramc / detail
- More attempts at fixing the exodus makefile — galbramc / detail
- Stanalizer fix — galbramc / detail
- Finally got netcdf.h check correct on both macOS and Linux — galbramc / detail
- Another sanitizer fix — galbramc / detail
- sanitizer fixes — galbramc / detail
- Check for exodusWriter when running plato examples — galbramc / detail
- Write out surface to volume index map for plato — galbramc / detail
- Lint fix for mses — galbramc / detail
- Fix output redirect for detecing netcdf.h — galbramc / detail
- Update fun3d test to Mesh_Morph. Add first plato mesh generation examples. — galbramc / detail
- Allow tetgen to write MultiDomain mesh files. Updates to Exodus mesh writer. — galbramc / detail
- More checks when reading mapbc files in aimMesh — galbramc / detail
- Fun3D lint fixes — galbramc / detail
- fix - unused variables — ryan / detail
- fix - null catch in avlaim — ryan / detail
- fix fun3d morphing — ryan / detail
- Lint fixes — galbramc / detail
- Warning fix — galbramc / detail
- Fix last commit — galbramc / detail
- Fix waring and add missing files — galbramc / detail
- Support tetgen generated regions — galbramc / detail
- More lint fixes — galbramc / detail
- Fix lint warnings — galbramc / detail
- Update Makefile for plato. Add element group names for aflr3 and tetgen. — galbramc / detail
- Add plato skeleton AIM — galbramc / detail
- Initial cut at an exodus writer — galbramc / detail
- Fix for incorrect Design_Variable in masstranAIM — galbramc / detail
- Allow unconverged SmoothUV status to continue during parameterization — haimes / detail
- Fix masstran derivatives with multiple bodies — galbramc / detail
- Fix closeBound to write bound and vertexset files for journaling — haimes / detail
- fix typo in corsairlite slcp — dongjoon / detail
- delete redundant kulfan csm and finalize multifidelity scripts — dongjoon / detail
- Fix warnings from last commit — galbramc / detail
- small fix on Kulfan MSES wrapper and removing remnants of full corsair — dongjoon / detail
- Remove some depricated checks — galbramc / detail
- Journal the writing of files — haimes / detail
- Move up setting outLevel — galbramc / detail
- Use ocsmLoadFromModel for static geometry. Expost stepSize for finite differnce in pyCAPS. — galbramc / detail
- Add the ability to control the sensitivity finite-difference step size from CAPS proper — haimes / detail
- Remove old html doc before copying — galbramc / detail
- Update cart3dAIM dox — galbramc / detail
- Update pyCAPS dox dependencies — galbramc / detail
- update corsairlite files to python3.8 compatible — dongjoon / detail
- Use TIM viewer in pyCAPS view methods — galbramc / detail
- Allow ftype=None for FieldIn/FieldOut data sets — galbramc / detail
- update corsairlite slcp wrapper with speed-up updates — dongjoon / detail
- Move DESPMTR check into just TACS — galbramc / detail
- Don't write DESPMTR to bdf files — galbramc / detail
- Fix segFault from last commit, again — haimes / detail
- Fix segFault from last commit — haimes / detail
- First cut at using MD5 checksums to check API inputs for continuation mode — haimes / detail
- Fix masstran memory leak — galbramc / detail
- masstran AIM updates — galbramc / detail
- Another OCSM FD sensitivity update — haimes / detail
- The calling sequence (SetDtime) was wrong and should be after setting the parameter when calculating sensitivities — haimes / detail
- add some debugging output capabilities to corsairlite and properly pass problemObj in Kulfan.py — dongjoon / detail
- Compile fix for Windoze — galbramc / detail
- Fix continuation with a function that returned an error — galbramc / detail
- Fix memory leak — galbramc / detail
- Fix masstran units and warning — galbramc / detail
- Update aim_copyValue — galbramc / detail
- Add geometric sensitvities to masstran AIM — galbramc / detail
- Suppress 'could not create compact unwind on M1' for now. — galbramc / detail
- Allow for FD sensitivities within the AIM sensitivity functions — haimes / detail
- add torch tests for kulfan corsairlite examples — dongjoon / detail
- update problem.__init__ to work if running pyscript but not from capsMode — jfdannen / detail
- Simplify multifidelity examples. Fig unit bug in caps.py. Support pint dimensionless to caps.py. Support udunits import in corsairlite. — galbramc / detail
- Fix typo in comment — haimes / detail
- Fix multifidelity corsairlite examples — dongjoon / detail
- Another cart3d twist example fix — galbramc / detail
- Cart3D example fixes — galbramc / detail
- Support Cart3D preSpec inputs and bodies. — galbramc / detail
- Forgot the pickle — galbramc / detail
- One more makefile fix — galbramc / detail
- corsair lite makefile example fix — galbramc / detail
- Dissable failing corsair examples again — galbramc / detail
- Fix corsairlite execution script — galbramc / detail
- Fix uninitialized journaling — galbramc / detail
- Run all phasing examples for corsairlite — galbramc / detail
- corsair fix for Python 3.10. Minor pyCAPS warning fix. — galbramc / detail
- Fix scan-build warning — galbramc / detail
- Fix for aim_relPath. Fix for sheet bodies with aim_storeMeshRef. — galbramc / detail
- fix morph example — ryan / detail
- Fix last commit — galbramc / detail
- Fix pyCAPS getValue for string and pointers — galbramc / detail
- Fix destroy_aimStorage to resolve segfault — galbramc / detail
- lint fixes — galbramc / detail
- I think we have mighty morphing powers — galbramc / detail
- test/fix morph — ryan / detail
- Skip wake with morphing for now. — galbramc / detail
- Fixes for mighty morphing powers, still needs some more testing. — galbramc / detail
- fix missing file — ryan / detail
- fix missing file — ryan / detail
- // This software has been cleared for public release on 05 Nov 2020, case number 88ABW-2020-3462.
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <ctype.h>
#include "egads.h" // Bring in egads utilss
#include "capsTypes.h" // Bring in CAPS types
#include "aimUtil.h" // Bring in AIM utils
#include "aimMesh.h" // Bring in AIM meshing
#include "miscUtils.h" // Bring in misc. utility functions
#include "meshUtils.h" // Bring in meshing utility functions
#include "cfdTypes.h" // Bring in cfd specific types
#include "cfdUtils.h"
#include "tecplotUtils.h" // Bring in tecplot utility functions
#include "fun3dUtils.h" // Bring in fun3d utility header
#include "fun3dInputs.h"
#include "ugridWriter.h"
#ifdef WIN32
#define strcasecmp stricmp
#define strncasecmp _strnicmp
#endif
// Extract the FEPOINT Tecoplot data from a FUN3D Aero-Loads file (connectivity is ignored) - dataMatrix = [numVariable][numDataPoint]
int fun3d_readAeroLoad(void *aimInfo, char *filename, int *numVariable, char **variableName[],
int *numDataPoint, double ***dataMatrix)
{
int status = CAPS_SUCCESS; // Function return
int i, j; // Indexing
size_t linecap = 0;
char *line = NULL; // Temporary line holder
char *tempStr = NULL, *tempStr2 = NULL; // Temporary strings
int stringLen = 0; // Length of string holder
FILE *fp = NULL; // File pointer
// Open file
fp = aim_fopen(aimInfo, filename, "r");
if (fp == NULL) {
AIM_ERROR(aimInfo, "Unable to open file: %s\n", filename);
return CAPS_IOERR;
}
printf("Reading FUN3D AeroLoad File - %s!!!!!!\n", filename);
*numVariable = 0;
*numDataPoint = 0;
// Loop through file line by line until we have determined how many variables and data points there are
while (*numVariable == 0 || *numDataPoint == 0) {
// Get line from file
status = getline(&line, &linecap, fp);
if ((status < 0) || (line == NULL)) break;
// Get variable list if available in file line
if (strncmp("variables=", line, strlen("variables=")) == 0) {
// Pull out substring at first occurrence of "
tempStr = strstr(line, "\"");
// Create a temperory string of the variables in a the folling format - ["a","ae"]
stringLen = strlen(tempStr)-1 + 2;
tempStr2 = (char *) EG_alloc((stringLen +1)*sizeof(char *));
if (tempStr2 == NULL) {
fclose(fp);
if (line != NULL) EG_free(line);
return EGADS_MALLOC;
}
tempStr2[0] = '[';
strncpy(tempStr2+1, tempStr, strlen(tempStr)-1);
tempStr2[stringLen-1] = ']';
tempStr2[stringLen] = '\0';
// Sort string into an array of strings
status = string_toStringDynamicArray(tempStr2, numVariable, variableName);
if (tempStr2 != NULL) EG_free(tempStr2);
tempStr2 = NULL;
if (status != CAPS_SUCCESS) goto cleanup;
// Print out list of variables found in load file
printf("Variables found in file %s:\n",filename);
for (i = 0; i < *numVariable; i++) printf("Variable %d = %s\n", i, (*variableName)[i]);
}
// Get the number of data points in file if available in file line
if (strncmp("zone t=", line, strlen("zone t=")) == 0) {
// Pull out substring at first occurrence of i=
tempStr = strstr(line, "i=");
// Retrieve the i= value
sscanf(&tempStr[2], "%d", numDataPoint);
// Print out the number of data points found in load file
printf("Number of data points = %d, in file %s\n", *numDataPoint, filename);
}
}
if (*numVariable != 0 && *numDataPoint != 0) {
// Allocate dataMatrix array
AIM_FREE(*dataMatrix);
AIM_ALLOC(*dataMatrix, (*numVariable), double *, aimInfo, status);
for (i = 0; i < *numVariable; i++) (*dataMatrix)[i] = NULL;
for (i = 0; i < *numVariable; i++) {
AIM_ALLOC((*dataMatrix)[i], (*numDataPoint), double, aimInfo, status);
}
// Loop through the file and fill up the data matrix
for (j = 0; j < *numDataPoint; j++) {
for (i = 0; i < *numVariable; i++) {
fscanf(fp, "%lf", &(*dataMatrix)[i][j]);
}
}
// Output the first row of the dataMatrix
//for (i = 0; i < *numVariable; i++) printf("Variable %d - %.6f\n", i, (*dataMatrix)[i][0]);
} else {
printf("No data values extracted from file - %s",filename);
status = CAPS_BADVALUE;
}
cleanup:
if (fp != NULL) fclose(fp);
if (status != CAPS_SUCCESS) {
if (*dataMatrix != NULL) {
for (j = 0; j < *numVariable; j++) {
AIM_FREE((*dataMatrix)[j]);
}
AIM_FREE((*dataMatrix));
}
}
EG_free(line);
return status;
}
static int
fun3d_read2DBinaryUgrid(void *aimInfo, FILE *fp, meshStruct *surfaceMesh)
{
int status = CAPS_SUCCESS;
int numNode, numLine, numTriangle, numQuadrilateral;
int numTetrahedral, numPyramid, numPrism, numHexahedral;
int i, elementIndex, numPoint, bcID;
double *coords = NULL;
/* we get a binary UGRID file */
status = fread(&numNode, sizeof(int), 1, fp);
if (status != 1) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
status = fread(&numTriangle, sizeof(int), 1, fp);
if (status != 1) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
status = fread(&numQuadrilateral, sizeof(int), 1, fp);
if (status != 1) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
status = fread(&numTetrahedral, sizeof(int), 1, fp);
if (status != 1) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
status = fread(&numPyramid, sizeof(int), 1, fp);
if (status != 1) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
status = fread(&numPrism, sizeof(int), 1, fp);
if (status != 1) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
status = fread(&numHexahedral, sizeof(int), 1, fp);
if (status != 1) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
if ( numTetrahedral +
numPyramid +
numPrism +
numHexahedral > 0) {
AIM_ERROR(aimInfo, "Expecting a 2D ugrid file!!!");
status = CAPS_IOERR;
goto cleanup;
}
/*
printf("\n Header from UGRID file: %d %d %d %d %d %d %d\n", numNode,
numTriangle, numQuadrilateral, numTetrahedral, numPyramid, numPrism,
numHexahedral);
*/
AIM_ALLOC(coords, 3*numNode, double, aimInfo, status);
/* read all of the vertices */
status = fread(coords, sizeof(double), 3*numNode, fp);
if (status != 3*numNode) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
surfaceMesh->analysisType = UnknownMeshAnalysis;
// Set that this is a volume mesh
surfaceMesh->meshType = Surface2DMesh;
// Numbers
surfaceMesh->numNode = numNode;
surfaceMesh->numElement = numTriangle + numQuadrilateral;
surfaceMesh->meshQuickRef.useStartIndex = (int) true;
surfaceMesh->meshQuickRef.numTriangle = numTriangle;
surfaceMesh->meshQuickRef.numQuadrilateral = numQuadrilateral;
// Nodes - allocate
AIM_ALLOC(surfaceMesh->node, surfaceMesh->numNode, meshNodeStruct, aimInfo, status);
// Initialize
for (i = 0; i < surfaceMesh->numNode; i++) {
status = initiate_meshNodeStruct(&surfaceMesh->node[i],
surfaceMesh->analysisType);
AIM_STATUS(aimInfo, status);
}
// Nodes - set
for (i = 0; i < surfaceMesh->numNode; i++) {
// Copy node data
surfaceMesh->node[i].nodeID = i+1;
surfaceMesh->node[i].xyz[0] = coords[3*i+0];
surfaceMesh->node[i].xyz[1] = coords[3*i+1];
surfaceMesh->node[i].xyz[2] = coords[3*i+2];
}
AIM_FREE(coords);
// Elements - allocate
AIM_ALLOC(surfaceMesh->element, surfaceMesh->numElement, meshElementStruct, aimInfo, status);
// Initialize
for (i = 0; i < surfaceMesh->numElement; i++ ) {
status = initiate_meshElementStruct(&surfaceMesh->element[i],
surfaceMesh->analysisType);
AIM_STATUS(aimInfo, status);
}
// Start of element index
elementIndex = 0;
// Elements -Set triangles
if (numTriangle > 0)
surfaceMesh->meshQuickRef.startIndexTriangle = elementIndex;
numPoint = mesh_numMeshConnectivity(Triangle);
for (i = 0; i < numTriangle; i++) {
surfaceMesh->element[elementIndex].elementType = Triangle;
surfaceMesh->element[elementIndex].elementID = elementIndex+1;
status = mesh_allocMeshElementConnectivity(&surfaceMesh->element[elementIndex]);
if (status != CAPS_SUCCESS) goto cleanup;
// read the element connectivity
status = fread(surfaceMesh->element[elementIndex].connectivity,
sizeof(int), numPoint, fp);
if (status != numPoint) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
elementIndex += 1;
}
// Elements -Set quadrilateral
if (numQuadrilateral > 0)
surfaceMesh->meshQuickRef.startIndexQuadrilateral = elementIndex;
numPoint = mesh_numMeshConnectivity(Quadrilateral);
for (i = 0; i < numQuadrilateral; i++) {
surfaceMesh->element[elementIndex].elementType = Quadrilateral;
surfaceMesh->element[elementIndex].elementID = elementIndex+1;
status = mesh_allocMeshElementConnectivity(&surfaceMesh->element[elementIndex]);
if (status != CAPS_SUCCESS) goto cleanup;
// read the element connectivity
status = fread(surfaceMesh->element[elementIndex].connectivity,
sizeof(int), numPoint, fp);
if (status != numPoint) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
elementIndex += 1;
}
// skip face ID section of the file
status = fseek(fp, (numTriangle + numQuadrilateral)*sizeof(int), SEEK_CUR);
if (status != 0) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
// Get the number of Line elements
status = fread(&numLine, sizeof(int), 1, fp);
if (status != 1) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
// Elements - re-allocate with Line elements
surfaceMesh->meshQuickRef.numLine = numLine;
AIM_REALL(surfaceMesh->element, surfaceMesh->numElement+numLine, meshElementStruct, aimInfo, status);
surfaceMesh->meshQuickRef.startIndexLine = elementIndex;
// Initialize
for (i = surfaceMesh->numElement; i < surfaceMesh->numElement+numLine; i++ ) {
status = initiate_meshElementStruct(&surfaceMesh->element[i],
surfaceMesh->analysisType);
AIM_STATUS(aimInfo, status);
}
surfaceMesh->numElement += numLine;
numPoint = mesh_numMeshConnectivity(Line);
for (i = 0; i < numLine; i++) {
surfaceMesh->element[elementIndex].elementType = Line;
surfaceMesh->element[elementIndex].elementID = elementIndex+1;
status = mesh_allocMeshElementConnectivity(&surfaceMesh->element[elementIndex]);
AIM_STATUS(aimInfo, status);
// read the element connectivity
status = fread(surfaceMesh->element[elementIndex].connectivity,
sizeof(int), numPoint, fp);
if (status != numPoint) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
status = fread(&bcID, sizeof(int), 1, fp);
if (status != 1) { status = CAPS_IOERR; AIM_STATUS(aimInfo, status); }
surfaceMesh->element[elementIndex].markerID = bcID;
elementIndex += 1;
}
status = CAPS_SUCCESS;
cleanup:
if (status != CAPS_SUCCESS)
printf("Premature exit in getUGRID status = %d\n", status);
EG_free(coords); coords = NULL;
return status;
}
// Create a 3D BC for FUN3D from a 2D mesh
int fun3d_2DBC(void *aimInfo,
cfdBoundaryConditionStruct *bcProps)
{
int status; // Function return status
int i; // Indexing
int faceBCIndex = -1, extrusionBCIndex = -1;
// Find the faceBCIndex for the symmetry plane
for (i = 0; i < bcProps->numSurfaceProp-1; i++) {
if (bcProps->surfaceProp[i].surfaceType == Symmetry) {
faceBCIndex = bcProps->surfaceProp[i].bcID;
break;
}
}
if (faceBCIndex == -1) {
// Add plane boundary condition
AIM_REALL(bcProps->surfaceProp, bcProps->numSurfaceProp+1, cfdSurfaceStruct, aimInfo, status);
bcProps->numSurfaceProp += 1;
status = initiate_cfdSurfaceStruct(&bcProps->surfaceProp[bcProps->numSurfaceProp-1]);
AIM_STATUS(aimInfo, status);
bcProps->surfaceProp[bcProps->numSurfaceProp-1].surfaceType = Symmetry;
bcProps->surfaceProp[bcProps->numSurfaceProp-1].symmetryPlane = 1;
// Find largest index value for bcID and set it plus 1 to the new surfaceProp
for (i = 0; i < bcProps->numSurfaceProp-1; i++) {
if (bcProps->surfaceProp[i].bcID >= faceBCIndex) {
faceBCIndex = bcProps->surfaceProp[i].bcID + 1;
}
}
bcProps->surfaceProp[bcProps->numSurfaceProp-1].bcID = faceBCIndex;
}
// Add extruded plane boundary condition
AIM_REALL(bcProps->surfaceProp, bcProps->numSurfaceProp+1, cfdSurfaceStruct, aimInfo, status);
bcProps->numSurfaceProp += 1;
status = initiate_cfdSurfaceStruct(&bcProps->surfaceProp[bcProps->numSurfaceProp-1]);
AIM_STATUS(aimInfo, status);
bcProps->surfaceProp[bcProps->numSurfaceProp-1].surfaceType = Symmetry;
bcProps->surfaceProp[bcProps->numSurfaceProp-1].symmetryPlane = 2;
// Find largest index value for bcID and set it plus 1 to the new surfaceProp
for (i = 0; i < bcProps->numSurfaceProp-1; i++) {
if (bcProps->surfaceProp[i].bcID >= extrusionBCIndex) {
extrusionBCIndex = bcProps->surfaceProp[i].bcID + 1;
}
}
bcProps->surfaceProp[bcProps->numSurfaceProp-1].bcID = extrusionBCIndex;
status = CAPS_SUCCESS;
cleanup:
return status;
}
// Create a 3D mesh for FUN3D from a 2D mesh
int fun3d_2DMesh(void *aimInfo,
aimMeshRef *meshRef,
const char *projectName,
const mapAttrToIndexStruct *groupMap)
{
int status; // Function return status
int i; // Indexing
int faceBCIndex = -1, extrusionBCIndex = -1;
double extrusion = -1.0; // Extrusion length
// Flip coordinates
int xMeshConstant = (int) true, yMeshConstant = (int) true, zMeshConstant= (int) true; // 2D mesh checks
double tempCoord;
meshStruct surfaceMesh;
meshStruct volumeMesh;
char filename[PATH_MAX];
// int elementIndex;
FILE *fp = NULL;
status = initiate_meshStruct(&surfaceMesh);
AIM_STATUS(aimInfo, status);
status = initiate_meshStruct(&volumeMesh);
AIM_STATUS(aimInfo, status);
sprintf(filename, "%s%s", meshRef->fileName, MESHEXTENSION);
fp = fopen(filename, "rb");
if (fp == NULL) {
AIM_ERROR(aimInfo, "Cannot open file: %s\n", filename);
status = CAPS_IOERR;
goto cleanup;
}
status = fun3d_read2DBinaryUgrid(aimInfo, fp, &surfaceMesh);
AIM_STATUS(aimInfo, status);
// add boundary elements if they are missing
if (surfaceMesh.meshQuickRef.numLine == 0) {
status = mesh_addTess2Dbc(aimInfo, &surfaceMesh, groupMap);
if (status != CAPS_SUCCESS) goto cleanup;
}
// Set the symmetry index for all Tri/Quad
for (i = 0; i < surfaceMesh.numElement; i++) {
if (surfaceMesh.element[i].elementType != Triangle &&
surfaceMesh.element[i].elementType != Quadrilateral) {
continue;
}
surfaceMesh.element[i].markerID = faceBCIndex;
}
#ifdef I_DONT_THINK_WE_NEED_THIS
// Determine a suitable boundary index of the extruded plane
*extrusionBCIndex = faceBCIndex;
for (i = 0; i < surfaceMesh.meshQuickRef.numLine; i++) {
if (surfaceMesh.meshQuickRef.startIndexLine >= 0) {
elementIndex = surfaceMesh.meshQuickRef.startIndexLine + i;
} else {
elementIndex = surfaceMesh.meshQuickRef.listIndexLine[i];
}
marker = surfaceMesh.element[elementIndex].markerID;
if (marker > *extrusionBCIndex) {
*extrusionBCIndex = marker;
}
}
*extrusionBCIndex += 1;
#endif
// Check to make sure the face is on the y = 0 plane
for (i = 0; i < surfaceMesh.numNode; i++) {
if (surfaceMesh.node[i].xyz[1] != 0.0) {
printf("\nSurface mesh is not on y = 0.0 plane, FUN3D could fail during execution for this 2D mesh!!!\n");
break;
}
}
// Constant x?
for (i = 0; i < surfaceMesh.numNode; i++) {
if ((surfaceMesh.node[i].xyz[0] - surfaceMesh.node[0].xyz[0]) > 1E-7) {
xMeshConstant = (int) false;
break;
}
}
// Constant y?
for (i = 0; i < surfaceMesh.numNode; i++) {
if ((surfaceMesh.node[i].xyz[1] - surfaceMesh.node[0].xyz[1] ) > 1E-7) {
yMeshConstant = (int) false;
break;
}
}
// Constant z?
for (i = 0; i < surfaceMesh.numNode; i++) {
if ((surfaceMesh.node[i].xyz[2] - surfaceMesh.node[0].xyz[2]) > 1E-7) {
zMeshConstant = (int) false;
break;
}
}
if (yMeshConstant != (int) true) {
printf("FUN3D expects 2D meshes be in the x-z plane... attempting to rotate mesh!\n");
if (xMeshConstant == (int) true && zMeshConstant == (int) false) {
printf("Swapping y and x coordinates!\n");
for (i = 0; i < surfaceMesh.numNode; i++) {
tempCoord = surfaceMesh.node[i].xyz[0];
surfaceMesh.node[i].xyz[0] = surfaceMesh.node[i].xyz[1];
surfaceMesh.node[i].xyz[1] = tempCoord;
}
} else if(xMeshConstant == (int) false && zMeshConstant == (int) true) {
printf("Swapping y and z coordinates!\n");
for (i = 0; i < surfaceMesh.numNode; i++) {
tempCoord = surfaceMesh.node[i].xyz[2];
surfaceMesh.node[i].xyz[2] = surfaceMesh.node[i].xyz[1];
surfaceMesh.node[i].xyz[1] = tempCoord;
}
} else {
AIM_ERROR(aimInfo, "Unable to rotate mesh!\n");
status = CAPS_NOTFOUND;
goto cleanup;
}
}
status = extrude_SurfaceMesh(extrusion, extrusionBCIndex, &surfaceMesh, &volumeMesh);
AIM_STATUS(aimInfo, status);
strcpy(filename, projectName);
// Write AFLR3
/*@-nullpass@*/
status = mesh_writeAFLR3(aimInfo, filename,
0, // write binary file
&volumeMesh,
1.0);
/*@+nullpass@*/
AIM_STATUS(aimInfo, status);
status = CAPS_SUCCESS;
cleanup:
if (status != CAPS_SUCCESS) {
printf("Error: Premature exit in fun3d_2DMesh status = %d\n", status);
}
/*@-dependenttrans@*/
if (fp != NULL) fclose(fp);
/*@+dependenttrans@*/
// Destroy meshes
(void) destroy_meshStruct(&surfaceMesh);
(void) destroy_meshStruct(&volumeMesh);
return status;
}
// Remove unused nodes from dataMatrix and update connectivity matrix
static int fun3d_removeUnused(void *aimInfo, int numVariable, int *numNode, int used[],
double ***data, /*@null@*/ int *numConnect,
/*@null@*/ int *dataConnectMatrix)
{
int i, j, k; //Indexing
int status;
int *usedNode=NULL; // Freeable
double **dataMatrix;
dataMatrix = *data;
// Copy used node array
usedNode = (int *) EG_alloc(*numNode*sizeof(int));
if (usedNode == NULL) {
status = EGADS_MALLOC;
goto cleanup;
}
for (i = 0; i < *numNode; i++) usedNode[i] = used[i];
// Remove unused nodes
j = 0;
for (i = 0; i< *numNode; i++ ) {
if (usedNode[i] == (int) false || usedNode[i] < 0) continue;
usedNode[i] = j+1; // Set i-th node to essentially the node ID, 1-bias
j +=1;
}
j = 0;
for (i = 0; i< *numNode; i++ ) {
if (usedNode[i] == (int) false || usedNode[i] < 0) continue;
for (k = 0; k < numVariable; k++) {
dataMatrix[k][j] = dataMatrix[k][i]; //Re-order dataMatrix - bubbling i'th index to j
}
j += 1;
}
*numNode = j; // New number of nodes
// Redo connectivity
if (dataConnectMatrix != NULL) {
AIM_NOTNULL(numConnect, aimInfo, status);
j = 0;
for (i = 0; i < *numConnect; i++) {
if (usedNode[dataConnectMatrix[4*i+ 0]-1] == (int) false) continue;
if (usedNode[dataConnectMatrix[4*i+ 1]-1] == (int) false) continue;
if (usedNode[dataConnectMatrix[4*i+ 2]-1] == (int) false) continue;
if (usedNode[dataConnectMatrix[4*i+ 3]-1] == (int) false) continue;
for (k = 0; k < 4; k++) {
dataConnectMatrix[4*j+ k] = usedNode[dataConnectMatrix[4*i+ k]-1];
}
j += 1;
}
*numConnect = j; // New number of elements
}
status = CAPS_SUCCESS;
cleanup:
if (status != CAPS_SUCCESS)
printf("Error: Premature exit in fun3d_removeUnused status = %d\n",
status);
if (usedNode != NULL) EG_free(usedNode);
return status;
}
// Write FUN3D data transfer files
int fun3d_dataTransfer(void *aimInfo,
const char *projectName,
const mapAttrToIndexStruct *groupMap,
const cfdBoundaryConditionStruct bcProps,
aimMeshRef *meshRef,
/*@null@*/ cfdModalAeroelasticStruct *eigenVector)
{
/*! \page dataTransferFUN3D FUN3D Data Transfer
*
* \section dataToFUN3D Data transfer to FUN3D (FieldIn)
*
* <ul>
* <li> <B>"Displacement"</B> </li> <br>
* Retrieves nodal displacements (as from a structural solver)
* and updates FUN3D's surface mesh; a new [project_name]_body1.dat file is written out which may
* be loaded into FUN3D to update the surface mesh/move the volume mesh using the FUN3D command line option
* -\-read_surface_from_file
* </ul>
*
* <ul>
* <li> <B>"EigenVector_#"</B> </li> <br>
* Retrieves modal eigen-vectors from a structural solver, where "#" should be replaced by the
* corresponding mode number for the eigen-vector (eg. EigenVector_3 would correspond to the third mode,
* while EigenVector_6 would be the sixth mode) . A [project_name]_body1_mode#.dat file is written
* out for each mode.
* </ul>
*
*/
int status; // Function return status
int i, j, ibound, ibody, iface, iglobal, eigenIndex; // Indexing
int stringLength = 0;
char *filename = NULL;
// Discrete data transfer variables
capsDiscr *discr;
char **boundName = NULL;
int numBoundName = 0;
enum capsdMethod dataTransferMethod;
int numDataTransferPoint;
int dataTransferRank;
double *dataTransferData;
char *units;
int state, nGlobal, *globalOffset=NULL, nFace;
ego body, *faces=NULL;
int alen, ntri, atype, itri, ielem;
const double *face_xyz, *face_uv, *reals;
const int *face_ptype, *face_pindex, *face_tris, *face_tric, *nquad=NULL;
const char *string, *groupName = NULL;
// Variables used in global node mapping
int ptype, pindex;
double xyz[3];
// Data transfer Out variables
const char *dataOutName[] = {"x","y","z", "id", "dx", "dy", "dz"};
const int dataOutFormat[] = {Double, Double, Double, Integer, Double, Double, Double};
double **dataOutMatrix = NULL;
int *dataConnectMatrix = NULL;
int numOutVariable = 7;
int numOutDataPoint = 0;
int numOutDataConnect = 0;
const char fileExtBody[] = "_body1";
const char fileExt[] = ".dat";
const char fileExtMode[] = "_mode";
int foundDisplacement = (int) false, foundEigenVector = (int) false;
int marker;
int numUsedNode = 0, numUsedConnectivity = 0, usedElems;
int *usedNode = NULL;
status = aim_getBounds(aimInfo, &numBoundName, &boundName);
AIM_STATUS(aimInfo, status);
foundDisplacement = foundEigenVector = (int) false;
for (ibound = 0; ibound < numBoundName; ibound++) {
AIM_NOTNULL(boundName, aimInfo, status);
status = aim_getDiscr(aimInfo, boundName[ibound], &discr);
if (status != CAPS_SUCCESS) continue;
status = aim_getDataSet(discr,
"Displacement",
&dataTransferMethod,
&numDataTransferPoint,
&dataTransferRank,
&dataTransferData,
&units);
if (status == CAPS_SUCCESS) { // If we do have data ready is the rank correct
foundDisplacement = (int) true;
if (dataTransferRank != 3) {
AIM_ERROR(aimInfo, "Displacement transfer data found however rank is %d not 3!!!!\n", dataTransferRank);
status = CAPS_BADRANK;
goto cleanup;
}
break;
}
if (eigenVector != NULL) {
for (eigenIndex = 0; eigenIndex < eigenVector->numEigenValue; eigenIndex++) {
status = aim_getDataSet(discr,
eigenVector->eigenValue[eigenIndex].name,
&dataTransferMethod,
&numDataTransferPoint,
&dataTransferRank,
&dataTransferData,
&units);
if (status == CAPS_SUCCESS) { // If we do have data ready is the rank correct
foundEigenVector = (int) true;
if (dataTransferRank != 3) {
AIM_ERROR(aimInfo, "EigenVector transfer data found however rank is %d not 3!!!!\n", dataTransferRank);
status = CAPS_BADRANK;
goto cleanup;
}
break;
}
} // Loop through EigenValues
if (foundEigenVector == (int) true) break;
} // If eigen-vectors provided
} // Loop through transfer names
if (foundDisplacement != (int) true && foundEigenVector != (int) true) {
printf("Info: No recognized data transfer names found.\n");
status = CAPS_NOTFOUND;
goto cleanup;
}
// Ok looks like we have displacements/EigenVectors to get so lets continue
printf("Writing FUN3D data transfer files\n");
// Allocate data arrays that are going to be output
AIM_ALLOC(dataOutMatrix, numOutVariable, double*, aimInfo, status);
for (i = 0; i < numOutVariable; i++) dataOutMatrix[i] = NULL;
AIM_ALLOC(globalOffset, meshRef->nmap+1, int, aimInfo, status);
numOutDataPoint = 0;
ielem = 0;
globalOffset[0] = 0;
for (i = 0; i < meshRef->nmap; i++) {
if (meshRef->maps[i].tess == NULL) continue;
status = EG_statusTessBody(meshRef->maps[i].tess, &body, &state, &nGlobal);
AIM_STATUS(aimInfo, status);
// re-allocate data arrays
for (j = 0; j < numOutVariable; j++) {
AIM_REALL(dataOutMatrix[j], numOutDataPoint + nGlobal, double, aimInfo, status);
}
AIM_REALL(usedNode, numOutDataPoint + nGlobal, int, aimInfo, status);
for (j = globalOffset[0]; j < numOutDataPoint + nGlobal; j++) usedNode[j] = (int) false;
for (iglobal = 0; iglobal < nGlobal; iglobal++) {
status = EG_getGlobal(meshRef->maps[i].tess,
iglobal+1, &ptype, &pindex, xyz);
AIM_STATUS(aimInfo, status);
// First just set the Coordinates
dataOutMatrix[0][globalOffset[i]+iglobal] = xyz[0];
dataOutMatrix[1][globalOffset[i]+iglobal] = xyz[1];
dataOutMatrix[2][globalOffset[i]+iglobal] = xyz[2];
// Volume mesh node ID
dataOutMatrix[3][globalOffset[i]+iglobal] = meshRef->maps[i].map[iglobal];
// Delta displacements
dataOutMatrix[4][i] = 0;
dataOutMatrix[5][i] = 0;
dataOutMatrix[6][i] = 0;
}
// check if the tessellation has a mixture of quad and tess
status = EG_attributeRet(meshRef->maps[i].tess, ".mixed",
&atype, &alen, &nquad, &reals, &string);
if (status != EGADS_SUCCESS &&
status != EGADS_NOTFOUND) AIM_STATUS(aimInfo, status);
status = EG_getBodyTopos(body, NULL, FACE, &nFace, &faces);
AIM_STATUS(aimInfo, status);
for (iface = 0; iface < nFace; iface++) {
// get the face tessellation
status = EG_getTessFace(meshRef->maps[i].tess, iface+1, &alen, &face_xyz, &face_uv,
&face_ptype, &face_pindex, &ntri, &face_tris, &face_tric);
AIM_STATUS(aimInfo, status);
AIM_NOTNULL(faces, aimInfo, status);
status = retrieve_CAPSGroupAttr(faces[iface], &groupName);
if (status == EGADS_SUCCESS) {
AIM_NOTNULL(groupName, aimInfo, status);
status = get_mapAttrToIndexIndex(groupMap, groupName, &marker);
if (status != CAPS_SUCCESS) {
AIM_ERROR(aimInfo, "No capsGroup \"%s\" not found in attribute map", groupName);
goto cleanup;
}
} else {
AIM_ERROR(aimInfo, "No capsGroup on face %d", iface+1);
print_AllAttr(aimInfo, faces[iface]);
goto cleanup;
}
// To keep with the moving_bodying input we will assume used nodes are all inviscid and viscous surfaces instead
// usedNode[k] = (int) true;
usedElems = (int) false;
for (j = 0; j < bcProps.numSurfaceProp; j++) {
if (marker != bcProps.surfaceProp[j].bcID) continue;
if (bcProps.surfaceProp[j].surfaceType == Viscous ||
bcProps.surfaceProp[j].surfaceType == Inviscid) {
usedElems = (int) true;
}
break;
}
if (nquad == NULL) { // all triangles
// re-allocate data arrays
AIM_REALL(dataConnectMatrix, 4*(numOutDataConnect + ntri), int, aimInfo, status);
for (itri = 0; itri < ntri; itri++, ielem++) {
for (j = 0; j < 3; j++) {
status = EG_localToGlobal(meshRef->maps[i].tess, iface+1, face_tris[3*itri+j], &iglobal);
AIM_STATUS(aimInfo, status);
dataConnectMatrix[4*ielem+j] = globalOffset[i] + iglobal;
usedNode[globalOffset[i]+iglobal-1] = usedElems;
}
// repeat the last node for triangles
dataConnectMatrix[4*ielem+3] = dataConnectMatrix[4*ielem+2];
}
numOutDataConnect += ntri;
} else { // mixture of tri and quad elements
// re-allocate data arrays
AIM_REALL(dataConnectMatrix, 4*(numOutDataConnect + ntri-nquad[iface]), int, aimInfo, status);
// process triangles
for (itri = 0; itri < ntri-2*nquad[iface]; itri++, ielem++) {
for (j = 0; j < 3; j++) {
status = EG_localToGlobal(meshRef->maps[i].tess, iface+1, face_tris[3*itri+j], &iglobal);
AIM_STATUS(aimInfo, status);
dataConnectMatrix[4*ielem+j] = globalOffset[i] + iglobal;
usedNode[globalOffset[i]+iglobal-1] = usedElems;
}
// repeat the last node for triangle
dataConnectMatrix[4*ielem+3] = dataConnectMatrix[4*ielem+2];
}
// process quads
for (; itri < ntri; itri++, ielem++) {
for (j = 0; j < 3; j++) {
status = EG_localToGlobal(meshRef->maps[i].tess, iface+1, face_tris[3*itri+j], &iglobal);
AIM_STATUS(aimInfo, status);
dataConnectMatrix[4*ielem+j] = globalOffset[i] + iglobal;
usedNode[globalOffset[i]+iglobal-1] = usedElems;
}
// add the last node from the 2nd triangle to make the quad
itri++;
status = EG_localToGlobal(meshRef->maps[i].tess, iface+1, face_tris[3*itri+2], &iglobal);
AIM_STATUS(aimInfo, status);
dataConnectMatrix[4*ielem+3] = globalOffset[i] + iglobal;
usedNode[globalOffset[i]+iglobal-1] = usedElems;
}
numOutDataConnect += ntri-nquad[iface];
}
}
AIM_FREE(faces);
numOutDataPoint += nGlobal;
globalOffset[i+1] = globalOffset[i] + nGlobal;
}
// Re-loop through transfers - if we are doing displacements
if (foundDisplacement == (int) true) {
for (ibound = 0; ibound < numBoundName; ibound++) {
AIM_NOTNULL(boundName, aimInfo, status);
status = aim_getDiscr(aimInfo, boundName[ibound], &discr);
if (status != CAPS_SUCCESS) continue;
status = aim_getDataSet(discr,
"Displacement",
&dataTransferMethod,
&numDataTransferPoint,
&dataTransferRank,
&dataTransferData,
&units);
if (status != CAPS_SUCCESS) continue; // If no elements in this object skip to next transfer name
if (numDataTransferPoint != discr->nPoints &&
numDataTransferPoint > 1) {
AIM_ERROR(aimInfo, "Developer error!! %d != %d", numDataTransferPoint, discr->nPoints);
status = CAPS_MISMATCH;
goto cleanup;
}
for (i = 0; i < discr->nPoints; i++) {
ibody = discr->tessGlobal[2*i+0];
iglobal = discr->tessGlobal[2*i+1];
status = EG_getGlobal(discr->bodys[ibody-1].tess,
iglobal, &ptype, &pindex, xyz);
AIM_STATUS(aimInfo, status);
// Find the disc tessellation in the original list of tessellations
for (j = 0; j < meshRef->nmap; j++) {
if (discr->bodys[ibody-1].tess == meshRef->maps[j].tess) {
break;
}
}
if (j == meshRef->nmap) {
AIM_ERROR(aimInfo, "Could not find matching tessellation!");
status = CAPS_MISMATCH;
goto cleanup;
}
if (numDataTransferPoint == 1) {
// A single point means this is an initialization phase
// Apply delta displacements
dataOutMatrix[0][globalOffset[j]+iglobal-1] += dataTransferData[0];
dataOutMatrix[1][globalOffset[j]+iglobal-1] += dataTransferData[1];
dataOutMatrix[2][globalOffset[j]+iglobal-1] += dataTransferData[2];
// save delta displacements
dataOutMatrix[4][globalOffset[j]+iglobal-1] = dataTransferData[0];
dataOutMatrix[5][globalOffset[j]+iglobal-1] = dataTransferData[1];
dataOutMatrix[6][globalOffset[j]+iglobal-1] = dataTransferData[2];
} else {
// Apply delta displacements
dataOutMatrix[0][globalOffset[j]+iglobal-1] += dataTransferData[3*i+0];
dataOutMatrix[1][globalOffset[j]+iglobal-1] += dataTransferData[3*i+1];
dataOutMatrix[2][globalOffset[j]+iglobal-1] += dataTransferData[3*i+2];
dataOutMatrix[4][globalOffset[j]+iglobal-1] = dataTransferData[3*i+0];
dataOutMatrix[5][globalOffset[j]+iglobal-1] = dataTransferData[3*i+1];
dataOutMatrix[6][globalOffset[j]+iglobal-1] = dataTransferData[3*i+2];
}
}
} // End numBoundName loop
// Remove unused nodes
numUsedNode = numOutDataPoint;
numUsedConnectivity = numOutDataConnect;
AIM_NOTNULL(usedNode, aimInfo, status);
status = fun3d_removeUnused(aimInfo, numOutVariable, &numUsedNode, usedNode,
&dataOutMatrix, &numUsedConnectivity,
dataConnectMatrix);
AIM_STATUS(aimInfo, status);
stringLength = strlen(projectName) + strlen(fileExtBody) + strlen(fileExt) + 1;
AIM_ALLOC(filename, stringLength+1, char, aimInfo, status);
strcpy(filename, projectName);
strcat(filename, fileExtBody);
strcat(filename, fileExt);
filename[stringLength] = '\0';
// Write out displacement in tecplot file
/*@-nullpass@*/
status = tecplot_writeFEPOINT(aimInfo, filename,
"FUN3D AeroLoads",
NULL,
numOutVariable,
(char **)dataOutName,
numUsedNode, // numOutDataPoint,
dataOutMatrix,
dataOutFormat,
numUsedConnectivity, //numOutDataConnect, // numConnectivity
dataConnectMatrix, // connectivity matrix
NULL); // Solution time
/*@+nullpass@*/
AIM_STATUS(aimInfo, status);
AIM_FREE(filename);
} // End if found displacements
// Re-loop through transfers - if we are doing eigen-vectors
if ((foundEigenVector == (int) true) && (eigenVector != NULL)) {
for (eigenIndex = 0; eigenIndex < eigenVector->numEigenValue; eigenIndex++) {
// Zero out the eigen-vectors each time we are writing out a new one
for (i = 0; i < numOutDataPoint; i++ ) {
// Delta eigen-vectors
dataOutMatrix[4][i] = 0;
dataOutMatrix[5][i] = 0;
dataOutMatrix[6][i] = 0;
}
for (ibound = 0; ibound < numBoundName; ibound++) {
AIM_NOTNULL(boundName, aimInfo, status);
status = aim_getDiscr(aimInfo, boundName[ibound], &discr);
if (status != CAPS_SUCCESS) continue;
status = aim_getDataSet(discr,
eigenVector->eigenValue[eigenIndex].name,
&dataTransferMethod,
&numDataTransferPoint,
&dataTransferRank,
&dataTransferData,
&units);
if (status != CAPS_SUCCESS) continue; // If no elements in this object skip to next transfer name
if (numDataTransferPoint != discr->nPoints &&
numDataTransferPoint > 1) {
AIM_ERROR(aimInfo, "Developer error!! %d != %d", numDataTransferPoint, discr->nPoints);
status = CAPS_MISMATCH;
goto cleanup;
}
for (i = 0; i < discr->nPoints; i++) {
ibody = discr->tessGlobal[2*i+0];
iglobal = discr->tessGlobal[2*i+1];
// Find the disc tessellation in the original list of tessellations
for (j = 0; j < meshRef->nmap; j++) {
if (discr->bodys[ibody-1].tess == meshRef->maps[j].tess) {
break;
}
}
if (j == meshRef->nmap) {
AIM_ERROR(aimInfo, "Could not find matching tessellation!");
status = CAPS_MISMATCH;
goto cleanup;
}
if (numDataTransferPoint == 1) {
// A single point means this is an initialization phase
// save Eigen-vector
dataOutMatrix[4][globalOffset[j]+iglobal-1] = dataTransferData[0];
dataOutMatrix[5][globalOffset[j]+iglobal-1] = dataTransferData[1];
dataOutMatrix[6][globalOffset[j]+iglobal-1] = dataTransferData[2];
} else {
// save Eigen-vector
dataOutMatrix[4][globalOffset[j]+iglobal-1] = dataTransferData[3*i+0];
dataOutMatrix[5][globalOffset[j]+iglobal-1] = dataTransferData[3*i+1];
dataOutMatrix[6][globalOffset[j]+iglobal-1] = dataTransferData[3*i+2];
}
}
} // End dataTransferDiscreteObj loop
// Remove unused nodes
numUsedNode = numOutDataPoint;
AIM_NOTNULL(usedNode, aimInfo, status);
if (eigenIndex == 0) {
numUsedConnectivity = numOutDataConnect;
status = fun3d_removeUnused(aimInfo, numOutVariable, &numUsedNode,
usedNode, &dataOutMatrix,
&numUsedConnectivity, dataConnectMatrix);
AIM_STATUS(aimInfo, status);
} else {
status = fun3d_removeUnused(aimInfo, numOutVariable, &numUsedNode,
usedNode, &dataOutMatrix, NULL, NULL);
AIM_STATUS(aimInfo, status);
}
stringLength = strlen(projectName) +
strlen(fileExtBody) +
strlen(fileExtMode) +
strlen(fileExt) + 5;
AIM_ALLOC(filename, stringLength+1, char, aimInfo, status);
sprintf(filename, "%s%s%s%d%s",
projectName,
fileExtBody,
fileExtMode, // Change modeNumber so it always starts at 1!
eigenIndex+1, // eigenVector->eigenValue[eigenIndex].modeNumber,
fileExt);
// Write out eigen-vector in tecplot file
/*@-nullpass@*/
status = tecplot_writeFEPOINT(aimInfo,
filename,
"FUN3D Modal",
NULL,
numOutVariable,
(char **)dataOutName,
numUsedNode, //numOutDataPoint,
dataOutMatrix,
dataOutFormat,
numUsedConnectivity, //numOutDataConnect, // numConnectivity
dataConnectMatrix, // connectivity matrix
NULL); // Solution time
/*@+nullpass@*/
AIM_STATUS(aimInfo, status);
AIM_FREE(filename);
} // End eigenvector names
} // End if found eigenvectors
status = CAPS_SUCCESS;
// Clean-up
cleanup:
if (status != CAPS_SUCCESS &&
status != CAPS_NOTFOUND) printf("Error: Premature exit in fun3d_dataTransfer status = %d\n", status);
if (dataOutMatrix != NULL) {
for (i = 0; i < numOutVariable; i++) {
AIM_FREE(dataOutMatrix[i]);
}
}
AIM_FREE(faces);
AIM_FREE(dataOutMatrix);
AIM_FREE(dataConnectMatrix);
AIM_FREE(filename);
AIM_FREE(boundName);
AIM_FREE(usedNode);
return status;
}
// Write FUN3D fun3d.nml file
int fun3d_writeNML(void *aimInfo, capsValue *aimInputs, cfdBoundaryConditionStruct bcProps)
{
int status; // Function return status
int i; // Indexing
FILE *fnml = NULL;
char filename[PATH_MAX];
char fileExt[] ="fun3d.nml";
printf("Writing fun3d.nml\n");
if (aimInputs[Design_Functional-1].nullVal == NotNull ||
aimInputs[Design_SensFile-1].vals.integer == (int)true) {
#ifdef WIN32
snprintf(filename, PATH_MAX, "Flow\\%s", fileExt);
#else
snprintf(filename, PATH_MAX, "Flow/%s", fileExt);
#endif
} else {
strcpy(filename, fileExt);
}
fnml = aim_fopen(aimInfo, filename, "w");
if (fnml == NULL) {
AIM_ERROR(aimInfo, "Unable to open file - %s\n", filename);
status = CAPS_IOERR;
goto cleanup;
}
// &project
fprintf(fnml,"&project\n");
fprintf(fnml," project_rootname = \"%s\"\n",
aimInputs[Proj_Name-1].vals.string);
fprintf(fnml,"/\n\n");
// &raw_grid
fprintf(fnml,"&raw_grid\n");
//fprintf(fnml," grid_format = \"%s\"\n",
// aimInputs[Mesh_Format-1].vals.string);
// if (aimInputs[Mesh_ASCII_Flag-1].vals.integer == (int) true) {
// fprintf(fnml," data_format = \"ascii\"\n");
// } else fprintf(fnml," data_format = \"stream\"\n");
fprintf(fnml," grid_format = \"AFLR3\"\n");
fprintf(fnml," data_format = \"stream\"\n");
if (aimInputs[Two_Dimensional-1].vals.integer == (int) true) {
fprintf(fnml," twod_mode = .true.\n");
//fprintf(fnml," ignore_euler_number = .true.\n");
}
fprintf(fnml,"/\n\n");
// &reference_physical_properties
fprintf(fnml,"&reference_physical_properties\n");
if (aimInputs[Mach-1].nullVal != IsNull) {
fprintf(fnml," mach_number = %f\n", aimInputs[Mach-1].vals.real);
}
if (aimInputs[Re-1].nullVal != IsNull) {
fprintf(fnml," reynolds_number = %f\n", aimInputs[Re-1].vals.real);
}
if (aimInputs[Alpha-1].nullVal != IsNull) {
fprintf(fnml," angle_of_attack = %f\n", aimInputs[Alpha-1].vals.real);
}
if (aimInputs[Beta-1].nullVal != IsNull) {
fprintf(fnml," angle_of_yaw = %f\n", aimInputs[Beta-1].vals.real);
}
if (aimInputs[Reference_Temperature-1].nullVal != IsNull) {
fprintf(fnml," temperature = %f\n", aimInputs[Reference_Temperature-1].vals.real);
if (aimInputs[Reference_Temperature-1].units != NULL) {
fprintf(fnml," temperature_units = \'%s\'\n", aimInputs[Reference_Temperature-1].units);
}
}
fprintf(fnml,"/\n\n");
// &governing_equations
fprintf(fnml,"&governing_equations\n");
if (aimInputs[Viscoux-1].nullVal != IsNull) {
fprintf(fnml," viscous_terms = \"%s\"\n", aimInputs[Viscoux-1].vals.string);
}
if (aimInputs[Equation_Type-1].nullVal != IsNull) {
fprintf(fnml," eqn_type = \"%s\"\n", aimInputs[Equation_Type-1].vals.string);
}
fprintf(fnml,"/\n\n");
// &nonlinear_solver_parameters
fprintf(fnml,"&nonlinear_solver_parameters\n");
if (aimInputs[Time_Accuracy-1].nullVal != IsNull) {
fprintf(fnml," time_accuracy = \"%s\"\n",
aimInputs[Time_Accuracy-1].vals.string);
}
if (aimInputs[Time_Step-1].nullVal != IsNull) {
fprintf(fnml," time_step_nondim = %f\n", aimInputs[Time_Step-1].vals.real);
}
if (aimInputs[Num_Subiter-1].nullVal != IsNull) {
fprintf(fnml," subiterations = %d\n",
aimInputs[Num_Subiter-1].vals.integer);
}
if (aimInputs[Temporal_Error-1].nullVal != IsNull) {
fprintf(fnml," temporal_err_control = .true.\n");
fprintf(fnml," temporal_err_floor = %f\n",
aimInputs[Temporal_Error-1].vals.real);
}
if (aimInputs[CFL_Schedule-1].nullVal != IsNull) {
fprintf(fnml," schedule_cfl = %f %f\n",
aimInputs[CFL_Schedule-1].vals.reals[0],
aimInputs[CFL_Schedule-1].vals.reals[1]);
}
if (aimInputs[CFL_Schedule_Iter-1].nullVal != IsNull) {
fprintf(fnml," schedule_iteration = %d %d\n",
aimInputs[CFL_Schedule_Iter-1].vals.integers[0],
aimInputs[CFL_Schedule_Iter-1].vals.integers[1]);
}
fprintf(fnml,"/\n\n");
// &code_run_control
fprintf(fnml,"&code_run_control\n");
if (aimInputs[Num_Iter-1].nullVal != IsNull) {
fprintf(fnml," steps = %d\n", aimInputs[Num_Iter-1].vals.integer);
}
if (aimInputs[Restart_Read-1].nullVal != IsNull) {
fprintf(fnml," restart_read = '%s'\n",
aimInputs[Restart_Read-1].vals.string);
}
fprintf(fnml,"/\n\n");
//&force_moment_integ_properties
fprintf(fnml,"&force_moment_integ_properties\n");
if (aimInputs[Reference_Area-1].nullVal != IsNull) {
fprintf(fnml," area_reference = %f\n",
aimInputs[Reference_Area-1].vals.real);
}
if (aimInputs[Moment_Length-1].nullVal != IsNull) {
fprintf(fnml," x_moment_length = %f\n",
aimInputs[Moment_Length-1].vals.reals[0]);
fprintf(fnml," y_moment_length = %f\n",
aimInputs[Moment_Length-1].vals.reals[1]);
}
if (aimInputs[Moment_Center-1].nullVal != IsNull) {
fprintf(fnml," x_moment_center = %f\n",
aimInputs[Moment_Center-1].vals.reals[0]);
fprintf(fnml," y_moment_center = %f\n",
aimInputs[Moment_Center-1].vals.reals[1]);
fprintf(fnml," z_moment_center = %f\n",
aimInputs[Moment_Center-1].vals.reals[2]);
}
fprintf(fnml,"/\n\n");
//&boundary_conditions
fprintf(fnml,"&boundary_conditions\n");
// Loop through boundary conditions
for (i = 0; i < bcProps.numSurfaceProp ; i++) {
// Temperature
if (bcProps.surfaceProp[i].wallTemperatureFlag == (int) true) {
fprintf(fnml," wall_temperature(%d) = %f\n",bcProps.surfaceProp[i].bcID,
bcProps.surfaceProp[i].wallTemperature);
fprintf(fnml," wall_temp_flag(%d) = .true.\n",bcProps.surfaceProp[i].bcID);
}
// Total pressure and temperature
if (bcProps.surfaceProp[i].surfaceType == SubsonicInflow) {
fprintf(fnml, " total_pressure_ratio(%d) = %f\n", bcProps.surfaceProp[i].bcID,
bcProps.surfaceProp[i].totalPressure);
fprintf(fnml, " total_temperature_ratio(%d) = %f\n", bcProps.surfaceProp[i].bcID,
bcProps.surfaceProp[i].totalTemperature);
}
// Static pressure
if (bcProps.surfaceProp[i].surfaceType == BackPressure ||
bcProps.surfaceProp[i].surfaceType == SubsonicOutflow) {
fprintf(fnml, " static_pressure_ratio(%d) = %f\n", bcProps.surfaceProp[i].bcID,
bcProps.surfaceProp[i].staticPressure);
}
// Mach number
if (bcProps.surfaceProp[i].surfaceType == MachOutflow ||
bcProps.surfaceProp[i].surfaceType == MassflowOut) {
fprintf(fnml, " mach_bc(%d) = %f\n", bcProps.surfaceProp[i].bcID,
bcProps.surfaceProp[i].machNumber);
}
// Massflow
if (bcProps.surfaceProp[i].surfaceType == MassflowIn ||
bcProps.surfaceProp[i].surfaceType == MassflowOut) {
fprintf(fnml, " massflow(%d) = %f\n", bcProps.surfaceProp[i].bcID,
bcProps.surfaceProp[i].massflow);
}
// Fixed inflow and outflow
/*if (bcProps.surfaceProp[i].surfaceType == FixedInflow ||
bcProps.surfaceProp[i].surfaceType == FixedOutflow) {
fprintf(fnml, " qset(%d,1) = %f\n", bcProps.surfaceProp[i].bcID,
bcProps.surfaceProp[i].staticDensity);
fprintf(fnml, " qset(%d,2) = %f\n", bcProps.surfaceProp[i].bcID,
bcProps.surfaceProp[i].uVelocity);
fprintf(fnml, " qset(%d,3) = %f\n", bcProps.surfaceProp[i].bcID,
bcProps.surfaceProp[i].vVelocity);
fprintf(fnml, " qset(%d,4) = %f\n", bcProps.surfaceProp[i].bcID,
bcProps.surfaceProp[i].wVelocity);
fprintf(fnml, " qset(%d,5) = %f\n", bcProps.surfaceProp[i].bcID,
bcProps.surfaceProp[i].staticDensity);
}*/
}
fprintf(fnml,"/\n\n");
// &noninertial_reference_frame
fprintf(fnml,"&noninertial_reference_frame\n");
if (aimInputs[NonInertial_Rotation_Rate-1].nullVal != IsNull ||
aimInputs[NonInertial_Rotation_Center-1].nullVal != IsNull) {
fprintf(fnml," noninertial = .true.\n");
}
if (aimInputs[NonInertial_Rotation_Center-1].nullVal != IsNull) {
fprintf(fnml," rotation_center_x = %f\n",
aimInputs[NonInertial_Rotation_Center-1].vals.reals[0]);
fprintf(fnml," rotation_center_y = %f\n",
aimInputs[NonInertial_Rotation_Center-1].vals.reals[1]);
fprintf(fnml," rotation_center_z = %f\n",
aimInputs[NonInertial_Rotation_Center-1].vals.reals[2]);
}
if (aimInputs[NonInertial_Rotation_Rate-1].nullVal != IsNull) {
fprintf(fnml," rotation_rate_x = %f\n",
aimInputs[NonInertial_Rotation_Rate-1].vals.reals[0]);
fprintf(fnml," rotation_rate_y = %f\n",
aimInputs[NonInertial_Rotation_Rate-1].vals.reals[1]);
fprintf(fnml," rotation_rate_z = %f\n",
aimInputs[NonInertial_Rotation_Rate-1].vals.reals[2]);
}
fprintf(fnml,"/\n\n");
status = CAPS_SUCCESS;
cleanup:
if (status != CAPS_SUCCESS)
printf("Error: Premature exit in fun3d_writeNML status = %d\n", status);
if (fnml != NULL) fclose(fnml);
return status;
}
// Write FUN3D movingbody.input file
int fun3d_writeMovingBody(void *aimInfo, double fun3dVersion, cfdBoundaryConditionStruct bcProps,
cfdModalAeroelasticStruct *modalAeroelastic)
{
int status; // Function return status
int i, eigenIndex; // Indexing
int counter = 0;
FILE *fp = NULL;
char *filename = NULL;
char fileExt[] ="moving_body.input";
int bodyIndex = 1;
int stringLength;
printf("Writing moving_body.input");
stringLength = strlen(fileExt) + 1;
AIM_ALLOC(filename,stringLength +1, char, aimInfo, status);
strcpy(filename, fileExt);
filename[stringLength] = '\0';
fp = aim_fopen(aimInfo, filename, "w");
if (fp == NULL) {
AIM_ERROR(aimInfo, "Unable to open file - %s\n", filename);
status = CAPS_IOERR;
goto cleanup;
}
// &body_definitions
fprintf(fp,"&body_definitions\n");
fprintf(fp," n_moving_bodies = %d\n", bodyIndex);
counter = 0;
for (i = 0; i < bcProps.numSurfaceProp; i++) {
if (bcProps.surfaceProp[i].surfaceType == Viscous ||
bcProps.surfaceProp[i].surfaceType == Inviscid) {
fprintf(fp," defining_bndry(%d,%d) = %d\n", counter+1,
bodyIndex,
bcProps.surfaceProp[i].bcID);
counter += 1;
}
}
fprintf(fp," n_defining_bndry(%d) = %d\n", bodyIndex, counter);
fprintf(fp," motion_driver(%d) = ", bodyIndex);
if (modalAeroelastic != NULL) {
fprintf(fp,"\"aeroelastic\"\n");
}
fprintf(fp," mesh_movement(%d) = ", bodyIndex);
if (modalAeroelastic != NULL) {
fprintf(fp,"\"deform\"\n");
}
fprintf(fp,"/\n\n");
if (modalAeroelastic != NULL) {
// &aeroelastic_modal_data
fprintf(fp,"&aeroelastic_modal_data\n");
fprintf(fp," nmode(%d) = %d\n", bodyIndex, modalAeroelastic->numEigenValue);
if (fun3dVersion < 13.1) {
fprintf(fp," uinf(%d) = %f\n", bodyIndex, modalAeroelastic->freestreamVelocity);
fprintf(fp," qinf(%d) = %f\n", bodyIndex, modalAeroelastic->freestreamDynamicPressure);
fprintf(fp," grefl(%d) = %f\n", bodyIndex, modalAeroelastic->lengthScaling);
} else {
fprintf(fp," uinf = %f\n", modalAeroelastic->freestreamVelocity);
fprintf(fp," qinf = %f\n", modalAeroelastic->freestreamDynamicPressure);
fprintf(fp," grefl = %f\n",modalAeroelastic->lengthScaling);
}
fprintf(fp, "\n");
for (i = 0; i < modalAeroelastic->numEigenValue; i++) {
eigenIndex = i + 1; // Change mode number so that it always starts at 1
// modalAeroelastic->eigenValue[i].modeNumber
fprintf(fp, " ! Mode %d of %d (structural mode %d)\n", eigenIndex,
modalAeroelastic->numEigenValue,
modalAeroelastic->eigenValue[i].modeNumber);
fprintf(fp," freq(%d,%d) = %f\n", eigenIndex, bodyIndex, modalAeroelastic->eigenValue[i].frequency);
fprintf(fp," damp(%d,%d) = %f\n", eigenIndex, bodyIndex, modalAeroelastic->eigenValue[i].damping);
fprintf(fp," gmass(%d,%d) = %f\n" , eigenIndex, bodyIndex, modalAeroelastic->eigenValue[i].generalMass);
fprintf(fp," gdisp0(%d,%d) = %f\n" , eigenIndex, bodyIndex, modalAeroelastic->eigenValue[i].generalDisplacement);
fprintf(fp," gvel0(%d,%d) = %f\n" , eigenIndex, bodyIndex, modalAeroelastic->eigenValue[i].generalVelocity);
fprintf(fp," gforce0(%d,%d) = %f\n", eigenIndex, bodyIndex, modalAeroelastic->eigenValue[i].generalForce);
fprintf(fp, "\n");
}
fprintf(fp,"/\n\n");
}
status = CAPS_SUCCESS;
cleanup:
if (status != CAPS_SUCCESS)
printf("Error: Premature exit in fun3d_writeMovingBody status = %d\n",
status);
if (fp != NULL) fclose(fp);
if (filename != NULL) EG_free(filename);
return status;
}
// Write FUN3D parameterization/sensitivity file
// Will not calculate shape sensitivities if there are no geometry design variable; will
// simple check and dump out the body meshes in model.tec files
int fun3d_writeParameterization(void *aimInfo,
int numDesignVariable,
cfdDesignVariableStruct designVariable[],
aimMeshRef *meshRef)
{
int status; // Function return status
int i, j, k, m, row, col; // Indexing
int stringLength = 7;
// Data transfer Out variables
char **dataOutName= NULL;
double ***dataOutMatrix = NULL;
int *dataOutFormat = NULL;
int *dataConnectMatrix = NULL;
int numOutVariable = 4; // x, y, z, id, ... + 3* active GeomIn
int numOutDataPoint = 0;
int numOutDataConnect = 0;
// Variables used in global node mapping
int ptype, pindex;
double xyz[3];
const char *geomInName;
int numPoint;
double *dxyz = NULL;
int index;
int iface, iglobal;
int state, nFace;
ego body, *faces=NULL;
int alen, ntri, atype, itri, ielem;
const double *face_xyz, *face_uv, *reals;
const int *face_ptype, *face_pindex, *face_tris, *face_tric, *nquad=NULL;
const char *string;
char message[100];
char filePre[] = "model.tec.";
char fileExt[] = ".sd1";
char *filename = NULL;
char folder[] = "Rubberize";
char zoneTitle[100];
capsValue *geomInVal;
int *geomSelect = NULL;
AIM_ALLOC(geomSelect, numDesignVariable, int, aimInfo, status);
// Determine number of geometry input variables
for (i = 0; i < numDesignVariable; i++) {
geomSelect[i] = (int) false;
printf("DesignVariable = %s\n", designVariable[i].name);
index = aim_getIndex(aimInfo, designVariable[i].name, GEOMETRYIN);
if (index == CAPS_NOTFOUND) continue;
if (index < CAPS_SUCCESS ) {
status = index;
AIM_STATUS(aimInfo, status);
}
if(aim_getGeomInType(aimInfo, index) != 0) {
AIM_ERROR(aimInfo, "GeometryIn value %s is a configuration parameter and not a valid design parameter - can't get sensitivity\n",
designVariable[i].name);
status = CAPS_BADVALUE;
goto cleanup;
}
status = aim_getValue(aimInfo, index, GEOMETRYIN, &geomInVal);
AIM_STATUS(aimInfo, status);
numOutVariable += 3*geomInVal->length; // xD1, yD1, zD1, ...
// Don't compute sensitivities if not needed
geomSelect[i] = (int) true;
}
// No need to write Rubberize files without GeometryIn design variables
if (numOutVariable == 4) {
status = CAPS_SUCCESS;
goto cleanup;
}
if (numOutVariable > 99999999) {
AIM_ERROR(aimInfo, "Array of design variable names will be over-run!");
status = CAPS_RANGEERR;
goto cleanup;
}
// Allocate our names
AIM_ALLOC(dataOutName, numOutVariable, char*, aimInfo, status);
for (i = 0; i < numOutVariable; i++) dataOutName[i] = NULL;
stringLength = 11;
j = 1;
k = 1;
for (i = 0; i < numOutVariable; i++) {
AIM_ALLOC(dataOutName[i], stringLength+1, char, aimInfo, status);
// Set names
if (i == 0) sprintf(dataOutName[i], "%s", "x");
else if (i == 1) sprintf(dataOutName[i], "%s", "y");
else if (i == 2) sprintf(dataOutName[i], "%s", "z");
else if (i == 3) sprintf(dataOutName[i], "%s", "id");
else {
if (j == 1) sprintf(dataOutName[i], "%s%d", "xD", k);
else if (j == 2) sprintf(dataOutName[i], "%s%d", "yD", k);
else if (j == 3) {
sprintf(dataOutName[i], "%s%d", "zD", k);
j = 0;
k += 1;
}
j += 1;
}
}
AIM_ALLOC(dataOutFormat, numOutVariable, int, aimInfo, status);
// Set data out formatting
for (i = 0; i < numOutVariable; i++) {
if (strcasecmp(dataOutName[i], "id") == 0) {
dataOutFormat[i] = (int) Integer;
} else {
dataOutFormat[i] = (int) Double;
}
}
// Allocate data arrays that are going to be output
AIM_ALLOC(dataOutMatrix, meshRef->nmap, double**, aimInfo, status);
for (i = 0; i < meshRef->nmap; i++) dataOutMatrix[i] = NULL;
for (i = 0; i < meshRef->nmap; i++) {
AIM_ALLOC(dataOutMatrix[i], numOutVariable, double*, aimInfo, status);
for (j = 0; j < numOutVariable; j++) dataOutMatrix[i][j] = NULL;
}
for (i = 0; i < meshRef->nmap; i++) {
if (meshRef->maps[i].tess == NULL) continue;
status = EG_statusTessBody(meshRef->maps[i].tess, &body, &state, &numOutDataPoint);
AIM_STATUS(aimInfo, status);
// allocate data arrays
for (j = 0; j < numOutVariable; j++) {
AIM_ALLOC(dataOutMatrix[i][j], numOutDataPoint, double, aimInfo, status);
}
for (iglobal = 0; iglobal < numOutDataPoint; iglobal++) {
status = EG_getGlobal(meshRef->maps[i].tess,
iglobal+1, &ptype, &pindex, xyz);
AIM_STATUS(aimInfo, status);
// First just set the Coordinates
dataOutMatrix[i][0][iglobal] = xyz[0];
dataOutMatrix[i][1][iglobal] = xyz[1];
dataOutMatrix[i][2][iglobal] = xyz[2];
// Volume mesh node ID
dataOutMatrix[i][3][iglobal] = meshRef->maps[i].map[iglobal];
}
}
// Loop over the geometry in values and compute sensitivities for all bodies
m = 4;
for (j = 0; j < numDesignVariable; j++) {
if (geomSelect[j] == (int) false) continue;
geomInName = designVariable[j].name;
index = aim_getIndex(aimInfo, geomInName, GEOMETRYIN);
status = aim_getValue(aimInfo, index, GEOMETRYIN, &geomInVal);
AIM_STATUS(aimInfo, status);
for (row = 0; row < geomInVal->nrow; row++) {
for (col = 0; col < geomInVal->ncol; col++) {
for (i = 0; i < meshRef->nmap; i++) {
if (meshRef->maps[i].tess == NULL) continue;
status = aim_tessSensitivity(aimInfo,
geomInName,
row+1, col+1, // row, col
meshRef->maps[i].tess,
&numPoint, &dxyz);
AIM_STATUS(aimInfo, status, "Sensitivity for: %s\n", geomInName);
AIM_NOTNULL(dxyz, aimInfo, status);
for (k = 0; k < numPoint; k++) {
dataOutMatrix[i][m+0][k] = dxyz[3*k + 0]; // dx/dGeomIn
dataOutMatrix[i][m+1][k] = dxyz[3*k + 1]; // dy/dGeomIn
dataOutMatrix[i][m+2][k] = dxyz[3*k + 2]; // dz/dGeomIn
}
AIM_FREE(dxyz);
}
m += 3;
}
}
}
// Write sensitivity files for each body tessellation
for (i = 0; i < meshRef->nmap; i++) {
if (meshRef->maps[i].tess == NULL) continue;
status = EG_statusTessBody(meshRef->maps[i].tess, &body, &state, &numOutDataPoint);
AIM_STATUS(aimInfo, status);
// check if the tessellation has a mixture of quad and tess
status = EG_attributeRet(meshRef->maps[i].tess, ".mixed",
&atype, &alen, &nquad, &reals, &string);
if (status != EGADS_SUCCESS &&
status != EGADS_NOTFOUND) AIM_STATUS(aimInfo, status);
status = EG_getBodyTopos(body, NULL, FACE, &nFace, &faces);
AIM_STATUS(aimInfo, status);
ielem = 0;
numOutDataConnect = 0;
for (iface = 0; iface < nFace; iface++) {
// get the face tessellation
status = EG_getTessFace(meshRef->maps[i].tess, iface+1, &alen, &face_xyz, &face_uv,
&face_ptype, &face_pindex, &ntri, &face_tris, &face_tric);
AIM_STATUS(aimInfo, status);
if (nquad == NULL) { // all triangles
// re-allocate data arrays
AIM_REALL(dataConnectMatrix, 4*(numOutDataConnect + ntri), int, aimInfo, status);
for (itri = 0; itri < ntri; itri++, ielem++) {
for (j = 0; j < 3; j++) {
status = EG_localToGlobal(meshRef->maps[i].tess, iface+1, face_tris[3*itri+j], &iglobal);
AIM_STATUS(aimInfo, status);
dataConnectMatrix[4*ielem+j] = iglobal;
}
// repeat the last node for triangles
dataConnectMatrix[4*ielem+3] = dataConnectMatrix[4*ielem+2];
}
numOutDataConnect += ntri;
} else { // mixture of tri and quad elements
// re-allocate data arrays
AIM_REALL(dataConnectMatrix, 4*(numOutDataConnect + ntri-nquad[iface]), int, aimInfo, status);
// process triangles
for (itri = 0; itri < ntri-2*nquad[iface]; itri++, ielem++) {
for (j = 0; j < 3; j++) {
status = EG_localToGlobal(meshRef->maps[i].tess, iface+1, face_tris[3*itri+j], &iglobal);
AIM_STATUS(aimInfo, status);
dataConnectMatrix[4*ielem+j] = iglobal;
}
// repeat the last node for triangle
dataConnectMatrix[4*ielem+3] = dataConnectMatrix[4*ielem+2];
}
// process quads
for (; itri < ntri; itri++, ielem++) {
for (j = 0; j < 3; j++) {
status = EG_localToGlobal(meshRef->maps[i].tess, iface+1, face_tris[3*itri+j], &iglobal);
AIM_STATUS(aimInfo, status);
dataConnectMatrix[4*ielem+j] = iglobal;
}
// add the last node from the 2nd triangle to make the quad
itri++;
status = EG_localToGlobal(meshRef->maps[i].tess, iface+1, face_tris[3*itri+2], &iglobal);
AIM_STATUS(aimInfo, status);
dataConnectMatrix[4*ielem+3] = iglobal;
}
numOutDataConnect += ntri-nquad[iface];
}
}
AIM_FREE(faces);
sprintf(message,"%s %d,", "sensitivity file for body", i+1);
stringLength = strlen(folder) + 1 + strlen(filePre) + 7 + strlen(fileExt) + 1 ;
AIM_REALL(filename, stringLength, char, aimInfo, status);
#ifdef WIN32
sprintf(filename, "%s\\%s%d%s", folder, filePre, i+1, fileExt);
#else
sprintf(filename, "%s/%s%d%s", folder, filePre, i+1, fileExt);
#endif
sprintf(zoneTitle, "%s_%d", "Body", i+1);
/*@-nullpass@*/
status = tecplot_writeFEPOINT(aimInfo,
filename,
message,
zoneTitle,
numOutVariable,
dataOutName,
numOutDataPoint,
dataOutMatrix[i],
dataOutFormat,
numOutDataConnect,
dataConnectMatrix,
NULL);
/*@+nullpass@*/
AIM_STATUS(aimInfo, status);
}
status = CAPS_SUCCESS;
cleanup:
(void) string_freeArray(numOutVariable, &dataOutName);
#ifdef S_SPLINT_S
EG_free(dataOutName);
#endif
if (dataOutMatrix != NULL) {
for (i = 0; i < meshRef->nmap; i++) {
if (dataOutMatrix[i] != NULL) {
for (j = 0; j < numOutVariable; j++) {
AIM_FREE(dataOutMatrix[i][j]);
}
}
AIM_FREE(dataOutMatrix[i]);
}
}
AIM_FREE(dataOutMatrix);
AIM_FREE(dataOutFormat);
AIM_FREE(dataConnectMatrix);
AIM_FREE(faces);
AIM_FREE(dxyz);
AIM_FREE(filename);
AIM_FREE(geomSelect);
return status;
}
static int _writeFunctinoalComponent(void *aimInfo, FILE *fp, cfdDesignFunctionalCompStruct *comp)
{
int status = CAPS_SUCCESS;
const char *names[] = {"cl", "cd", // Lift, drag coefficients
"clp", "cdp", // Lift, drag coefficients: pressure contributions
"clv", "cdv", // Lift, drag coefficients: shear contributions
"cmx", "cmy", "cmz", // x/y/z-axis moment coefficients
"cmxp", "cmyp", "cmzp", // x/y/z-axis moment coefficients: pressure contributions
"cmxv", "cmyv", "cmzv", // x/y/z-axis moment coefficients: shear contributions
"cx", "cy", "cz", // x/y/z-axis force coefficients
"cxp", "cyp", "czp", // x/y/z-axis force coefficients: pressure contributions
"cxv", "cyv", "czv", // x/y/z-axis force coefficients: shear contributions
"powerx", "powery", "powerz", // x/y/z-axis power coefficients
"clcd", // Lift-to-drag ratio
"fom" , // Rotorcraft figure of merit
"propeff", // Rotorcraft propulsive efficiency
"rtr" , // thrust Rotorcraft thrust function
"pstag" , // RMS of stagnation pressure in cutting plane disk
"distort", // Engine inflow distortion
"boom" , // targ Near-field p/p∞ pressure target
"sboom" , // Coupled sBOOM ground-based noise metrics
"ae" , // Supersonic equivalent area target distribution
"press" , // box RMS of pressure in user-defined box, also pointwise dp/dt, dρ/dt
"cpstar" , // Target pressure distributions
"sgen" // Entropy generation
};
int i, found = (int)false;
char *function=NULL, *c=NULL;
for (i = 0; i < sizeof(names)/sizeof(char*); i++)
if ( strcasecmp(names[i], comp->name) == 0 ) {
found = (int)true;
break;
}
if (found == (int) false) {
AIM_ERROR(aimInfo, "Unknown function: '%s'", comp->name);
AIM_ADDLINE(aimInfo, "Available functions:");
for (i = 0; i < sizeof(names)/sizeof(char*); i++)
AIM_ADDLINE(aimInfo, "'%s'", names[i]);
status = CAPS_BADVALUE;
goto cleanup;
}
// make the name lower case
AIM_STRDUP(function, comp->name, aimInfo, status);
for (c = function; *c != '\0'; ++c) *c = tolower(*c);
// fprintf(fp, "Components of function 1: boundary id (0=all)/name/value/weight/target/power\n");
fprintf(fp, " %d %s %f %f %f %f\n", comp->bcID,
function,
0.0,
comp->weight,
comp->target,
comp->power);
status = CAPS_SUCCESS;
cleanup:
AIM_FREE(function);
return status;
}
// Write FUN3D rubber.data file
// Will not write shape entries unless explicitly told to check if they are need
int fun3d_writeRubber(void *aimInfo,
cfdDesignStruct design,
int checkGeomShape,
double fun3dVersion,
aimMeshRef *meshRef)
{
int status; // Function return status
int i, j, k, m; // Indexing
int numBody = 0, numShapeVar = 0;
char file[] = "rubber.data";
FILE *fp = NULL;
printf("Writing %s \n", file);
if (meshRef == NULL) return CAPS_NULLVALUE;
// Open file
fp = aim_fopen(aimInfo, file, "w");
if (fp == NULL) {
AIM_ERROR(aimInfo, "Unable to open file: %s\n", file);
status = CAPS_IOERR;
goto cleanup;
}
numBody = meshRef->nmap;
if (checkGeomShape == (int) true) {
// Determine number of geometry input variables
for (i = 0; i < design.numDesignVariable; i++) {
if (design.designVariable[i].type != DesignVariableGeometry) continue;
numShapeVar += design.designVariable[i].var->length; // xD1, yD1, zD1, ...
}
}
// Don't write out body information if there are no geometry design variables
if (numShapeVar == 0) numBody = 0;
fprintf(fp, "################################################################################\n");
fprintf(fp, "########################### Design Variable Information ########################\n");
fprintf(fp, "################################################################################\n");
fprintf(fp, "Global design variables (Mach number, AOA, Yaw, Noninertial rates)\n");
fprintf(fp, "Var Active Value Lower Bound Upper Bound\n");
for (i = 0; i < design.numDesignVariable; i++) {
if (strcasecmp(design.designVariable[i].name, "Mach") != 0) continue;
if (design.designVariable[i].var->length < 1) {
status = CAPS_RANGEERR;
goto cleanup;
}
fprintf(fp, "Mach 1 %.15E %.15E %.15E\n", design.designVariable[i].value[0],
design.designVariable[i].lowerBound[0],
design.designVariable[i].upperBound[0]);
break;
}
if (i >= design.numDesignVariable) fprintf(fp, "Mach 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
for (i = 0; i < design.numDesignVariable; i++) {
if (strcasecmp(design.designVariable[i].name, "Alpha") != 0) continue;
if (design.designVariable[i].var->length < 1) {
status = CAPS_RANGEERR;
goto cleanup;
}
fprintf(fp, "AOA 1 %.15E %.15E %.15E\n", design.designVariable[i].value[0],
design.designVariable[i].lowerBound[0],
design.designVariable[i].upperBound[0]);
break;
}
if (i >= design.numDesignVariable) fprintf(fp, "AOA 0 0.000000000000000E+00 0.000000000000000E+00 0.00000000000000E+00\n");
if (fun3dVersion > 12.4) {
// FUN3D version 13.1 - version 12.4 doesn't have these available
for (i = 0; i < design.numDesignVariable; i++) {
if (strcasecmp(design.designVariable[i].name, "Beta") != 0) continue;
if (design.designVariable[i].var->length < 1) {
status = CAPS_RANGEERR;
goto cleanup;
}
fprintf(fp, "Yaw 1 %.15E %.15E %.15E\n", design.designVariable[i].value[0],
design.designVariable[i].lowerBound[0],
design.designVariable[i].upperBound[0]);
break;
}
if (i >= design.numDesignVariable) fprintf(fp, "Yaw 0 0.000000000000000E+00 0.000000000000000E+00 0.00000000000000E+00\n");
for (i = 0; i < design.numDesignVariable; i++) {
if (strcasecmp(design.designVariable[i].name, "NonInertial_Rotation_Rate") != 0) continue;
if (design.designVariable[i].var->length < 3) {
status = CAPS_RANGEERR;
goto cleanup;
}
fprintf(fp, "xrate 1 %.15E %.15E %.15E\n", design.designVariable[i].value[0],
design.designVariable[i].lowerBound[0],
design.designVariable[i].upperBound[0]);
break;
}
if (i >= design.numDesignVariable) fprintf(fp, "xrate 0 0.000000000000000E+00 0.000000000000000E+00 0.00000000000000E+00\n");
for (i = 0; i < design.numDesignVariable; i++) {
if (strcasecmp(design.designVariable[i].name, "NonInertial_Rotation_Rate") != 0) continue;
if (design.designVariable[i].var->length < 3) {
status = CAPS_RANGEERR;
goto cleanup;
}
fprintf(fp, "yrate 1 %.15E %.15E %.15E\n", design.designVariable[i].value[1],
design.designVariable[i].lowerBound[1],
design.designVariable[i].upperBound[1]);
break;
}
if (i >= design.numDesignVariable) fprintf(fp, "yrate 0 0.000000000000000E+00 0.000000000000000E+00 0.00000000000000E+00\n");
for (i = 0; i < design.numDesignVariable; i++) {
if (strcasecmp(design.designVariable[i].name, "NonInertial_Rotation_Rate") != 0) continue;
if (design.designVariable[i].var->length < 3) {
status = CAPS_RANGEERR;
goto cleanup;
}
fprintf(fp, "zrate 1 %.15E %.15E %.15E\n", design.designVariable[i].value[2],
design.designVariable[i].lowerBound[2],
design.designVariable[i].upperBound[2]);
break;
}
if (i >= design.numDesignVariable) fprintf(fp, "zrate 0 0.000000000000000E+00 0.000000000000000E+00 0.00000000000000E+00\n");
}
fprintf(fp, "Number of bodies\n");
fprintf(fp, "%d\n", numBody);
for (i = 0; i < numBody; i++) {
fprintf(fp, "Rigid motion design variables for 'Body %d'\n", i+1);
fprintf(fp, "Var Active Value Lower Bound Upper Bound\n");
fprintf(fp, "RotRate 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "RotFreq 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "RotAmpl 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "RotOrgx 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "RotOrgy 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "RotOrgz 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "RotVecx 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "RotVecy 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "RotVecz 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "TrnRate 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "TrnFreq 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "TrnAmpl 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "TrnVecx 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "TrnVecy 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
fprintf(fp, "TrnVecz 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00\n");
if (fun3dVersion > 12.4) {
// FUN3D version 13.1 - version 12.4 doesn't have option 5
fprintf(fp, "Parameterization Scheme (Massoud=1 Bandaids=2 Sculptor=4 User-Defined=5)\n");
fprintf(fp, "5\n");
} else {
fprintf(fp, "Parameterization Scheme (Massoud=1 Bandaids=2 Sculptor=4)\n");
fprintf(fp, "1\n");
}
fprintf(fp, "Number of shape variables for 'Body %d'\n", i+1);
fprintf(fp, "%d\n", numShapeVar);
fprintf(fp, "Index Active Value Lower Bound Upper Bound\n");
m = 1;
for (j = 0; j < design.numDesignVariable; j++) {
if (design.designVariable[j].type != DesignVariableGeometry) continue;
for (k = 0; k < design.designVariable[j].var->length; k++ ) {
fprintf(fp, "%d 1 %.15E %.15E %.15E\n", m, design.designVariable[j].value[k],
design.designVariable[j].lowerBound[k],
design.designVariable[j].upperBound[k]);
m += 1;
}
}
}
fprintf(fp, "################################################################################\n");
fprintf(fp, "############################### Function Information ###########################\n");
fprintf(fp, "################################################################################\n");
fprintf(fp, "Number of composite functions for design problem statement\n");
fprintf(fp, "%d\n", design.numDesignFunctional);
for (i = 0; i < design.numDesignFunctional; i++) {
fprintf(fp, "################################################################################\n");
fprintf(fp, "Cost function (1) or constraint (2)\n");
fprintf(fp, "1\n");
fprintf(fp, "If constraint, lower and upper bounds\n");
fprintf(fp, "0.0 0.0\n");
fprintf(fp, "Number of components for function %d\n", i+1);
fprintf(fp, "%d\n", design.designFunctional[i].numComponent);
fprintf(fp, "Physical timestep interval where function is defined\n");
fprintf(fp, "1 1\n");
fprintf(fp, "Composite function weight, target, and power\n");
fprintf(fp, "1.0 0.0 1.0\n");
fprintf(fp, "Components of function %d: boundary id (0=all)/name/value/weight/target/power\n", i+1);
for (j = 0; j < design.designFunctional[i].numComponent; j++) {
//fprintf(fp, "0 clcd 0.000000000000000 1.000 10.00000 2.000\n");
status = _writeFunctinoalComponent(aimInfo, fp, &design.designFunctional[i].component[j]);
if (status != CAPS_SUCCESS) goto cleanup;
}
fprintf(fp, "Current value of function %d\n", i+1);
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "Current derivatives of function wrt global design variables\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
if (fun3dVersion > 12.4) {
// FUN3D version 13.1 - version 12.4 doesn't have these available
fprintf(fp, "0.000000000000000\n"); // Yaw
fprintf(fp, "0.000000000000000\n"); // xrate
fprintf(fp, "0.000000000000000\n"); // yrate
fprintf(fp, "0.000000000000000\n"); // zrate
}
for (j = 0; j < numBody; j++) {
fprintf(fp, "Current derivatives of function wrt rigid motion design variables of body %d\n", j+1);
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "0.000000000000000\n");
fprintf(fp, "Current derivatives of function wrt shape design variables of body %d\n", j+1);
for (k = 0; k < design.numDesignVariable; k++) {
if (design.designVariable[k].type != DesignVariableGeometry) continue;
for (m = 0; m < design.designVariable[k].var->length; m++ ) fprintf(fp, "0.000000000000000\n");
}
}
}
status = CAPS_SUCCESS;
cleanup:
if (status != CAPS_SUCCESS)
printf("Error: Premature exit in fun3d_writeRubber status = %d\n",
status);
if (fp != NULL) fclose(fp);
return status;
/* Version 13.1 - template
################################################################################
########################### Design Variable Information ########################
################################################################################
Global design variables (Mach number, AOA, Yaw, Noninertial rates)
Var Active Value Lower Bound Upper Bound
Mach 0 0.800000000000000E+00 0.000000000000000E+00 0.900000000000000E+00
AOA 1 1.000000000000000E+00 0.000000000000000E+00 5.000000000000000E+00
Yaw 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
xrate 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
yrate 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
zrate 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
Number of bodies
2
Rigid motion design variables for 'wing'
Var Active Value Lower Bound Upper Bound
RotRate 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotFreq 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotAmpl 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotOrgx 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotOrgy 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotOrgz 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotVecx 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotVecy 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotVecz 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
TrnRate 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
TrnFreq 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
TrnAmpl 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
TrnVecx 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
TrnVecy 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
TrnVecz 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
Parameterization Scheme (Massoud=1 Bandaids=2 Sculptor=4 User-Defined=5)
1
Number of shape variables for 'wing'
3
Index Active Value Lower Bound Upper Bound
1 1 1.000000000000000E+00 0.000000000000000E+00 2.000000000000000E+00
2 1 1.000000000000000E+00 0.000000000000000E+00 2.000000000000000E+00
3 1 1.000000000000000E+00 0.000000000000000E+00 2.000000000000000E+00
Rigid motion design variables for 'tail'
Var Active Value Lower Bound Upper Bound
RotRate 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotFreq 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotAmpl 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotOrgx 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotOrgy 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotOrgz 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotVecx 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotVecy 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
RotVecz 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
TrnRate 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
TrnFreq 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
TrnAmpl 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
TrnVecx 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
TrnVecy 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
TrnVecz 0 0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
Parameterization Scheme (Massoud=1 Bandaids=2 Sculptor=4 User-Defined=5)
2
Number of shape variables for 'tail'
2
Index Active Value Lower Bound Upper Bound
1 1 2.000000000000000E+00 -1.000000000000000E+00 5.000000000000000E+00
2 1 2.000000000000000E+00 -1.000000000000000E+00 5.000000000000000E+00
################################################################################
############################### Function Information ###########################
################################################################################
Number of composite functions for design problem statement
2
################################################################################
Cost function (1) or constraint (2)
1
If constraint, lower and upper bounds
0.0 0.0
Number of components for function 1
1
Physical timestep interval where function is defined
1 1
Composite function weight, target, and power
1.0 0.0 1.0
Components of function 1: boundary id (0=all)/name/value/weight/target/power
0 cl 0.000000000000000 1.000 10.00000 2.000
Current value of function 1
0.000000000000000
Current derivatives of function wrt global design variables
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
Current derivatives of function wrt rigid motion design variables of body 1
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
Current derivatives of function wrt shape design variables of body 1
0.000000000000000
0.000000000000000
0.000000000000000
Current derivatives of function wrt rigid motion design variables of body 2
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
Current derivatives of function wrt shape design variables of body 2
0.000000000000000
0.000000000000000
################################################################################
Cost function (1) or constraint (2)
2
If constraint, lower and upper bounds
-0.03 -0.01
Number of components for function 2
1
Physical timestep interval where function is defined
1 1
Composite function weight, target, and power
1.0 0.0 1.0
Components of function 2: boundary id (0=all)/name/value/weight/target/power
0 cmy 0.000000000000000 1.000 0.00000 1.000
Current value of function 2
0.000000000000000
Current derivatives of function wrt global design variables
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
Current derivatives of function wrt rigid motion design variables of body 1
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
Current derivatives of function wrt shape design variables of body 1
0.000000000000000
0.000000000000000
0.000000000000000
Current derivatives of function wrt rigid motion design variables of body 2
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
0.000000000000000
Current derivatives of function wrt shape design variables of body 2
0.000000000000000
0.000000000000000
*/
}
// Finds a line in rubber.data that matches header
static int findHeader(const char *header, char **line, size_t *nline, int *iline, FILE *fp)
{
int i;
while (getline(line, nline, fp) != -1) {
(*iline)++;
if (nline == 0) continue;
if ((*line)[0] == '#') continue;
i = 0;
while ((*line)[i] == ' ' && (*line)[i] != '\0') i++;
if (strncasecmp(header, &(*line)[i], strlen(header)) == 0)
break;
}
if (feof(fp)) return CAPS_IOERR;
return CAPS_SUCCESS;
}
// Read objective value and derivatives from FUN3D rubber.data file
// Will not read shape entries unless explicitly told to check if they are needed
int fun3d_readRubber(void *aimInfo,
cfdDesignStruct design,
int checkGeomShape,
double fun3dVersion,
aimMeshRef *meshRef)
{
int status; // Function return status
int i, j, k, ibody; // Indexing
int numShapeVar = 0;
size_t nline;
int iline=0;
char *line=NULL;
char file[] = "rubber.data";
double dfun_dvar = 0;
FILE *fp = NULL;
int numBody;
// Get AIM bodies
numBody = meshRef->nmap;
printf("Reading %s \n", file);
// Open file
fp = aim_fopen(aimInfo, file, "r");
if (fp == NULL) {
AIM_ERROR(aimInfo, "Unable to open file: %s\n", file);
status = CAPS_IOERR;
goto cleanup;
}
for (i = 0; i < design.numDesignFunctional; i++) {
status = findHeader("Current value of function", &line, &nline, &iline, fp);
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
// Get the line with the objective value
status = getline(&line, &nline, fp); iline++;
if (status == -1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
AIM_NOTNULL(line, aimInfo, status);
status = sscanf(line, "%lf", &design.designFunctional[i].value);
if (status != 1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
// skip: Current derivatives of function wrt rigid motion design variables of
status = getline(&line, &nline, fp); iline++;
if (status == -1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
AIM_NOTNULL(line, aimInfo, status);
// read the dFun/dMach
status = getline(&line, &nline, fp); iline++;
if (status == -1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
AIM_NOTNULL(line, aimInfo, status);
for (j = 0; j < design.designFunctional[i].numDesignVariable; j++) {
if (strcasecmp(design.designFunctional[i].dvar[j].name, "Mach") != 0) continue;
status = sscanf(line, "%lf", &design.designFunctional[i].dvar[j].value[0]);
if (status != 1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
break;
}
// read the dFun/dAOA
status = getline(&line, &nline, fp); iline++;
if (status == -1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
AIM_NOTNULL(line, aimInfo, status);
for (j = 0; j < design.numDesignVariable; j++) {
if (strcasecmp(design.designFunctional[i].dvar[j].name, "Alpha") != 0) continue;
status = sscanf(line, "%lf", &design.designFunctional[i].dvar[j].value[0]);
if (status != 1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
break;
}
if (fun3dVersion > 12.4) {
// FUN3D version 13.1 - version 12.4 doesn't have these available
// read the dFun/dBeta
status = getline(&line, &nline, fp); iline++;
if (status == -1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
AIM_NOTNULL(line, aimInfo, status);
for (j = 0; j < design.designFunctional[i].numDesignVariable; j++) {
if (strcasecmp(design.designFunctional[i].dvar[j].name, "Beta") != 0) continue;
status = sscanf(line, "%lf", &design.designFunctional[i].dvar[j].value[0]);
if (status != 1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
break;
}
// read the dFun/dNonInertial_Rotation_Rate[0]
status = getline(&line, &nline, fp); iline++;
if (status == -1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
AIM_NOTNULL(line, aimInfo, status);
for (j = 0; j < design.designFunctional[i].numDesignVariable; j++) {
if (strcasecmp(design.designFunctional[i].dvar[j].name, "NonInertial_Rotation_Rate") != 0) continue;
status = sscanf(line, "%lf", &design.designFunctional[i].dvar[j].value[0]);
if (status != 1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
break;
}
// read the dFun/dNonInertial_Rotation_Rate[1]
status = getline(&line, &nline, fp); iline++;
if (status == -1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
AIM_NOTNULL(line, aimInfo, status);
for (j = 0; j < design.designFunctional[i].numDesignVariable; j++) {
if (strcasecmp(design.designFunctional[i].dvar[j].name, "NonInertial_Rotation_Rate") != 0) continue;
status = sscanf(line, "%lf", &design.designFunctional[i].dvar[j].value[1]);
if (status != 1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
break;
}
// read the dFun/dNonInertial_Rotation_Rate[2]
status = getline(&line, &nline, fp); iline++;
if (status == -1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
AIM_NOTNULL(line, aimInfo, status);
for (j = 0; j < design.designFunctional[i].numDesignVariable; j++) {
if (strcasecmp(design.designFunctional[i].dvar[j].name, "NonInertial_Rotation_Rate") != 0) continue;
status = sscanf(line, "%lf", &design.designFunctional[i].dvar[j].value[2]);
if (status != 1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
break;
}
}
numShapeVar = 0; // Need to re-zero every functional loop
if (checkGeomShape == (int) true) {
// zero out previous derivatives
for (j = 0; j < design.designFunctional[i].numDesignVariable; j++) {
if (design.designFunctional[i].dvar[j].type != DesignVariableGeometry) continue;
numShapeVar++;
for (k = 0; k < design.designVariable[j].var->length; k++ ) {
design.designFunctional[i].dvar[j].value[k] = 0;
}
}
}
// No body information if there are no Geometry derivatives
if (numShapeVar == 0) numBody = 0;
for (ibody = 0; ibody < numBody; ibody++) {
// Rigid motion design variables
status = findHeader("Current derivatives of", &line, &nline, &iline, fp);
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
// Skip reading rigid motion design variables for now
// Read shape design variables
status = findHeader("Current derivatives of", &line, &nline, &iline, fp);
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
for (j = 0; j < design.designFunctional[i].numDesignVariable; j++) {
if (design.designFunctional[i].dvar[j].type != DesignVariableGeometry) continue;
for (k = 0; k < design.designVariable[j].var->length; k++ ) {
// read the dFun/dDesignVar[k]
status = getline(&line, &nline, fp); iline++;
if (status == -1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
AIM_NOTNULL(line, aimInfo, status);
status = sscanf(line, "%lf", &dfun_dvar);
if (status != 1) status = CAPS_IOERR; else status = CAPS_SUCCESS;
AIM_STATUS(aimInfo, status, "rubber.data line %d", iline);
// accumulate derivatives across bodies
design.designFunctional[i].dvar[j].value[k] += dfun_dvar;
}
}
}
}
status = CAPS_SUCCESS;
cleanup:
if (line != NULL) free(line); // Must use free!
if (fp != NULL) fclose(fp);
return status;
}
// Make FUN3D directory structure/tree
int fun3d_makeDirectory(void *aimInfo)
{
int status; // Function return status
char filename[PATH_MAX];
char flow[] = "Flow";
char datafile[] = "datafiles";
char adjoint[] = "Adjoint";
char rubber[] = "Rubberize";
printf("Creating FUN3D directory tree\n");
// Flow
status = aim_mkDir(aimInfo, flow);
AIM_STATUS(aimInfo, status);
// Datafiles
sprintf(filename, "%s/%s", flow, datafile);
status = aim_mkDir(aimInfo, filename);
AIM_STATUS(aimInfo, status);
// Adjoint
status = aim_mkDir(aimInfo, adjoint);
AIM_STATUS(aimInfo, status);
// Rubber
status = aim_mkDir(aimInfo, rubber);
AIM_STATUS(aimInfo, status);
status = CAPS_SUCCESS;
cleanup:
return status;
}
// Morphing input
// First time through and morphing
// - Write bodies and mesh to disc only if mesh is linked a
// - AIM_CP_FIle the meshfile
//
// aim_storeMeshRef(aimInfo, meshRef, MESHEXTENSION);
//aim_storeMeshRef(aimInfo, meshRef, MESHEXTENSION);
//
//aimMeshRef meshRef2;
//aim_initMeshRef(&meshRef2);
//aim_loadMeshRef(aimInfo, &meshRef2);
//aim_freeMeshRef(&meshRef2);
// Logic for selecting/setting mesh pointer if morphing the mesh
int fun3d_morphMeshLogic(void *aimInfo, int storeAllowed, aimMeshRef **meshRef, aimMeshRef *meshRefObj)
{
int status = CAPS_SUCCESS;
AIM_NOTNULL(meshRefObj, aimInfo, status);
if (*meshRef != NULL && storeAllowed == (int) true) { // If we are NOT null lets store the mesh - if allowed
status = aim_storeMeshRef(aimInfo, *meshRef, MESHEXTENSION);
AIM_STATUS(aimInfo, status);
*meshRef = meshRefObj;
// Lets "reload" the meshRef now - A little awkward but.....
status = aim_loadMeshRef(aimInfo, *meshRef);
AIM_STATUS(aimInfo, status);
} else if (*meshRef != NULL && storeAllowed == (int) false) { // If we are NOT null
// Do nothing
} else { // *meshRef == NULL
*meshRef = meshRefObj;
// Lets "load" the meshRef now
status = aim_loadMeshRef(aimInfo, *meshRef);
AIM_STATUS(aimInfo, status);
}
cleanup:
return status;
}
//{
// int status = CAPS_SUCCESS;
//
// AIM_NOTNULL(meshRefObj, aimInfo, status);
//
// if (*meshRef != NULL && storeAllowed == (int) true) { // If we are NOT null lets store the mesh
// status = aim_storeMeshRef(aimInfo, *meshRef, MESHEXTENSION);
// AIM_STATUS(aimInfo, status);
//
// meshRef = NULL;
// }
//
// *meshRef = meshRefObj;
//
// // Lets "reload" the meshRef now - A little awkward but.....
// status = aim_loadMeshRef(aimInfo, *meshRef);
// AIM_STATUS(aimInfo, status);
//
// cleanup:
// return status;
//}
// Map the old surface tessellation on to the new bodies
int fun3d_morpMeshUpdate(void *aimInfo, aimMeshRef *meshRef, int numBody, ego *bodies)
{
int status = CAPS_SUCCESS;
int i=0;
int state, numVert;
ego bodyMapping;
ego body;
ego tess;
// Have the number of bodies changed?
if (meshRef->nmap != numBody) {
printf("The number of original surface meshes does NOT equal the number of current bodies!\n");
AIM_STATUS(aimInfo, CAPS_MISMATCH);
}
// Are the bodies topological equivalent?
for (i = 0; i < meshRef->nmap; i++) {
status = EG_statusTessBody(meshRef->maps[i].tess, &body, &state, &numVert);
AIM_STATUS(aimInfo, status);
status = EG_mapBody(body, bodies[i], "_faceID", &bodyMapping); // "_faceID" - same as in OpenCSM
if (status != EGADS_SUCCESS || bodyMapping != NULL) {
printf("New and old body %d (of %d) do not appear to be topologically equivalent!\n", i+1, meshRef->nmap);
if (bodyMapping != NULL) {
printf("Body mapping isn't NULL!\n");
}
AIM_STATUS(aimInfo, CAPS_MISMATCH);
}
}
// Now lets "tweak" the surface tessellation - map the old tessellation to the new bodies
for (i = 0; i < meshRef->nmap; i++) {
status = EG_copyObject(bodies[i], NULL, &body);
AIM_STATUS(aimInfo, status);
status = EG_mapTessBody(meshRef->maps[i].tess,
body,
&tess);
AIM_STATUS(aimInfo, status);
status = EG_deleteObject(meshRef->maps[i].tess);
meshRef->maps[i].tess = tess;
}
cleanup:
return status;
}
— ryan / detail - Remove old egads file in aim_storeMeshRef. Set AIMptr to NULL when unlinking. — galbramc / detail
- Suppress lint warnings — galbramc / detail
- Fix for last commit — galbramc / detail
- Add aim_storeMeshRef and aim_loadMeshRef — galbramc / detail
- Doc updates — haimes / detail
- Fix typo in doc, and short Python Units Appendix — galbramc / detail
- Minor documentation (and coding) changes for the Python 1-to-1 CAPS interface — haimes / detail
- Document 1-to-1 pyCAPS API. Change pyCAPS setLimits/getLimits to setLimitsSize/getLimitsSize. Add support for limit arrays to pyCAPS. — galbramc / detail
- Addition of a CAPS API function that anly returns a Value Object's size — haimes / detail
- Try again! — haimes / detail
- Only set limits on OpenCSM DESPMTRs — haimes / detail
- Completed the first cut for per element support of limits — haimes / detail
- Adjust Value functions to support per element limits — haimes / detail
- Update bfr instructions — galbramc / detail
- Fix lint error — haimes / detail
- readd multifidelity phasing examples — dongjoon / detail
- Read/write and update setLimits/getLimits for per element limits — haimes / detail
- Skeleton additions for adding per element limits — haimes / detail
- Support for higher precssion xfoil executables. Add BoundaryLayerIntersect meshProp for AFLR4 and AFLR3. — galbramc / detail
- Compile needed aflr43 files — galbramc / detail
- Upgrade to AFLR 10.22.23 — galbramc / detail
- Uprev CAPS — haimes / detail
- Update corasairlite README to indicate hoburg_blackbox.py requies scipy. Remove hoburg_lsqp.py from testing. — galbramc / detail
- delete duplicate file — dongjoon / detail
- Fix sensitivites with AFLR and TRANSP. Fix check for return codes in caps_info/caps_analysisInfo in pyCAPS. — galbramc / detail
- Don't run corsairlite scipy exemples without scipy — galbramc / detail
- Remove unused variable to fix stanalizer — galbramc / detail
- cCAPS example fix — galbramc / detail
- Stanalizer fixes — galbramc / detail
- Fixes for dealing with TRANSP surfaces. Add AFLR3 TRANSP tests. — galbramc / detail
- Turn off wake for all tetgen examples — galbramc / detail
- Fix SU2 to support internal BCs. TetGen does not support internal surfaces. — galbramc / detail
- Add TRANSP_UG3_GBC testing. Don't allow TRANSP_SRC_UG3_GBC for AFLR with CAPS. echo exectables when running tests. — galbramc / detail
- Codify corsairlite phasing example as commandline scripts — galbramc / detail
- Only set signals from the python Main Thread. — galbramc / detail
- Catch import signal ValueError. — galbramc / detail
- CorsairLite doc update — haimes / detail
- Various small cleanups — galbramc / detail
- Fix signal handling in pyCAPS — galbramc / detail
- Small Makefile cleanup — galbramc / detail
- Add intentPhase to corsair capsPhase examples — galbramc / detail
- Upgrade AFLR version check to 10.22.22 libraries. Add more AFLR3 tests. — galbramc / detail
- Update training solution — galbramc / detail
- Fix bug not removing .tessType for Tri EGADS tessellations — galbramc / detail
- Updated training box wing to remove capsIgnore — galbramc / detail
- Cleanup corsair examples a little — galbramc / detail
- Add intentPhrase and history to pyCAPS — galbramc / detail
- Replaced viscous wall bc to inviscid for Wing1 — nitin / detail
- changed viscous wall bc to inviscid for Wing1 — nitin / detail
- delete corsairlite example multifidelity — dongjoon / detail
- Bug fix for cart3d with geometric sensitvities — galbramc / detail
- Add symmetry inputs to cart3d — galbramc / detail
- Updated SU2 AIM for compatibility with the latest (SU2-7.3.1) — nitin / detail
- Protect value index from changes in aimCalcOutput — galbramc / detail
- lint fixes — galbramc / detail
- fix tabs to spasces — dongjoon / detail
- Fix warning — galbramc / detail
- Fix aimTransfer to use surface to volume maps — galbramc / detail
- modify corsair examples to generate pickle — dongjoon / detail
- Lint and memory leak fixes — galbramc / detail
- delete duplicate examples/corsairlite/phase_design directory — dongjoon / detail
- Update multifidelity examples with no hard coded paths and phaseStart — dongjoon / detail
- Update corsairlite examples with multifidelity phasing — dongjoon / detail
- Fix copy/pasta mistake — galbramc / detail
- Fix boundary indexing for aflr3 to mach capsGroup indexing — galbramc / detail
- lint fixes — galbramc / detail
- Fix AFLR NMakefiles — galbramc / detail
- Plug memory leak in aflr3 and run new Symmetry testing with MESH — galbramc / detail
- Reorder AFLR libraries — galbramc / detail
- Upgrade to AFLR 10.22.21 with support for sensitvities on symmetry planes — galbramc / detail
- os independent file paths for corsair examples — galbramc / detail
- Ignore corsairlite for legacy regression tests — galbramc / detail
- Use cdef in fun3dNamelist.pyx to avoid segfault during garbage collection — galbramc / detail
- Forgot a file — galbramc / detail
- embedded python updates — galbramc / detail
- Fix divide by zero — galbramc / detail
- Relax tolerances for cvxopt — galbramc / detail
- Replaced serveCSM with serveESP — nitin / detail
- added figures to html version, consistent with pdf — nitin / detail
- Update corsairlite kulfan models — dongjoon / detail
- Copy hoburg.pl for corsair testing. Ignore corsair in C regressions — galbramc / detail
- Cleanup corsairlite capsPhase examples a little — galbramc / detail
- Run corsairlite qp for MINIMAL testing — galbramc / detail
- Fix examples copy for corsairlite — galbramc / detail
- Enable corsairlite test again. — galbramc / detail
- Don't test corsairlite yet — galbramc / detail
- Defer scipy import error for corsair kulfan datatype — galbramc / detail
- Add corsairlite examples — galbramc / detail
- Add corsairlite — galbramc / detail
- Some dox cleanup — galbramc / detail
- Add caps.phaseNewCSM to pyCAPS. Enalbe use of phaseNewCSM in pyCAPS Problem. — galbramc / detail
- Updated CAPS overview dox, *_dox.cfg, *_header.tex to fix warnings — nitin / detail
- Add caps_phaseNewCSM to the CAPS API — haimes / detail
- Fix bug specifuing Mesh_Sizing on Edges for aflr4 — galbramc / detail
- Update phasing tests. Fix Multiple_Mesh for TetGen. — galbramc / detail
- Make updates fix directory removal under error — haimes / detail
- Cleanup phasing in pyCAPS — galbramc / detail
- Include IDE's parent info in phaseUtil and fix some minor issues — haimes / detail
- Complete phaseUtil — haimes / detail
- Add AnalysisIn derivatives in sens file for tacs and fun3d — galbramc / detail
- Add the phaseUtil app -- still needs filling out — haimes / detail
- Change skeleton AIM so it can be used as part of the ESP IDE tutorial — haimes / detail
- Add mses executables to ESPbfr — galbramc / detail
- Protect FunID read against a corrupt file — haimes / detail
- Revert adding debug in Problem.__init__ — galbramc / detail
- Output file position on Journal read during debugging — haimes / detail
- Guard pyCAPS.Problem.__init__ caps calls with caps_debug — galbramc / detail
- Stanalizer fix — galbramc / detail
- Fix memory leak in Cart3D data transfer — galbramc / detail
- Fix bug in last commit. Cleanup caps_preAnalysiX. Add forgotten Cart3D FSI example. — galbramc / detail
- Put user name and date/time stamp in capsLock — haimes / detail
- fix memory leak in msesAIM — galbramc / detail
- Lint fixes — galbramc / detail
- another scan-build fix — galbramc / detail
- scan-build fixes — galbramc / detail
- Add environment variable to output Journal entries as they process — haimes / detail
- Fix warning — galbramc / detail
- Dedicated function to call aim_UpdateState. Re-formulate phasing/continuation in pyCAPS Problem constructor. Indent AIM error messages. Add Displacement data transfer to Cart3D for FSI. Only allow cals to caps_getDataSet in aimPreAnalysis. Do not allow disk manipulation in aimUpdateState. — galbramc / detail
- Fix childByName when in debug mode — haimes / detail
- Finally the correct Windoze executable — galbramc / detail
- Update avl exec on Linux and Windoze — galbramc / detail
- Fix both the documentation and the code so they are consistent with adding const to the AIM functions Pre and Exec — haimes / detail
- update jfd3AIM to adjust for recent API changes — jfdannen / detail
- Reinstate no intent phrase flag — haimes / detail
- Try that again — galbramc / detail
- Update macOS avl executables without X11 dylib dependency — galbramc / detail
- Don't journal on initPhrase calls in caps_open — haimes / detail
- Revert last commit — haimes / detail
- Turn off journaling of intentPhrase in caps_open — haimes / detail
- lint fixes — galbramc / detail
- So many def files... — galbramc / detail
- Fixes for delaundo — galbramc / detail
- Another forgotten def file — galbramc / detail
- Missed one — galbramc / detail
- aimUpdateState is no longer optional — galbramc / detail
- Forgot def file — galbramc / detail
- Add aimUpdateState to su2 AIM, and fix warnings — galbramc / detail
- Add aimUpdateState to nastran and poinwise AIMs — galbramc / detail
- Add aimUpdateState to hsm, interference, masstran, mystran, and aimUtil.h — galbramc / detail
- Fix writing a Integer Value Object that is NULL — haimes / detail
- Add aimUpdateState to fun3dAIM. Call aim_UpdateState in post analysis during reload. — galbramc / detail
- Fix lint issue on skeletonAIM — haimes / detail
- Fix warnings from last commit — haimes / detail
- Protect against writing NULL double value objects; Update skeleton AIM — haimes / detail
- Fix applying offset to NULL pointer — galbramc / detail
- Update avl reference data. Plug memory leak in egadsTess — galbramc / detail
- Fix aimUpdateState in egadsTess AIM — galbramc / detail
- Don't run mystran_PyTest on Windoze — galbramc / detail
- Forgot def file — galbramc / detail
- Remove on too many lines — galbramc / detail
- Fix warning from last commit — galbramc / detail
- More aimUpdateState updates. Remove some redundant tests — galbramc / detail
- Add aimUpdateState to a number of AIMs. Turn on CLink between Phases. — galbramc / detail
- Misseed one astros in training — galbramc / detail
- Allow aim_relPath to cross Phases — haimes / detail
- Guard againts running mastros test when mastros does not exist — galbramc / detail
- Fixes for calling aimUpdateState in caps_preAnalysis — galbramc / detail
- Plug memory leak — galbramc / detail
- More mses tests. Add aimUpdateStatus to avlAIM. Other small fixes. — galbramc / detail
- Allow for debug mode coming into caps_outputObjects — haimes / detail
- Allow for debug mode coming into caps_outputObjects — haimes / detail
- in pyCAPS.Problem(), use running Caps Problem if it already exists — jfdannen / detail
- Add phasing xfoil tests — galbramc / detail
- Add Phasing test to pyCAPS unit testing. Fix probemName misspelling. — galbramc / detail
- Turn off Analysis links for now — haimes / detail
- Fix the warnings from the last commit — haimes / detail
- First cut at Analysis disk links for new Phases — haimes / detail
- Reduce execution time in legacy xfoil example — galbramc / detail
- Faster geometry construction for ESP_Commit — galbramc / detail
- Add some more timing — galbramc / detail
- Remove incorrect CL derivatives from msesAIM. Run one test per aim for MINIMAL tests. — galbramc / detail
- Fix last commit — haimes / detail
- Prepare the AIM utilities for Analysis directory links — haimes / detail
- Missed one free — galbramc / detail
- lint fixes — galbramc / detail
- Use aimUpdateState in msesAIM. Cache sensitvities in msesAIM. Expose more inputs in msesAIM. — galbramc / detail
- Implement undocumented caps_modifiedDesPmtrs so that the IDE can know which DESPMTRs have been modified by CAPS — haimes / detail
- Some more mses updates and regression script fix — galbramc / detail
- Don't check alpha for TargetCL Cart3D test — galbramc / detail
- Add TargetCL to Cart3D and enable Cart3D 2D mode — galbramc / detail
- Try that again — galbramc / detail
- Fix infinite loop in convert_doubleToString — galbramc / detail
- Fix calling updateState when an AnalysisIn Object has changed — haimes / detail
- Add the AIM function aimUpdateState which will allays be the first function executed in the sequence — haimes / detail
- A few more mses corrections — galbramc / detail
- Adjust mses data — galbramc / detail
- mses updates — galbramc / detail
- Remove caps_resetAnalysis from the API — haimes / detail
- Use curvature weighted point distribution for avl/xfoil/mses — galbramc / detail
- Remove caps_resetAnalysis from pyCAPS — galbramc / detail
- Don't write 'empty' rubberize files — galbramc / detail
- "fix" to fun3dAIM when to write/read shape sensitivities — ryan / detail
- Fix intent phrase sync issue on initialization — haimes / detail
- Add initial history for GeometryIn, Analysis and AnalysisIn Objects — haimes / detail
- Fix journaling so that changing DESPMTR (GeometryIn) dimensioning is handled — haimes / detail
- Remove old caps_open CSM reload option and replace it with the new — haimes / detail
- Fix history addition for reloading CSM and new GeometryIn Value Object — haimes / detail
- Relax tolerance and try to get consistent xfoil results on all machines — galbramc / detail
- Update mses data. — galbramc / detail
- Update xfoil data. Don't set OCS_CONPMTR when journaling — galbramc / detail
- More robust xfoil execution — galbramc / detail
- Update legacy test xfoil data — galbramc / detail
- Adjust tolerances — galbramc / detail
- Add mses OpenMDAO example — galbramc / detail
- Missed some test that needed updated reference data — galbramc / detail
- Use EGADS tessellator for airfoil files — galbramc / detail
- Fix warning clang 13.1.6 warning — galbramc / detail
- Fix full path on CSM filename for oPNewCSM option with caps_open — haimes / detail
- Forgot to close a file — galbramc / detail
- Fix msesAIM sensitivities — galbramc / detail
- Support a directory of CSM/UDC files at init or CSM reload for caps_open; test for all analyses past post for completing a Phase — haimes / detail
- Don't write fun3d Rubberize files when not needed — galbramc / detail
- Don't write out body information to rubber.data for only AnalysisIn sensitvities — galbramc / detail
- Stanalizer fix — galbramc / detail
- Add avl 3.40 min version error message — galbramc / detail
- Remove libquadmath dependency on DARWIN64 — galbramc / detail
- Add avl 3.40 to ESPbfr — galbramc / detail
- Plug one more memory leak — galbramc / detail
- Fix array bound issue in avlmrf — galbramc / detail
- Move variable declarations to top of functions — galbramc / detail
- Fix avl NMakefile. Fix uninitialized data. — galbramc / detail
- Lint and memory leak fixes — galbramc / detail
- aimBackdoor has been removed from the avl AIM — galbramc / detail
- avl fixes — galbramc / detail
- Upgrade to avl 3.41 — galbramc / detail
- Change caps_delete to caps_markForDelete in pyCAPS — galbramc / detail
- Change caps_delete to caps_markForDelete — haimes / detail
- Preserve pyCAPS objects when calling caps_delete. caps_delete and pyCAPS delete will be renamed. — galbramc / detail
- Revert astros example — galbramc / detail
- Fix last scan-build error — haimes / detail
- Add history to geometry objects that are either new inputs or all outputs when reloading a CSM file — haimes / detail
- Fix scan-build complaint — haimes / detail
- lint fixes — galbramc / detail
- Restote attributes and history on geometry objects with a CSM reload — haimes / detail
- Update legacy su2 test — galbramc / detail
- Add some egadsTess NodeBody tests — galbramc / detail
- Fix BC indexing for meshRef — galbramc / detail
- Add history to geometry outs and other minor updates — haimes / detail
- Use enum instead of numerical value for checking stFlag — haimes / detail
- Also return row vector in caps_getValue — galbramc / detail
- Patch up some potential problems with restart/journaling and changing OpenCSM dimensions — haimes / detail
- Add read-only option on caps_open -- not well tested — haimes / detail
- remove jfd3AIM from aim/Makefile — jfdannen / detail
- add hfd3AIM for testing Bounds and DataSets — jfdannen / detail
- Add new caps_delete to pyCAPS — galbramc / detail
- Reconcile addHistory with writeSerialNum — haimes / detail
- Add history to caps_makeValue — haimes / detail
- Upgrade to mystran 13.3a — galbramc / detail
- Take away double CSM build ifdef in caps_open — haimes / detail
- Add CAPS open option to ignore object delete markers; return delete status in caps_info — haimes / detail
- Actually write the serial number in caps_writeSerialNum — haimes / detail
- Update legacy example — galbramc / detail
- lint fix and update astros Design example — galbramc / detail
- Stanalizer fix — galbramc / detail
- Fix warning — galbramc / detail
- Fix memory leaks. Journal caps_setValue(NULL). — galbramc / detail
- Only write sNum to the Problem file if that is all that is needed — haimes / detail
- Minor fixes & move sNum to beginning of problem file — haimes / detail
- Remove Bound directory during deletion and fix up internal Parameter index when there are deletions — haimes / detail
- re-expose su2 variables for aeroelastic cases — nitin / detail
- New phase deletion fleshed out — haimes / detail
- Remove capsLock beforey renmaing a phase on caps_close — galbramc / detail
- Fix logic for tracking pyCPAS ProblemState — galbramc / detail
- Update makefiles to run skeletonAIM example — galbramc / detail
- Fix skeleton AIM — galbramc / detail
- Hold on to and delete User Value Objects at a complete CAPS close; change the meaning of caps_delete (still need to do the deletion at start of a new phase) — haimes / detail
- SU2 AIM updated for SU2-7.3.0, Changed boundary markers from numbers to strings — nitin / detail
- SU2 AIM updated for SU2-7.3.0, Changed boundary markers from numbers to strings — nitin / detail
- Fix mses memory leak — galbramc / detail
- Fix legacy script. Add caps_intentPhrase to pyCAPS. — galbramc / detail
- scan-build fix — galbramc / detail
- Add Cheby_Mode output and sensitvities to msesAIM — galbramc / detail
- lint fixes — galbramc / detail
- Fix warnings — galbramc / detail
- Make relaoding AIMs lazy. Remove unused problem->exec. Enable Journaling/Phasing for aflr3 and fun3d. — galbramc / detail
- Fix caps_size in debug mode for Dynamic Outputs — haimes / detail
- Implementation of new History tracking — haimes / detail
- dox fix — ryan / detail
- lint fixes for aflr4 — galbramc / detail
- Enable phasing and journaling for aflr4AIM — galbramc / detail
- lint fixes — galbramc / detail
- Don't call analsysisInfo with problem object — galbramc / detail
- scan-build fixes — galbramc / detail
- Close ugrid file after reading header — galbramc / detail
- Use correct CAPSLONG in pyCAPS on Windoze — galbramc / detail
- Update caps_jrnlRead with funID — galbramc / detail
- Add funID to caps_jrnlWrite. Fix call to caps_ownerInfo. Fix memory leak in egadsTess. — galbramc / detail
- Update pyCAPS for new history tracking. Fixes in su2. Test Phasing with egads/tetgen/su2. — galbramc / detail
- Move CAPS towards the new history tracking — haimes / detail
- Revert changes in CAPS/src from previous accidental commit — galbramc / detail
- Fix training files from last commit. Remove bodyTessMappingStruct in lieu of .mixed attribute. Fixes for Journaling. Fixes for autoExec when the upstream AIM unputs are dirty. Store mesh on disk for egadsTessAIM to work with Journaling and Phasing. Update tetgenAIM to work with Journaling and Phasing. Add tetgen pyCAPS unit tests. — galbramc / detail
- Remove caps_freeOwner from pyCAPS. Add commented out caps_getHistory and caps_intentPhrase for the future. — galbramc / detail
- Put caps_freeOwner back in the def file — haimes / detail
- remove caps_setOwner from caps.py — jfdannen / detail
- Prepare for history changes — haimes / detail
- Add aim_readBinaryUgridHeader — galbramc / detail
- Remove addHistory and getHistory from pyCAPS — galbramc / detail
- Allow for removing the entire phase at caps_close — haimes / detail
- Don't call caps_delete in pyCAPS for now — galbramc / detail
- Add aim_rmFile — galbramc / detail
- Change pyCAPS caps_triangulate to caps_getTriangles — galbramc / detail
- Add caps_printErrors; change caps_triangulate to caps_getTriangles and other fixes — haimes / detail
- Some dox cleanup for tacsAIM — galbramc / detail
- tacs dox fix — ryan / detail
- fixes for 'Flow' directory switching for fun3dAIM — ryan / detail
- Update flowchart viewing and check for parameter value object uniqueness — haimes / detail
- Track closure of problem object to avoid calling caps_delete. This will leak attributes for now if the problem object is explicitly closed. — galbramc / detail
- Track closure of problem object to avoid calling caps_delete. This will leak attributes for now if the problem object is explicitly closed. — galbramc / detail
- Training fix — galbramc / detail
- Undo accidental change — galbramc / detail
- Some more training fixes — galbramc / detail
- Fix comments in training examples — galbramc / detail
- dox fixes — galbramc / detail
- Require using Design_Variable_Relation for bdf files. — galbramc / detail
- dox fix to clarify symmetry boundary condition requirements for fun3d — ryan / detail
- Disable autoExecution for functions in capsBase when in debug mode — haimes / detail
- Add newline to printing of tuples that are NULL — haimes / detail
- Fix memory leak from last commits — haimes / detail
- Remove debug prints — haimes / detail
- Update outputObjects and add Body and Tess count to AIM info for printObjects — haimes / detail
- Remove the regeneration of FieldIn DataSets during AIM restart — haimes / detail
- Revamp the way postAnalysis gets invoked during recycling — haimes / detail
- Fix jouranling bug — galbramc / detail
- Remove first OCSM build when starting a new phase updating the CSM script; don't write out value objects with the link nullified — haimes / detail
- Add None arguments to outputObjects — galbramc / detail
- Add stream output option to caps_outputObjects — haimes / detail
- Add outputObjects to capsProblem — galbramc / detail
- Fix bug found by Stanalyzer output — haimes / detail
- First cut at DongJoon's CAPS flowchart (debugging) — haimes / detail
- Fix caps_rmWild to support spaces in path — haimes / detail
- Try to get by Cart3D tests again — haimes / detail
- Make sure there is enough room for commands with quoted paths — haimes / detail
- Allow for spaces in Problem paths — haimes / detail
- Documentation updates and raise an error when caps_open is given a path with an included space — haimes / detail
- Fix last commit — galbramc / detail
- Try to plug unitialized values from last commit — haimes / detail
- Implement a debug mode that does not journal or autoExec/autoFill — haimes / detail
- Update .sens file for tacsAIM and fun3dAIM. Add Phasing test for avl. — galbramc / detail
- add functional to fun3d options (undocumented) — ryan / detail
- Fix writeTecplot — galbramc / detail
- Fix for updated pyCAPS constructors — galbramc / detail
- Fix last commit — galbramc / detail
- Another try at fixing the memory leak. Update pyCAPS for the new caps_triangulate. Add caps_phaseStatus to pyCAPS. — galbramc / detail
- Lets try that again — galbramc / detail
- Another memory leak fix — galbramc / detail
- Update caps.def — galbramc / detail
- Update aimTransferUtilTest to test caps_ functions — galbramc / detail
- Fix memory leaks from last commit — haimes / detail
- Add mesh information to the data returned from caps_triangulate — haimes / detail
- Adjust the calling sequence of caps_open to be consistent with the documentation — haimes / detail
- Fix deriv bug in caps_writeValue — galbramc / detail
- Fix memory corruption from cut & paste — haimes / detail
- Add file handling functions to the def file — haimes / detail
- Fix SegFault in caps_open CSM reload — haimes / detail
- Regression test fixes — galbramc / detail
- Update legacy test for PointwiseV18.5R1 — galbramc / detail
- Try to fix Stanalyzer error from last commit — haimes / detail
- Some corrections to Phase start with CSM reload — haimes / detail
- Try again to fix Stanalyzer (scan-build) errors — haimes / detail
- Try to fix Stanalyzer (scan-build) errors — haimes / detail
- Implementation of new phase startup with CSM script reload -- needs more tessting — haimes / detail
- Suppress lint — galbramc / detail
- Ignore zero lenth units string in caps_makeValue — galbramc / detail
- Fix warning and relax tolerance — galbramc / detail
- Fix for caps_getDeriv. Lots of updates to msesAIM — galbramc / detail
- Fix for caps_hasDeriv — galbramc / detail
- Allow pyCAPS.Problem construction with a capsObj — galbramc / detail
- Add missing reference quanteties — galbramc / detail
- Updated legacy 'truth' avl values — galbramc / detail
- Upgrade pointwimse AIM to support Pointwise 18.5. Rotate airfoils for astros. Add error checking for capsReference quantities in avl. — galbramc / detail
- add stl2tess to Slugs/src — jfdannen / detail
- Fix for last commit — galbramc / detail
- Add more checks when reading sens file — galbramc / detail
- Update the copyright year to 2022 — haimes / detail
- Add SensFile reader to fun3dAIM — galbramc / detail
- Fix memory leak — galbramc / detail
- Fix memory leaks — galbramc / detail
- Stanilizer fixes — galbramc / detail
- Turn on mses unit test again — galbramc / detail
- Fix warning and NMakefile — galbramc / detail
- Fixes for last commit. Dissable mses test until we get new executables. — galbramc / detail
- MSES seems to be working with sensitvities. Many other small fixes. — galbramc / detail
- Fix relative path for geometry.view and analysis.view functions — galbramc / detail
- Fix TACS test — galbramc / detail
- Fix TACS sensitivity bug — galbramc / detail
- First cut at MSES IO functions — haimes / detail
- outLevel fixes — galbramc / detail
- mses, xfoil and tacs fixes — galbramc / detail
- Added initial msesAIM. Very much work in progress — galbramc / detail
- Update awave error message — galbramc / detail
- Lint fix — galbramc / detail
- Dynamic Web Server library cleanup — haimes / detail
- Revert back to testing just one wing with cart3d — galbramc / detail
- Skiop inconsistency — galbramc / detail
- Tighter tolerance — galbramc / detail
- Enable multi-body for cart3d — galbramc / detail
- Changes due to WV server library going dynamic — haimes / detail
- Update getDeriv for GeometryOut for fattened Jacobian — galbramc / detail
- Allow for passing a user pointer into browserMessage -- breaks compatibility! — haimes / detail
- Fix sanitizer — galbramc / detail
- doc fix — galbramc / detail
- Warning fix — galbramc / detail
- lint fixes — galbramc / detail
- Forgot Windoze NMake — galbramc / detail
- Add TACS AIM — galbramc / detail
- Update pyCAPS examples to use caps_system call — galbramc / detail
- Cart3D fixes. Remove os.chdir from doc. Add some Analysis.system calls. — galbramc / detail
- Relax tolerances and skip openmdao when not available — galbramc / detail
- More Cart3D fixes — galbramc / detail
- Suppress ocsmBuild for sensitvities (to avoid confusion with an actual build). Fix memory leak in xddm. — galbramc / detail
- Fix uninitialized data — galbramc / detail
- Cart3D fixes — galbramc / detail
- More xddm cleanup — galbramc / detail
- xddm fix — galbramc / detail
- scan-build fixes — galbramc / detail
- Lint fixes — galbramc / detail
- Minor cleanup of xddm — galbramc / detail
- Tweak cart makefile — galbramc / detail
- Update fun3d OpenMDAO example with dynamic outputs — galbramc / detail
- Warning fix — galbramc / detail
- Fix warning and properly suppress cart test when cart is not present — galbramc / detail
- Update training example — galbramc / detail
- Add auto execution for AnalysisDynO. Update Fun3D with AnalysisDynO. Add geometric sensitivties to Cart3D. Allow Cart3D trix file to write multiple bodies. Add Cart3D_OpenMDAO examples. Other smaller cleanup. — galbramc / detail
- Remove AFLR3 .tmp.b8.ugrid file — galbramc / detail
- Surpress delete message (for wildcards that don't exist) on Windows — haimes / detail
- Fix Windows Warning — haimes / detail
- First complete implementation of Analysis Dynamic Outputs — haimes / detail
- Warning fix — galbramc / detail
- Add wildcards to aim_rmDir — galbramc / detail
- Initialize Dynamic Outs for Restart — haimes / detail
- Begin the implementation of Analysis Dynamic Outputs — haimes / detail
- Windoze fix — galbramc / detail
- Fix last commit — galbramc / detail
- Add aim_rmDir and update doc — galbramc / detail
- lint fix — galbramc / detail
- Fix for reading fun3d .forces with Design_Functional — galbramc / detail
- Fix last commit — galbramc / detail
- Lint fixes — galbramc / detail
- Fix copy/pasta mistake — galbramc / detail
- Add interferenceTest to regressoin testing — galbramc / detail
- Minor corrections to interfaceAIM — haimes / detail
- scan-build fix and dox fix — galbramc / detail
- First cut at the Interference AIM and fix for instance number — haimes / detail
- Fix AIM_ERROR that was just supposed to be printf — galbramc / detail
- scan-build fixes — galbramc / detail
- Missed a file — galbramc / detail
- Remove static array size for fun3d Design_Functional output. Return list of list for matrix varaibles. — galbramc / detail
- Remove fun3d redundant sensitivity calculations — galbramc / detail
- Fix some typos — galbramc / detail
- Fix bug in limits check in caps_setValue — galbramc / detail
- Forgot a file — galbramc / detail
- Fixes to fun3d design — galbramc / detail
- Another warning fix — galbramc / detail
- Fix warning — galbramc / detail
- Forgot a file — galbramc / detail
- Re-design fun3d design. — galbramc / detail
- fixes for the previous fixes — ryan / detail
- fix for fun objectives/functionals — ryan / detail
- Fix for cart bc — ryan / detail
- Lint fix — galbramc / detail
- Fix vlmControl memory leak — galbramc / detail
- Make avl smarter about when geometry file needs to be written. — galbramc / detail
- UpRev to 1.21 — haimes / detail
- Fix documentation links — galbramc / detail
- another dox fix — ryan / detail
- minor dox fix last one — ryan / detail
- minor dox fix — ryan / detail
- minor dox fix — ryan / detail
- Clear aim_setSensivity flags in caps_build — galbramc / detail
- Remove spurious Info printf and make sure we are between pre and post in caps_system — haimes / detail
- Document AIM execution modes — haimes / detail
- Don't use packaging module — galbramc / detail
- Fix last commit — galbramc / detail
- Try multiple times to get pointwise license in C example — galbramc / detail
- Check OpenMDAO version in example — galbramc / detail
- Add caps_system to pyCAPS — galbramc / detail
- Add caps_system and add relative path to aim_system — haimes / detail
- Upgrade to SU2 7.2.0. Minor avl fixes. — galbramc / detail
- Try again and again for pointwise license — galbramc / detail
- Adjust regression script — galbramc / detail
- Suppress lint warnings — galbramc / detail
- Fix warning — galbramc / detail
- Cleanup hasDeriv/getDeriv and add derivatives outputs to avlAIM — galbramc / detail
- Update the documentation and make the AIM file function naming consistent — haimes / detail
- Add caps_journalState to the API — haimes / detail
- Lint fix — galbramc / detail
- Fix warning — galbramc / detail
- Forgot the actual journal test — galbramc / detail
- First test of journaling. Works with autoExect, manual exec needs work. — galbramc / detail
- Replace verbosity with outLevel — galbramc / detail
- Use environment variable to set outLevel=0 for CAPS training (not documented). — galbramc / detail
- Add awave cCAPS example. Cleanup avl AutoSpan test. Return CAPS_EXECERR error on system call failure. — galbramc / detail
- Comment out matplotlib import — galbramc / detail
- fund3dAIM fixes — galbramc / detail
- Add enum for caps_open flag — haimes / detail
- Plug memory leak — galbramc / detail
- Add M1 libraries to BFR tarball and adjust call to calcOutput for pointers that have not been used — haimes / detail
- Remove one little space — galbramc / detail
- Upgrade to AFLR 10.17.5 — galbramc / detail
- Add auto-execution error message — galbramc / detail
- Call postAnalysis on any auto-executed AIMs during journal reads — haimes / detail
- fun3DAIM fixes — galbramc / detail
- Add caps_getTessels to the API -- gives access to the analysis' tessellation objects — haimes / detail
- Fix data transfer for legacy scripts — galbramc / detail
- Remove capsLock in caps_close — galbramc / detail
- Fix warnings — galbramc / detail
- Lazier auto-execution. Enable auto-execution for data transfer. — galbramc / detail
- Mesh Writer Doc updates — haimes / detail
- Stanalizer fix for fclose. No idea why lint started complaining about it\!\?\!\?\! — galbramc / detail
- Missed closing a file — galbramc / detail
- Fix uninitialized data — galbramc / detail
- Fix array out-of-bound — galbramc / detail
- Fix memory leaks and return code for tetgen — galbramc / detail
- One more warning fix — galbramc / detail
- A sphere is still not a sphere — galbramc / detail
- Fix warning — galbramc / detail
- Fix Windoze build — galbramc / detail
- Lint fixes — galbramc / detail
- Remove duplicated CFD meshes on disk. Lots of refactoring... — galbramc / detail
- fixed uninitialized variable in Slugs — jfdannen / detail
- First cut at documenting mesh writers — haimes / detail
- fix addressing bug in udpWarp; initial implementation of timVspSetup — jfdannen / detail
- convert backslashes to forward slashes in filenames in udpVsp3 because anglescipt expects forward slashes — jfdannen / detail
- properly rename vsp3 verification test cases — jfdannen / detail
- ATTRRECYCLE forces UDPRIM to not be recycled; fix printing of SELECT with attrValu a number; update udpVsp3 to automatically run vsp; add data/vsp3 test cases; add propInteg*a test cases; use _plugsIgnore on Faces that should be ignored during cloud point reclassifications in Plugs; add udpWarp; add ablate0* test cases — jfdannen / detail
- modify ocsmPrintBrep to show list Edges as degenerate rather than skipping them; add SPECIAL printCPs command to print the control points associated with all Nurbs in the Body on the top of the stack; add first version of udpVsp3 — jfdannen / detail
- first version of udpVspComp — jfdannen / detail
- fix bug that did not retain Edge attributes during an ELEVATE operation — jfdannen / detail
- add mincp argument to udpNuscale and convertToBSplines functions; add ablate* test cases, including using Plugs; extend Plugs to be able to use DIMENSIONed DESPMTRs; fix bug in velocityOfEdge for Edges with dots that have changing tranges — jfdannen / detail
- temporarily remove vspFuse* test cases — jfdannen / detail
- analytic sensitivities for sketches; update .gsen and .tsen files; move sketch13* test cases to designY* — jfdannen / detail
- start implementing analytic sensitivities for Sketches; add sketch13* test cases — jfdannen / detail
- initial, very early, preliminary version of udpVspFuse and associated test cases — jfdannen / detail
- fix error in serveESP.mak in previous commit — jfdannen / detail
- fix error in serveESP.mak; fix debug code error for windoze — jfdannen / detail
- change the SUBTRACTion of two co-planar SheetBodys such that if the Loop associated with the second Body does not cut a clean hole in the first Body, revert to the (default) scribing behavior for SheetBodys, that is scribe the first Body with the Edges from the second Body; update the documentation for SUBTRACT; add scribe11* test cases; fix occasional bug associated with analytical sensitivities when DUMPing a .sens file from with .csm script — jfdannen / detail
- add support for BLENDs with .C1side Attributes; add blend23* test cases; change serveESP.mak so that it does not error if PYTHONINC is not set — jfdannen / detail
- uprev to v1.24 (ESP.html, ESP-localhost.html, ESP-help.html, OpenCSM.h, ocsm.rc) — jfdannen / detail
- added ability to double-click on python error to open pyscript editor at the correct line — jfdannen / detail
- update various testing scripts — jfdannen / detail
- add udfLinalg and linalg1 test case; add sketch12* test cases — jfdannen / detail
- another update to Makefile.LINUX64 — jfdannen / detail
- update Makefile.LINUX64 to execute full test suite — jfdannen / detail
- fix warnings in previous commit — jfdannen / detail
- add ocsmTraceAttrs, ocsmTraceStors, ocsmGetFiletree, and ocsmShowTblOfContents; add ability to trace Attributes, Storges, the FileTree, and the provided representations in the .csm editor; limit number of files in File menu in ESP so that it does not overflow the display; add SPECIAL provides statement to work with ocsmShowTblOfContents — jfdannen / detail
- fix bug that did not properly decrement the pattern counter for ENDIF statements after a PATBREAK was executed; fix bug that returned error after SELECTing a degenerate Edge — jfdannen / detail
- take shortcut when creating tessellation sensitivities for Faces that do not have Edges that are the result of Boolean operations; update .tsen files for both 7.6.0 and 7.7.0 — jfdannen / detail
- fix typo in text string in serveESP — jfdannen / detail
- fix warning in previous commit — jfdannen / detail
- fix bug that copied Csystems into a UDPRIM; add udfMechanism and mechanism* test cases — jfdannen / detail
- add udfDeform to change BSpline control points associated with Faces (and Edges and Nodes) in a Body; add deform* test cases; modify some verification data to account for differences between 7.6.0 and 7.7.0 on all operating systems — jfdannen / detail
- remove more clang warnings — jfdannen / detail
- remove clang warnings — jfdannen / detail
- remove GLOVES from ESP menu (for now) — jfdannen / detail
- update data/capsExamples/verify_7.7.0 files; use EG_copyObject since EGADS now allows the copying of PCurves; fix typos in testScript.txt; updates to avoid warnings in latest version of clang — jfdannen / detail
- allow cases with Edge-only tessellations to work; add edgeGrid* test cases; update 7.7.0 verification data for imprint5 (should fail); add PLOT_DISPLACE to plot displaced Edges based upon tessellation sensitivities — jfdannen / detail
- fix recently-added bug associated with FD tessellation sensitivities for NodeBodys — jfdannen / detail
- create verification data for OCC 7.7.0; make sure EVALUATE returns dot=0 — jfdannen / detail
- compute tessellatiopn sensitivities correctly for a NodeBody; set and report sensitivity range properly when looking at only one component of tessellation sensitivities; add -forceFDs command line option to force finite difference sensitivities in serveESP — jfdannen / detail
- protect against stanalyzer bug — jfdannen / detail
- further improvements to flends; add flend10* test cases; fix memory leak when udfOffset encounters an error — jfdannen / detail
- add code to protect for UDFs that have references to its input Model; add (hidden) option to create timingReport.txt file; improve flends; add flend9* test cases — jfdannen / detail
- update flend8* test cases and their verification data — jfdannen / detail
- fix lint error in udfMatchBodys; re-add 7.4.1 verification data for flend8* test cases — jfdannen / detail
- change flend fits to be better in some cases; track down memory leaks — jfdannen / detail
- fix problem erroneously flagged by lint in udpOffset; update errors reported by udfFlend; fix bug where wrong UDP storage was used in udfOffset (which caused problems when udpOffset was called more than once); remove SPECIAL test of EG_otherCurve; document .multiNode use in RULE command; fix bug where UDP storage is incorrectly cleared for an embedded UDP (in udpCsm); fix bug in udfFlend that sometimes did not correctly reverse one of the Loops; fix memory leak in EVALUATE EDGEKT, EDGECP, FACEUKT, FACEVKT, and FACECP when a signal is raised — jfdannen / detail
- fix compiler warning in latest commit — jfdannen / detail
- account for fact that Py_SetPythonHome was deprecated in Python 3.11; update udfOffset so that it can generate offsets on SolidBodys (for FLENDs); add offset(I-R)* test cases; use zebra stripe coloring for maximum curvature in ESP (displayType=4); update convertToBsplines to reuse Pcurves whenever possible; add udpBspline and bspline* test cases — jfdannen / detail
- improve printing of Pcurves in ocsmPrintEgo; improve marking of Faces with _body and _brch Attributes when returned from a UDF; add PRINT_MAPPING_INFO define to OpenCSM; fix bug that did not account for Node and Edge sensitivities when report sensitivity range in serveESP; fix bug that occasionally did not properly compute Node tessellation sensitivities — jfdannen / detail
- add EVALUATE EDGEKT, EVALUATE EDGECP, EVALUATE FACEUKT, EVALUATE FACEVKT, and EVALUATE FACECP; add evaluate3* test cases; add multiRegions* test cases; add SELECT FLIP to flip the order of rntities in at-sellist — jfdannen / detail
- add copyAttr=0 argument to RULE and BLEND to copy Edge Attributes in xsects onto RULE/BLEND Edges; add blend29 and rule29 test cases — jfdannen / detail
- improve test for matching Nodes in udfMatchBodys; adjust matchBodys5 test case to check at-at-parameters — jfdannen / detail
- add arcLengths to ocsmPrintEgo; fix bug in udfMatchBodys when tol was large — jfdannen / detail
- modify udfMatchBodys to transfer an Attribute from one Body to the other when the Nodes, Edges, or Faces match; add matchBody5 test case — jfdannen / detail
- fix bug associated with UDP/UDF outputs that change shape — jfdannen / detail
- remove stanalyzer false positive by disabling checks for one loop in udfTester1.c — jfdannen / detail
- attempt to fix stanalizer error in udfTester1.c — jfdannen / detail
- allow at-at-parameters from a UDP/UDF to have velocities; split udpTest into udfTester1 (to demonstrate matrix outputs from a UDP/UDF) and udpTester2 (to demonstrate output velocities from a UDP/UDF); adjust Makefiles and associated test cases — jfdannen / detail
- add test.so to Makefiles; add diagnostic printouts when a Face does not tessellate; make sure all UDP/UDFs return output values to the numUdp instance — jfdannen / detail
- allow number of rows and columns to be accessible in UDPs; allow at-at-parameters from a UDP/UDF to be vectors or matricies; add udp_error1 to udp_error9 as possible argument to CATBEG statement; fix bug that did not restore at-at-parameters when a UDP/UDF was recycled; refactor way UDP/UDF arguments are handled — jfdannen / detail
- update header files to allow use of C++ main program; add simpleCSM.cpp and modify Makefile.DARWIN64 for testing — jfdannen / detail
- change udfSlices to skip a slice if OpenCASCADE fails (rather than return an eror); add SET statement to udpWaffle; add waffleB1 and waffleB2 test cases; fix bug in plotting of normals in serveESP and serveCSM; add PRINT_RULE_KNOTS to print number of knots in BSPLINEs entering a RULE or BLEND; allow -ATTRREALSENS to indicate a UDPRIM parameter that is intended to signal that Parameter is used within an included file; add waffleB3 test case to demonstrate this; add waffleB3.jrnl to demonstrate generation of .sens file for every DESPMTR without rebuilds — jfdannen / detail
- update copyright notices — jfdannen / detail
- remove training/data/session10/version99/* — jfdannen / detail
- uprev to v1.23 (ESP.html, ESP-localhost.html, ESP-help.html, OpenCSM.h, ocsm.rc) — jfdannen / detail
- put 1 second delay when opening a pyscript to make sure that the browser is ready to display the pyscript in the editor; do not change status of ESP if an error was found while executing a pyscript; update session10 training files to be consistent with new method for creating a large, multi-component, multi-discipline model; update Makefile.DARWIN64; update ESP_QuickReference; update testScript.txt — jfdannen / detail
- write and test viewSimplySupport for transport test case — jfdannen / detail
- more updates to training/session10 and CAPS/training/python — jfdannen / detail
- more updates to transport training files — jfdannen / detail
- update error handling in flapz.udc; first attempt at python files for new transport for CAPS training — jfdannen / detail
- account for forward- and backward-slashes when opening a .udc — jfdannen / detail
- update ereped6a and project verification data again; fix recently-added bug that causes a memory fault for some non-manifold Edges — jfdannen / detail
- add Trace button in .csm editor to trace all top-level Parameters; reorganize session10 files to make it easier to build large, multi-component, multi-view models; update ereped6a, hollowC6, hollowC7, hollowCA, hollowCB, and project 3 verification data on 7.6.0 (because of issues highlighted by Xcode 14 on M1); update ereped6a and project3 verification data on 7.4.1 (because of issues highlighted by Xcode 14 on M1); add description of -dxdd flag to ESP-help — jfdannen / detail
- update testScript.txt; fix possible buffer overflow in SPECIAL command — jfdannen / detail
- update verification data for clearance1 and clerance4 to allow for slight differenes due to chaotic behavior of the EGADS tessellator — jfdannen / detail
- convert all (deprecated) sprintf calls to snprintf — jfdannen / detail
- update Verification.sh to use serveESP — jfdannen / detail
- fix bug where result of SPECIAL/clearance was not recycled — jfdannen / detail
- update .tsen files for designG5 and designG6 — jfdannen / detail
- remove suppressions of sensitivity checks on designH2, designJ1c, designJ1d, and designJ5; add suppressions of sensitivity checks to designG5 and designG6 (for rounded tips); fix valgrind error in sensitivities in udpWaffle — jfdannen / detail
- fix some compiler warnings in most recent commit — jfdannen / detail
- add ocsmClearance; add clearance* test cases — jfdannen / detail
- fix bug in serveESP that did not properly update the build status message after File->Edit->Save; implement analytic sensitivities in udpWaffle; add designX* test cases; make sure userPointer gets reset after perturbation is removed — jfdannen / detail
- update designV1,gsen for 7.4 — jfdannen / detail
- add ocsmAdjoint and testOcsmAdjoint (in serveESP); allow timPlotter to have two y-axes; add plotter3.py test case — jfdannen / detail
- update adjoint test to remove (incorrect) compiler warning — jfdannen / detail
- remove data/ide (because it is redundant with data/tutorial6); eliminate automatic build when entering CAPS mode (depend on the lazy evaluation in CAPS); enable sensitivity calculations for scribes and trims; add designW* test cases; fix bug that put wrong _edgeID on scribed Edges; update attrScribe, scribeWing, and scribedSphere test cases; create splitEdges.udc; add splitEdges* test cases — jfdannen / detail
- remember name of Pyscript file for next Tool->Pyscript; clean up ESP messages after builds; remove code in esp.timSetCaps that removed the _finalize method; fix memory problem in timViewer for very long scene-graph meta-data buffers; reset magic number to zero to catch cases when a MODL is tried to be used after ocsmFree; modify IMPORT so that it properly marks NODE_BODYs; force tessellation if needed in timViewer; fix bug in ocsmLoadFromEgads that did not properly initialize the .ileft and .irite Branches; remove underscore attributes in .egads files in ocsmLoadFromEgads; force python garbage collection at end of each pyscript execution; add interactive testScript — jfdannen / detail
- add PLOT_TESSSENS and PLOT_TEMPCOMPS flags to help in debugging tessellation sensitivities; remove tessellation velocity calculation shortcut to make Edge and Face tessellation velocities consistent; refactor signalError() and signalError2(); allow plotTypes =7 for x-component, =8 for y-component, =9 for z-component of sensitivity — jfdannen / detail
- clarify description of SELECT x -1 ibody1 — jfdannen / detail
- update to account for latest EGADS fix to EG_generalBoolean — jfdannen / detail
- add ocsmRegBcstCB to ocsm.def — jfdannen / detail
- update Building button to show progress of build in ESP; fix memory leak when ELEVATE command fails (like it often does in the combine.udc); extend SELECT command to SELECT all Faces/Edges/Nodes in current Body that match a Face in another Body; add SELECT NOT to SELECT the Faces/Edges/Nodes not selected and vice versa; fix bug associated with determining if an Edge is a subset of another; update to account for change in EG_isEquivalent; fix bug that did not copy attributes from an Edge in a WireBody that was INTERSECTed with a SolidBody to the new Edge; add PRINT_LAST_EGO compile-time flag to print the last ego after every step in an ocsmBuild; fix bug in sensCSM when trying to remove .csm or .cpc extension from the casename when it did not exist; extend SELECT command to SELECT all Faces/Edges/Nodes in current Body that are within another Body — jfdannen / detail
- fix DUMP x.sens for degenerate Edges; add combine.udc so that old .csm scripts that used the (now deprecated) COMBINE command still work; add combine* test cases; add makeErep journal entry so that ereped can be tested; modify at-itype, at-nface, and at-nedge if there is an erep; add POWLE and POWTE arguments to udfDroop; add new droop* test cases; add udfNaca6mc to warp the input thickness distribution with the sum of multiple NACA 6-series meanlines; add naca6mc* test cases — jfdannen / detail
- protect against string overflows in strncpy and strncat; fix mesgCallbackFromOpenCSM so that it does not try to broadcast text when in batch mode; initial version of udpNaca6mc — jfdannen / detail
- Remove dependencies from file copies — haimes / detail
- clean up usage of include files; update dependencies in Makefile and NMakefile — jfdannen / detail
- remove pyscript from lint in serveESP.make — jfdannen / detail
- update serveCSM.make to fix stanilizer error for pyscript — jfdannen / detail
- another attempt to move building of pyscript from Makefile to serveESP.make — jfdannen / detail
- move building of pyscript from Makefile to serveESP.make — jfdannen / detail
- fix recently added bug in ereped that only allowed 9 colors; remove timHold from viewBodys.py; add batch flag to ESP structure; add assert command in browserToServer; add method of verifying ereped and plugs if running from journal and in -batch mode; next versions of udfDroop2 and udfDroop3; migrate testing in Makefile.DARWIN64 and Makefile.LINUX64 from serveCSM to serveESP; fix bug in esp.SetCaps() in pyESP — jfdannen / detail
- next version of udfDroop2; first version of udfDroop3 — jfdannen / detail
- next (still incomplete) version of udfDroop2 — jfdannen / detail
- initial version of udfDroop2 — jfdannen / detail
- fix test_pyOCSM to account for updated MESSAGE statement — jfdannen / detail
- extend MESSAGE to optionally write to a file; modify message test case; update ESP-help and ESP_QuickReference — jfdannen / detail
- fix memory leak when a UDF returns an error; remove extra prints when udfFlend or udfOffset detect an error; update sanitize targets in Makefile.LINUX — jfdannen / detail
- allow OFFSET to function properly when the number of Edges in the offset is fewer than the original Body; fix escape-close-parenthesis in ESP_QuickReference; add ability to create periodic SPLINE in sketcher by using SSLOPE(0); add sslope6* test cases — jfdannen / detail
- add assert in udfOffset to eliminate warnings on gcc — jfdannen / detail
- fix bug that caused ereped to not work for a named Body; fix bug that added bar at end of file that was being editted in ESP; extend ereped so that it can be applied if there are multiple Bodys on the stack; add ereped8 test case; fix ESP hint associated with ELEVATE command; fix bug when SELECT EGDE with a bounding box was applied to a Body with degenerate Edges; add extractBodys test case; fix array bounds error in udpEqn2body; fix bug in ereped initializations for a single Body — jfdannen / detail
- remove use of _scaleuv Attribute — jfdannen / detail
- allow very long message to be sent from browser to server; add setCsmFile instead of setScmFileBeg/Mid/End; if error occurs when processing a timMesg, put the tim back into READY mode; post message when erep is successfully generated; implement udpEqn2body for SheetBodys; update frustrum3 test case; use __usedBodys__ attribute when computing velocity of Faces or Edges for RULE and BLEND; fix bug in sensCSM that did not reset maximum errors for Bodys when in -tess mode; fix big that did not copy .hasdots during RESTORE . (dot) — jfdannen / detail
- update Makefile.LINUX64 — jfdannen / detail
- add udfDumpPmtrs and associated test case; implement RESTORE .. (dot dot) to duplicate all Bodys (and Mark) back to the Mark and RESTORE ... (dot dot dot) to duplicate entire stack; add restore3 test case; allow UDF to not return a Body or Bodys; update udfOffset so that it can handle concave corners (but not case where Edges disappear) — jfdannen / detail
- temporarily remove offset9* test cases — jfdannen / detail
- update udfOffset for negative distance — jfdannen / detail
- fix hint associated with JOIN; change JOIN so that it can make non-manifold WireBodys; modify numWireBody* test cases; create ELEVATE command, which only elevates WireBody to SheetBody and SheetBody to SolidBody; remove COMBINE command and instruct user to use JOIN and ELEVATE instead; update UNION and JOIN such that if toMark is set but the operation fails, the stack is left unaltered; add unionSolids* test cases; fix typos in ESP-help (and OpenCSM.h) — jfdannen / detail
- add (unneeded) initializations in udfOffset to resolve incorrect lint complaints — jfdannen / detail
- implement udpEqn2body for WireBodys; modify inflatedBody2b to use the replicate.udc; implement udfOffset; create offset* test cases; improve error handling associated with SELECT SORT; modify flend5* test cases to use udfOffset — jfdannen / detail
- uprev to v1.22 — jfdannen / detail
- fix bug that did not update at-parameters for REORDER command; fix bug that changed the input Body to REORDER; fix sensitivity bug whan a RULE/BLEND xsect is RESTOREd after being used — jfdannen / detail
- initialize *info in ocsmBodyDetails; return sensible error message when a SET is applied to a CONPMTR, CFGPMTR, or DESPMTR — jfdannen / detail
- update duct7.vfy files — jfdannen / detail
- return stub.py to expected state at beginning of tutorial6 — jfdannen / detail
- add wingBEM2 test case; add duct7 test case; add replicate.udc and ereped6* and ereped7 test cases; add sharpFin test case; typo fix in documentation — jfdannen / detail
- protect for degenerate Edges in sensCSM; fix ESP bug that dropped user out of CapsMode if a non-existant pyscript is attempted; update ESP_QuickReference — jfdannen / detail
- update compare1b.vfy — jfdannen / detail
- fix bug in computing tessellation sensitivities for a NodeBody — jfdannen / detail
- try invEvaluateGuess for very hard cases in udfCompare; update compare1b test case — jfdannen / detail
- fix bug in IDE that did not properly journal updates to the intent phrase — jfdannen / detail
- second cut at tutorial6 write-up — jfdannen / detail
- more documentation updates — jfdannen / detail
- remove erroneous non-manifold warning associated with NodeBodys — jfdannen / detail
- fix bug when visualizing new-style quads and .mixed=NULL; do not process _makeQuads on a Face if the Body has a _makeQuads Attribute — jfdannen / detail
- fix bug in ESP.js that did not properly clear the display when velocities were cleared — jfdannen / detail
- fix bug that did not persist Edge Attributes to new non-manifold Edges that are generated by EXTRACTing Faces; add attributeA test case; add duct6 test case — jfdannen / detail
- fix bug in ESP.js associated with clearing velocities for a scalar; update tutorials 1 to 5 for v1.21 — jfdannen / detail
- modify way python is initialized and finalized to work around a problem in numpy - take 2 — jfdannen / detail
- modify way python is initialized and finalized to work around a problem in numpy — jfdannen / detail
- copy CFGPMTRs and DESPMTRs from temporary CAPS MODL back into the ESP MODL in CapsCommit and CapsSuspend; automatically rebuild MODL in CapsCommit and CapsSuspend — jfdannen / detail
- fix recently-added typo to timPyscript.c — jfdannen / detail
- add sanitize-thread target to Makefile.DARWIN64 — jfdannen / detail
- fix error message associated with not enough arguments to SPHERE; fix bug when user double-clicks in MessageWindow (Chrome and Safari) — jfdannen / detail
- fix setting of PYTHONHOME for a double-quoted string — haimes / detail
- generate WARNING if importing an .egads file that has an Attribute that cannot be evaluated — jfdannen / detail
- remove debug print statement — jfdannen / detail
- remove side effects from assert() statements, which work differently on Windoze — jfdannen / detail
- allow pyscripts to end without a newline — jfdannen / detail
- fix bug associated with finishing non-manifold WireBodys — jfdannen / detail
- allow overlay to execute a mesg even when in TIM_EXECUTING; update tutorial6 files — jfdannen / detail
- remove debug printing of long cast — jfdannen / detail
- suppress profile printing if outLevel==0; fix filename updates in ESP after saving new file and after exporting the feature tree — jfdannen / detail
- limit size of inflatedBody2a to reduce its CPU time — jfdannen / detail
- add tutorial6/model2c — jfdannen / detail
- numerous updates — jfdannen / detail
- add sub03 and f104 to studentGallery — jfdannen / detail
- remove try/catch from IDE demo pyscript files; use skeletonAIM instead of jfd3AIM in IDE demo; only show Display table entries (Node/Edge/Face/Csystem/Pips) if it contains any child entities; fix sensitivity bug associated with UDP/UDFs that requires finite differences coupled with an OUTPMTR that is tied to a mass property; add udpTest; initial commit of new timGloves and associated files — jfdannen / detail
- add ocsmPrintProfile to explicitly print the profile of CPU usage (instead of printing automatically during ocsmBuild); automagically run pyscript.py when running in continuation mode; change Cvals via script when in CAPS mode; change DESPMTRs via script when in CAPS mode; offer to steal capsLock in CAPS mode; add ogive* test cases — jfdannen / detail
- protect non-script caps_ calls with caps_debug; fix bug in timCapsMode that sometimes reverted to original .csm file; update demo_tim.txt; remove duplicate entries from ListHistory; fix typo in ESP-help associated with EVALUATE command — jfdannen / detail
- remove -caps command-line option (replaced by timCapsMode); add cleanup process in pyscript.py only between scripts (not at end); fix bug that did not profile MESSAGE statements; reset profile info at beginning of ocsmBuild; fix bug that did not print OUTPMTRs during call to ocsmPrintPmtrs — jfdannen / detail
- compile serveESP in Makefile and NMakefile — jfdannen / detail
- inform user when CAPS overrides .csm value(s); first attemp at re-running pyscript in continuation mode — jfdannen / detail
- add indication for Phases that are a predecessor of current Phase in ListPhases — jfdannen / detail
- add calls to caps_debug around List* messages in timCapsMode; update data/ide/*.py to directly rebuild the geometry; reorder Caps menu options — jfdannen / detail
- fix ListHistory in timCapsMode — jfdannen / detail
- update demo_tim.txt — jfdannen / detail
- modify demo_caps.txt and demo_tim.txt; make changes needed to make both demos operate properly — jfdannen / detail
- fix stanalyzer error — jfdannen / detail
- more modifications to support timCapsMode — jfdannen / detail
- temporary commit to be used for debugging — jfdannen / detail
- remove debug print statement — jfdannen / detail
- additional bugs fixed in timCapsMode; add unequalRules test case to show how to RULE between xsects with different nnumber of Edges — jfdannen / detail
- remove temporary printf statements — jfdannen / detail
- rename capsIde to capsMode; restrict SPHEREs to have a positive radius; allow multiple ESP-help tabs in browser; partial implementation of timCapsMode — jfdannen / detail
- revert previous commit — jfdannen / detail
- fix previous commit — jfdannen / detail
- remove unneeded windoze headers from tim.c — jfdannen / detail
- Fix continuation marker in serveESP.mak — haimes / detail
- Fix headers for Windows in timPyscript — haimes / detail
- fix windoze problem with includes in pervious commit — jfdannen / detail
- only allow one open ESP-help tab at a time; implement timFlowchart; modify interpolateUpper.py and conserveUpper.py to demonstrate flowcharting tool — jfdannen / detail
- allow for .py scripts to run both in serveESP -caps and in python; add ocsmSetAuxPtr and ocsmGetAuxPtr in OpenCSM API — jfdannen / detail
- fix stanalyzer problem in timCapsIde.c — jfdannen / detail
- update serveESP.mak in previous commit to include timCapsIde.obj — jfdannen / detail
- change display scaling so that if there is only one NodeBody it still gets displayed; initial implementation of timCapsIde — jfdannen / detail
- allow nesting of TIMs to MAX_TIM_NESTING=10 — jfdannen / detail
- fix bugs in File->Open and File->Edit for cases with and without UDCs — jfdannen / detail
- fix bug in ocsmSave that did not write DIMENSION statements correctly when writing either a .csm or .cpc file with a variable nrow and/or ncol; update calls to caps_open to handle UDCs — jfdannen / detail
- change -caps mode to accommodate both fore- and back-slashed in filenames; use ocsmTessellate in serveESP; update serveESP.make and serveESP.mak to define USING_CAPS (so that serveESP can be built without CAPS); remove unneeded code that generates a warning with new clang version; use updated caps_open so that cases with UDCs work properly — jfdannen / detail
- remove unneeded code that generates a clang warning — jfdannen / detail
- add ocsmAdjustUDCs to OpenCSM API to copy all UDCs to the same directory as the .csm file; implement File->New, File->Open, and File-Edit->OK in caps mode — jfdannen / detail
- more improvements for ListHistory; use caps_open in read-only mode in ListPhases and ListHistory — jfdannen / detail
- do not let esp.UpdateESP rebuild (force rebuild in .py script) — jfdannen / detail
- extend ListHistory to GEOMETRYIN and GEOMETRYOUT — jfdannen / detail
- update Makefiles for cases without python; add many features to -caps mode; add data/ide/* to test -caps mode; fix many bugs in -caps mode; expose ocsmTessellate — jfdannen / detail
- Makefile updates to supress Python builds — haimes / detail
- first implementation of CAPS menu in ESP — jfdannen / detail
- allow branching of Phases when running serveESP in -caps mode — jfdannen / detail
- caps_PrintObjects signature changed — haimes / detail
- allow wild-carding (with 0) in SELECT ADD and SELECT SUB; update connect9a and connect9b; update Makefile.DARWIN64 for 3-way testing — jfdannen / detail
- in timViewer, use smoothing shading when looking at BOUNDS; allow wild-carding (with 0) in SELECT ADD and SELECT SUB; update Makefile.DARWIN64 for 3-way testing — jfdannen / detail
- add viewing of BOUNDS in timViewer; allow GetToken in tim.c to work if the text string does not end in a delimiter; improve error message generated when SKVAR does not contain triplets; improve CAPS summary at end if running in -caps mode — jfdannen / detail
- in timViewer, use a tessellation associated with the AIM if available, otherwise share the tessellation with OpenCSM — jfdannen / detail
- fix (long) cast in previous commit — jfdannen / detail
- extend STORE such that if index=-1, the first available index is used; fix bug that generated two copies of Bodys on stack when RESTOREing with index<0; if running serveESP in -caps mode, get MODL from CAPS (instead of building it in OpenCSM); extend timViewer to view Bodys associated with an AIM — jfdannen / detail
- fix bug that either hangs or seg faults serveESP if user closes browser while timPyscript is executing. this is done by not calling Py_Finalize, which will result in a memory leak; fix bug that occasionally does not show pyscript file when serveESP is starterd with a .py file — jfdannen / detail
- improve error message when project.csm exists before the project directorry when running serveESP in -caps mode — jfdannen / detail
- improve the creation, editting, and removal of Caps Values in -caps mode; allow multi-valued Caps Values in ESP; add udfShadow and shadow* test cases — jfdannen / detail
- added numpts argument to udpKulfan, which helps avoid small dimples near the leading edge of a very thin section — jfdannen / detail
- add debug GRAFICs to udpKulfan — jfdannen / detail
- add SELECT LOOP to get Edges associated with a Loop in a Face; allow unary + or - in front of (multi-valued) Parameter when used alone in an expression; add sectionsWithHoles* test cases — jfdannen / detail
- create hollowSheet and hollowSolid test cases to show all possibile uses of HOLLOW command; improve description of HOLLOW in OpenCSM.h; if HOLLOW fails, input Body is left on the stack; add hollowE* test cases to show some of the limitations of HOLLOW; change timPython to timPyscript to get around problems with linking with python on Windoze; have OpenCSM return SUCCESS even when all the Bodys have been recycled; put note in ESP-help and OpenCSM.h that warns users that results from HOLLOW and SWEEP may be unpredicable due to OpenCASCADE issues; add timPlotter and plotter* test cases — jfdannen / detail
- fix bug in ocsmPrintEgo when called on BSPLINE Curve or Surface; require positive scale factors in udfNuscale when applied to a SolidBody; add initial version of timPlotter and test cases; change GetToken in tim.c so that tokens can have unlimited length — jfdannen / detail
- fix errors that occur because Py_Finalize cannot be used more than once (because of a numpy bug); fix bug that did not show Cvals for -caps runs in serveESP and Brchs when running without -caps — jfdannen / detail
- update Caps Value handling in ESP — jfdannen / detail
- do not show Branches in serveESP when in -caps mode; allow serveESP to change .csm file when in -caps mode; fix OpenCSM.c to remove stanalizer error — jfdannen / detail
- for a UDP/UDF, only use finite differences if one of its arguements is ATTRREAL and has non-zero dots — jfdannen / detail
- add growing3.py test case — jfdannen / detail
- modify timPython to get around numPy problems associated with Py_Finalize; modify tim interface to allow a tim to perform cleanup at the end of serveESP — jfdannen / detail
- fix tessellation sensitivity bug associated with SheetBodys that are INTERSECTed with a SolidBody; add designP5* test cases; fix Node sensitivity for two parallel Edges; move timViewer from Makefile to serveESP.make; add tufts for Nodes when displaying tessellation sesnitivities in serveESP; ensure that tessellation sensitivities on the boundaries of Face and ends of Edges agree with Edge and Node sensitivities; update .tsen files — jfdannen / detail
- remove serveESP from Makefile and NMakefile; create serveESP.make and serveESP.mak — jfdannen / detail
- index.lt.0 in RESTORE is now a wildcard, meaning that Bodys in all storages that match name are put onto the stack; initial integration of CAPS into serveESP — jfdannen / detail
- update ESP_QuickReference; update ESP so that double-clicking in MessageWindow takes you to filename:linenum that is clicked on, else takes you to last filename:linenum in MessageWindow; update sensCSM to use RMS errors; reduce ratio of errors for alerts from 5 to 2; update .gsen and .tsen files for 7.4.1 and 7.6.0 — jfdannen / detail
- fix ocsm.def for last commit — jfdannen / detail
- implement Debug in .csm editor; fix a few bugs in parent/child Body pointers — jfdannen / detail
- fix bugs associated with running a .py file — jfdannen / detail
- improve tessellation sensitivities for Edges and Faces that are not trimmed by a boolean operation; update .tsen files — jfdannen / detail
- update to special plotting associated with Face velocities for INTERP_VEL=6 — jfdannen / detail
- update CAPS/myPlane for intent 4 (avl) and 5 (bem) — jfdannen / detail
- .py files are automatically edited in serveESP — jfdannen / detail
- add quad3 and quad4 test cases — jfdannen / detail
- fix bug if user with ball loaded a new .csm file and then editted (where user without ball saw wrong file); adjust closeBody2 test case to REORDER the Edges so that all the Faces point outward; inform users if someone has joined or left a collaboration; modify visualization of grids on Faces in serveESP * new-style quads if _makeQuads attribute on Body (.tessType==Quad or .tessType==Mixed) * old-style quads if _makeQuads attribute on Faces (npatch>0) * triangles oherwise; fix valgrind error in sensCSM — jfdannen / detail
- check for proper result types from SWEEP; check mass props before topology in verification files; add verification data for OpenCASCADE 7.6.0; change copyright to 2022; give @version a value before the first Body is built; allow DIMENSIONed variable to be returned from a UDC; update expressions test case to demonstrate multi-value returns — jfdannen / detail
- more improvements to udfCompare (and fix sanitizer error); update GRAFIC plots of trim curves to show the points on the Pcurves; increase size of plot points in serveESP; add fixture* test cases — jfdannen / detail
- update Makefile.LINUX64; fix typo in mitten2.py — jfdannen / detail
- add ability of specifying color of items in a plotfile; change udfCompare to group bad points based upon the magnitude of the error; update udfCompare to check distances from Nodes and Edges as well as distances from Faces — jfdannen / detail
- update documentation for DUMP in OpenCSM.h — jfdannen / detail
- create ESP-viewer.js; pass callbacks to overlay if they exist; reorganize python test cases; change verification tests to include serveESP — jfdannen / detail
- update timViewer to be able to make changes to the scene graph; add ocsmLoadFromModel to pyOCSM; add shapes test case; fix initialization bug in ocsm.py — jfdannen / detail
- remove timViewModl from timPython.def — jfdannen / detail
- update test.py to remove call to removed esp.ViewModl() — jfdannen / detail
- add ability to hold python execution while an overlay (viewer) is executing; update viewer.py — jfdannen / detail
- change locking mechanism for tim_mesg to use ThreadWait instead of a mutex — jfdannen / detail
- fix bug that did not release the lock if tim_mesg is in holding mode — jfdannen / detail
- fix mutex problems associated with tim_mesg — jfdannen / detail
- fix lint error in tim.c — jfdannen / detail
- add timViewer and associated test cases; create mechanism to allow a TIM to call a TIM; fix a few typos in ESP-help — jfdannen / detail
- updates to Windoze .def files — jfdannen / detail
- Fix up ocsm.def to include GetToken (whose name should probably change) — haimes / detail
- Windoze tim.def file fix — jfdannen / detail
- Windoze tim.def file fix — jfdannen / detail
- Windoze ocsm.def file fix — jfdannen / detail
- fix bug in udfNuscale when zscale=0; first cut at calling a TIM from the python TIM — jfdannen / detail
- do not change outLevel if ocsmSetOutLevel is called with negative argument; add printout for outLevel.ge.2 when TIM broadcasts a message to the browsers; add option to plot trim curves associated with all Faces — jfdannen / detail
- fix Makefile and NMakefile associated with previous commit — jfdannen / detail
- reorganize way TIMs broadcast messages out to the browsers — jfdannen / detail
- use new BLEND C0 treatment, including in sensitivities; fix bug in timMitten associated with cleanup — jfdannen / detail
- add .tsen data for 7.3.1 — jfdannen / detail
- remove special sensitivity treatment for BLENDs with C0; update sensCSM verification data; add blend22* and rule22 test cases — jfdannen / detail
- add closeBody* test cases; add collab* test cases; add documentation about what happens for a 0 in either SELECT ADD or SELECT SUB statement — jfdannen / detail
- fix bug associated with MALLOCs in udpWaffle — jfdannen / detail
- fix bug associated with MALLOCs in udpWaffle — jfdannen / detail
- fix typo in error message associated with COMBINE command; make error messages from udpWaffle more explicit — jfdannen / detail
- remove Windoze warnings from previous commit — jfdannen / detail
- fix bug so that wv_broadcastText is not called by a TIM when running in batch mode — jfdannen / detail
- improve sensitivities associated with tip treatments in BLEND; update designG5 and designG6 test cases — jfdannen / detail
- update timMesg so that it does not return a response; allow non-*host* to initiate file editting; fix bug that does not give appropriate error messages when having trouble opening a .py file from the command line; fix bug that does not give appropriate error messages when timPython has trouble opening a file from Tools->Python — jfdannen / detail
- add IFTHEN/ENDIF to udpWaffle; add waffleA* test cases; update Makefile.LINUX64; fix bug that lost ball if user with ball sends a message — jfdannen / detail
- update to latest version of Tblade3; allow default xaxis=0, yaxis=0, and zaxis=0 in ROTATEX, ROTATEY, and ROTATEZ; add rotate1 test case; add LAYOUT to udpWaffle; add waffle3* test case; fix memory leak associated with mprp arrays — jfdannen / detail
- missed designU1c.tsen in previous commit — jfdannen / detail
- remove tim_data from TIM interface (no longer needed); change NXSECT argument in udpGuide to ATTRREAL so that finite difference sensitivities are triggered; remove RAD argument to udpBox in designI2 and designI4 so that finite differences are not triggered; fix bug that re-computed velocities when re-computation was not necessary; fix bug associated with sensitivities of mass properties — jfdannen / detail
- update timPython to post stdout to the MessageWindow while python is executing; fix postMessage so that blanks lines between messages are eliminated — jfdannen / detail
- fix bug introduced in previous commit — jfdannen / detail
- fix bug in previous commit; add ocsmLoadFromModel function; add withTess=0 argument to DUMP command; add dumpTest* test cases; update Makefile.DARWIN64.gcc — jfdannen / detail
- updates to way PYTHONHOME is found in timPython; add designV1 test case; set sgFocus in timMitten so that it can start with an empty MODL — jfdannen / detail
- fix hint for SCALE in ESP; shorten hint time-out in ESP to 15 sec; fix bug in timPython that did not register MesgCB and SizeCB after a timLoad (which caused a problem if started with a .py file); add (not-yet-implemented) Debug option in ESP editor; update ESP editor so that users without the ball can see the edits as they happen; clean up unneeded routines in TIMs; add debug and debugged testcases; add designU* test cases — jfdannen / detail
- For timPython, put Python lib location in rpath — haimes / detail
- Build timPython on Windows — haimes / detail
- Allow for building TIMs outside of OpenCSM/src — haimes / detail
- fix bug that did not remove UDP cache entries when a Body was deleted (such as during recycling); do not consider DEGENERATE Edges when SELECTing either by bounding box of nearest-to — jfdannen / detail
- Dynamic Web Server library cleanup — haimes / detail
- update Makefile.DARWIN64 to get rpath correct when running a script directly in python (and not serveESP); allow CONPMTR statement if at top-level scope; update scope test case; fix bug that did not compute sensitivity correctly when a DESPMTR was used in an include-type UDC — jfdannen / detail
- change button to yellow and RunningPython while python is running; update Makefile.DARWIN64 to get rpath correct when running a script directly in python (and not serveESP) — jfdannen / detail
- fix pyOCSM test errors caused by addition of @scope — jfdannen / detail
- start getting ready for editing .py files; separate loading and running in timPython; run python in separate thread; add @scope at-parameter; add scope test case — jfdannen / detail
- add esp.h — jfdannen / detail
- fix stdout sequencing in timPython; get rid of global data in serveESP; update data/python/test* files — jfdannen / detail
- fix bug associated with (FD) sensitivities for a MODL with a OUTPMTR being set before a FILLET or CHAMFER; remove code that protects against calls to EG_replaceFaces in SolidBodys with more than one Shell — jfdannen / detail
- enable esp.SetModl() to see MODL in serveESP after python finishes — jfdannen / detail
- stub routines added to account for change in tim.def — jfdannen / detail
- fix bug associated with expressions that contain mass properties; add designT1 test case; fix bug that causes an error to be raised if the mass property sensitivities are computed by FDs before the last Body is built; add designT2 test case; add python mode to CodeMirror; add esp.py — jfdannen / detail
- add udpTire testing to Makefile.DARWIN64; compute sensitivity correctly with udfCreateBEM, udfCreatePoly, udfEditAttr, udfPrintBbox, udfPrintBrep, and udoPrintEgo; add designS3 test case — jfdannen / detail
- fix bug in udfGuide that did not work properly for an input SheetBody; add designS* test cases; fix bug that did not compute sensitivities correctly for UDFs when one (or more) of the input Bodys had non-zero velocities — jfdannen / detail
- add udpBodyList to udp.def for Windoze — jfdannen / detail
- initial code for proper UDF sensitivity calculations --- not enabled yet — jfdannen / detail
- modify udfNacelle* test cases to use DESPMTRs; add splitWing* test cases; remove gallery/FJ2 from distribution — jfdannen / detail
- allow pyOCSM to import an externally-generated MODL; enable timMitten; create timPython and data/python/test*; allow serveESP to start with a .py file — jfdannen / detail
- uprev to v1.21 (ESP.html, ESP-localhost.html, ESP-help.html, OpenCSM.h, ocsm.rc); create unpublished routine convertToBSplines. modify so that BSPLINES are not reconverted; modify udpParabaloid and udfNuscale to use convertToBSplines. add DEBUG prints in udpNuscale; add sculpt* test cases; add attrProp test case to show how Edge Attributes get propagated to Faces by EXTRUDE and REVOLVE but not by RULE and BLEND. attrProp also shows that Edge Attributes are not carried forward by EXTRUDE, REVOLVE, RULE, or BLEND; make INTERFACE DIM obsolete; issue WARNING to use DIMENSION statement instead; add udfNacelle and udfNacelle* test cases — jfdannen / detail
- fix bug in StepThru that was introduced when computation of _tParams was delayed — jfdannen / detail
- fix minor documentation typos — jfdannen / detail
- fix bug in JOIN associated with Faces that share Edges but which have bounding boxes that differ; add halfSpheres test case; remove spurious printout associated with SKEND command; disable timMitten for v1.20 release — jfdannen / detail
- fix bug that did not allow a user to EXTRACT multiple Faces from a SolidBody that had an internal hole; add extractShells* test cases; fix memory leak in udpParabaloid; update ESP_QuickReference for v1.20 — jfdannen / detail
- add attrScribe test case; add udpParabaloid and test case — jfdannen / detail
- implement outLevel in timPlugs; improve -plugs option in serveCSM so that more cases work; mark plugs4c as successful in Jenkins; modify attribute and getattr1 test cases to account for fact that _tParams only exists when Body is recycled — jfdannen / detail
- fix long delay when browser without ball syncs display — jfdannen / detail
- remove inside-out test for SolidBodys to improve performance; move Plugs to a TIM in serveESP; do not add _tParams attribute unless the Body will be tessellated; remove coarseBox test case — jfdannen / detail
- remove print in tim.c to eliminate Windoze warning — jfdannen / detail
- remove unistd.h from timMitten.c — jfdannen / detail
- fix bug that sometimes uses FD sensitivities when analytic derivatives could be used instead (associated with UDPARG statements); change method for setting mass properties so that rebuild is not needed when changing spectrum limits in ESP — jfdannen / detail
- another attempt to fix Makefiles — jfdannen / detail
- another attempt to fix Makefiles — jfdannen / detail
- another attempt to fix Makefiles — jfdannen / detail
- another attempt to fix Makefiles — jfdannen / detail
- another attempt to fix Makefiles — jfdannen / detail
- another attempt to fix Makefiles — jfdannen / detail
- another attempt to fix Makefiles — jfdannen / detail
- another attempt to fix Makefiles — jfdannen / detail
- fix Makefiles for latest commits — jfdannen / detail
- apply attributes on LINSEG, ARC, CIRARC, BEZIER, SPLINE, and SSLOPE Branches to the Edge that they create; add attrSketch* test cases; remove Gloves and ErepEd from serveCSM; next version of serveESP that uses TIMs; move ErepEd to a TIM in serveESP; move Gloves to a TIM in serveESP; create Mitten as a TIM example — jfdannen / detail
- Small fix for IGES Name reads — galbramc / detail
- IGES reader now also reads all Name attributes. Fix stanalizer warning. — galbramc / detail
- Reduce time extract Name attribute from STEP files. — galbramc / detail
- Track STEP/IGES name attributes through all read manipulations — galbramc / detail
- Lint fix — galbramc / detail
- Use python or python3 executables in makeEnv — galbramc / detail
- Fixes for Edge only tessellations — galbramc / detail
- Undo Makefile change — galbramc / detail
- One more adjustment to EG_mapBody — galbramc / detail
- Only delete EG_mapBody mapped upen error if copied — galbramc / detail
- Uprev to ESP 1.24. Add .C1side attribute for EG_blend. EG_blend now supports three neighboring C1 sections. — galbramc / detail
- makeEnv fixes for -dev — galbramc / detail
- makeEnv fix AFLR_ARCH for linux-aarch64. Add -dev option to makeEnv. — galbramc / detail
- Add note about fighter4 on Intel macOS 13.3 — galbramc / detail
- Fix step and iges label read — galbramc / detail
- Update concepts and viewer pdf. Fix for makeEnv. — galbramc / detail
- Updates for ESP 1.23 release. Add LINUX_AARCH64 and DARWIN_ARM64 ESP_ARCH. — galbramc / detail
- Fix bug in setup scripts — galbramc / detail
- Fix bug in setup scripts — galbramc / detail
- Update README files. Add PreBuilt setup scripts. — galbramc / detail
- Fix last commit — galbramc / detail
- Lint fixes — galbramc / detail
- Fix stanalizer warning — galbramc / detail
- Fix warning — galbramc / detail
- Fix EG_mapTessBody for DEGENERATE Edges. Update makeEnv to look for python3. Readme updates. — galbramc / detail
- Increase thread stack size on macOS — galbramc / detail
- Fix warning — galbramc / detail
- Lint fix — galbramc / detail
- Fix lite stanalizer warning — galbramc / detail
- Fix individual bodies in EG_generalBooelean. Other small cleanup. — galbramc / detail
- Fix EG_getTopology instantiation — galbramc / detail
- Add Surreal EG_getTopology — galbramc / detail
- Fix ShapeFix for generalBoolean — galbramc / detail
- Add more documentation on EGADS parent child referencing — galbramc / detail
- Export EG_rotate_dot on Windoze — galbramc / detail
- Track sensitvities with EG_repalceFaces — galbramc / detail
- Add Surreal EG_makeTopology — galbramc / detail
- Use ffp-model=strict on M1. Relax some test tolerances for M1. — galbramc / detail
- Fix clang 14.0.3 warnings — galbramc / detail
- Update EGADS doc for makeTessBody with negative legnth — galbramc / detail
- Try fixing bodies in generalBoolean — galbramc / detail
- Fix error message. Do not change topObj for bodies. Why does this not work... — galbramc / detail
- Correctly set topObj for Geometry in Bodies. Set topObj for bodies in Models. Use EG_removeCntxtRef in makeFace. Check Body references before deleting a Model. More robust cleanup in EG_close. — galbramc / detail
- Fix getEdgeUV doc — galbramc / detail
- Fix full attirubtion for EG_repalceFaces. Fix error message. — galbramc / detail
- Remove depricated x86 -m64 compiler flag. Add compiler flags for OCC 7.7. — galbramc / detail
- Fix for OCC 7.4 — galbramc / detail
- Provide error message instead of segfault in EG_otherCurve — galbramc / detail
- Add 1-bias to matchBody documentation — galbramc / detail
- update return values from udpTire — jfdannen / detail
- Suppport Edge only eto files — galbramc / detail
- update DARWIN64.gcc to add comma to RPATH needed by some gcc-10 compilers — jfdannen / detail
- Add back ESP_ROOT/lib to rpath on DARWIN — galbramc / detail
- Use @loader_path for rpath to ESP_ROOT/lib on DARWIN — galbramc / detail
- Update Copyright date — galbramc / detail
- Uprev to 1.23 — galbramc / detail
- README release notes updates — galbramc / detail
- Rev updates to 1.22 — galbramc / detail
- README updates — galbramc / detail
- Update makeEnv for macOS 13 — galbramc / detail
- Replace DEBUG sprintf with snprintf — galbramc / detail
- Try again: reorder includes! — haimes / detail
- Try again: MSVC 2022 seems to have snprintf defined! — haimes / detail
- sprintf -> snprintf mods — haimes / detail
- Replace sprintf with snprintf in egadsTopo — galbramc / detail
- Suppress clang deprication warning of sprintf in OCC — galbramc / detail
- Add simple figure for tri ordering with mixed quad faces — galbramc / detail
- Allow unconverged SmoothUV status to continue during parameterization — haimes / detail
- Fix the new isEquivalent for periodic curves split into 2 Edges — haimes / detail
- modified Ints to Int32 and added egadslite tests — docampo / detail
- recompiled pdf references were with ?? — docampo / detail
- removed EL flag from some of the effectiveTopology functions — docampo / detail
- fixed typos — docampo / detail
- Remove bug that would error out if there were no Faces during generalBoolean operations — haimes / detail
- Update isEquivalent to fix previous problem — haimes / detail
- Allow for senses to be flipped when applying EG_isEquivalent — haimes / detail
- added the ego. wrap to the getfield operation — docampo / detail
- update udpTire for new include scheme — jfdannen / detail
- Fix Edge mapping problem introduced since Rev 1.21 — haimes / detail
- changed .obj -> .ego — docampo / detail
- Add TOML to egadslite dep — galbramc / detail
- compiling for Julia 1.6 and 1.8. test fails for 1.8 — docampo / detail
- Update makeEnv to reflect newer MAC OS revs — haimes / detail
- Add the Julia interface to the EGADS API documentation — haimes / detail
- Try to fix stanalyzer errors again — haimes / detail
- Fix jlEGADS makefiles — galbramc / detail
- Try to fix stanalyzer errors — haimes / detail
- Suppress gcc-12 warning — galbramc / detail
- Effective Topology: apply last change only for EFaces with more than 1 Face — haimes / detail
- Effective Topology: check result of getEdgeUV against invEval and pick the closer — haimes / detail
- A different possible fix for the MemcheckOcsm on the rule28 cases — haimes / detail
- A different possible fix for the MemcheckOcsm on the rule28 cases — haimes / detail
- A possible fix for the MemcheckOcsm on the rule28 cases — haimes / detail
- Effective Topology: Mark Planar/Periodic EFaces not to tessellate Edges based on Face Curvature — haimes / detail
- Fix scan-build warning from last commit again — haimes / detail
- Fix scan-build warning from last commit — haimes / detail
- Effective Topology: Fix NM Sheetbody Node removal — haimes / detail
- Fix NULL bays at end with multiNode Rule — haimes / detail
- Updated ruled sensitvities for multiNode — galbramc / detail
- A minor update of the documentation of EG_approximate — haimes / detail
- Update the docs to specify the additions to EG_approximate and EG_ruled — haimes / detail
- Fix _close! function to properly check garbage collection for both egads and egadslite — galbramc / detail
- Fix jlEGADS makefiles for zsh — galbramc / detail
- jlEGADS makefile adjusments. Other small cleanup. — galbramc / detail
- delete manifest from lite — docampo / detail
- now ?? — docampo / detail
- egads also used from egadscommon.jl dependencies — docampo / detail
- remove unnecesary ENVS — docampo / detail
- now with actually things inside — docampo / detail
- created egads common folders — docampo / detail
- Rule with Loops of differing number of Edges passes simple test with null 'bay' — haimes / detail
- Can rule with sections of different number of Edges -- still need to check null bays, multiplicity > 1, curved EndCaps & EG_splineGeom_dot — haimes / detail
- Close memory leak in EGADSlite associated with full attributes — haimes / detail
- Fix scan-build problem — haimes / detail
- Fix warning from last commit — haimes / detail
- Second (but incomplete) cut at Rule with differring numbers of Edges — haimes / detail
- Another minor correction to last commit — haimes / detail
- Minor correction to last commit — haimes / detail
- First (but incomplete) cut at Rule with differring numbers of Edges — haimes / detail
- Don't allow for Figure 8 Nodes in ELoops (for now) — haimes / detail
- Another def file fix — haimes / detail
- Add setTessParam to lite def file — haimes / detail
- Updates to egadslite to support pyEGADS.egadslite — galbramc / detail
- First cut at pyEGADS.egadslite — galbramc / detail
- Remove manifest files for jlEGADS. Check array size for makeGeometry. Fix makeGeometry tests. Some references fixes. — galbramc / detail
- Fix some pyEGADS refrencing. Check data length for pyEGADS makeGeometry. — galbramc / detail
- Fix topObj during EGADSlite import — haimes / detail
- Add U periodic options to EG_approximate for surfaces — haimes / detail
- try — docampo / detail
- Allow for full attribution in EGADSlite — haimes / detail
- Add reference counting for jlEGADS finalizers. Lots of other jlEGADS cleanup. — galbramc / detail
- Fix for last commit — galbramc / detail
- Various Julia cleanup and fixes — galbramc / detail
- Update julia Makefile — galbramc / detail
- Remove jlEGADS environment variable — galbramc / detail
- added package install — docampo / detail
- added Makefile — docampo / detail
- first jlEGADS — docampo / detail
- First cut at fitting periodic curves — haimes / detail
- Fix a number of bugs in the Effective Topology — haimes / detail
- Uprev EGADS — haimes / detail
- Forgot DARWIN64.clang and DARWIN64.gcc — galbramc / detail
- Move DARWIN64 ifort link flag to support EGADS test builds — galbramc / detail
- Fix for ifort on newer versions of macOS — galbramc / detail
- Add _USE_MATH_DEFINES for MSVC — galbramc / detail
- Add error functions erf and erfc to Surreal — galbramc / detail
- README update — haimes / detail
- Config update — haimes / detail
- Fix bug returning wrong parameters in pyEGADS effectiveMap — galbramc / detail
- More defensive Surreal defines — galbramc / detail
- Some config updates — haimes / detail
- Fix up EMP_ThreadDestroy for the M1 — haimes / detail
- Stanalizer fixes for Lazy Surreal — galbramc / detail
- Use std c++11 for Surreal tests. Fix in depricated EG_loadTess. — galbramc / detail
- Use Lazy Expressions for Surreal for slightly better performance on windoze — galbramc / detail
- Minor config changes — haimes / detail
- Config change for Windows to always start browsers in the background — haimes / detail
- Windows configuration change to promote Edge — haimes / detail
- update README.txt with note about Safari block-ups — jfdannen / detail
- Add makeNmWireBody to pyEGADS — galbramc / detail
- Don't clobber LD_LIBRARY_PATH with ESPenv — galbramc / detail
- Configuration changes and signature change for EG_makeNmWireBody — haimes / detail
- Documentation updates — haimes / detail
- More Doc updates — haimes / detail
- Some Documentation updates — haimes / detail
- Fix the fix for memory issue with getting units from imports — haimes / detail
- Fix memory issue with getting units from imports — haimes / detail
- Document some of the new updates to SETP/IGES handling — haimes / detail
- Support units on both STEP and IGES exports — haimes / detail
- Add an option to do less checking with makeTopology on a Loop — haimes / detail
- Another touch of splitPeriodics — haimes / detail
- Try that again -- revert and get the if statement correct! — haimes / detail
- Try that again — haimes / detail
- Don't update the shape in splitPeriodics if it fails curve simplification — haimes / detail
- Fix scan-build warning from last commit — haimes / detail
- Implement EG_makeNMWireBody — haimes / detail
- Straighten out non-manifold WireBodies — haimes / detail
- Supress informational message on initial triangulation problem with Planar Faces — haimes / detail
- Guard against infinite loop on planar surfaces with bad initial triangulation — haimes / detail
- More support for tessellations without face tessellations — galbramc / detail
- Enable EG_finishTess to fill in missing face tessellation. — galbramc / detail
- Remove warnings generated by a new compiler — haimes / detail
- Config change — haimes / detail
- Explicitly open files as bindary in EG_saveTess/EG_loadTess. — galbramc / detail
- Effective Topology: fix memory problem with interior Edge (in Loop twice) — haimes / detail
- Remove Degenerate EEdges once Faces are merged in an EFace — haimes / detail
- Documentation updates — haimes / detail
- Only consider Python 3.8 or newer in makeEnv/winEnv — galbramc / detail
- Some config updates — haimes / detail
- Export Body CSystems that ar free-standing (aLen = 9) — haimes / detail
- Update egads_dot.h. Explicit makefile in scan-build/scan-view. — galbramc / detail
- change startup messages in wvServer from stderr to stdout — jfdannen / detail
- Add missing DEGENERATE Edge check to EG_exportModel — galbramc / detail
- Properly reflect the move of OCC copies in this repository — haimes / detail
- Fix array out-of-bounds in EG_extrude_dot — galbramc / detail
- When splitting periodic Faces convert the order 1 BSpline to a Line; allow for calling wv_cleanupServers when there are active server threads — haimes / detail
- Don't fix Faces for EG_makeTopology(SOLIDBODY) — galbramc / detail
- Fix warning — galbramc / detail
- Makefile fixes — galbramc / detail
- Add EG_rotate_dot and fix EG_extrude_dot to work with OCC. Fix for topological changes in EG_rotate (not enabled yet). — galbramc / detail
- Do not use Edge tangents for vertex insertion when the magnitude is deminishing (near C0s) — haimes / detail
- Though premature, update the copyright year — haimes / detail
- Attempt to mitigate the fillTris error when presented with bad PCurves — haimes / detail
- Use the define OCC_VERSION_DEVELOPMENT to tell us we built the OpenCASCADE — haimes / detail
- Some trianglulation changes needed to deal with the GMGW3 'foreign' STEP files — haimes / detail
- Another config update and another update for Windows threading — haimes / detail
- Start FireFox in the background & try to fix stanalizer again — haimes / detail
- Try to fix a scan-build error that spuriously popped up! — haimes / detail
- Protect EMP against NULL Locks and revert Safari's startup in makeEnv — haimes / detail
- Windows config update and fix for EMP_LockTest for Windows — haimes / detail
- Fix arcLength (EGADSlite) for BSplines and update some configure scripts — haimes / detail
- Fix bugs in EG_arcLenSeg — galbramc / detail
- Add MCG_ARCLEN for suggested arclen approach. Add some more quadrature options for arclen. — galbramc / detail
- Temp brute-force fix for BSpline arcLength in EGADSlite; fix tessellation progress warning; config updates -- list XQuartz min rev — haimes / detail
- Fix recent update to EGADSlite arcLength code — haimes / detail
- Fix the flattening of periodic BSplines when exporting to EGADSlite; Fix the BSPline range in EGADSlite when flattened — haimes / detail
- Fix STEP writing with Name attributes — haimes / detail
- Mark invalid Bodies during STEP/IGES reads & limit number of inserted verts when tessellating — haimes / detail
- Add MSVC 2022 config file — galbramc / detail
- C0 Blend fix so that the surface derivatives (normals) do not vanish at the C0 — haimes / detail
- Scan-build fix from last commit — haimes / detail
- Functions that insert verts based on surface arc-length use underlying Face when all positions are on that Face (Effective Topology). Used in Quadding & HO tessellations. — haimes / detail
- Improved error message. Use brep V2 for OCC 7.6. Minor cleanup. — galbramc / detail
- Minor cleanup — galbramc / detail
- Fix blend tip sensitvities — galbramc / detail
- clang analyzer fixes — galbramc / detail
- Fix so DEBUG code compiles — galbramc / detail
- Allow degenerate Edge in blend/ruled sections — galbramc / detail
- Fix Blend with non-planar sections and Degerenate Edges in the Sections — haimes / detail
- Target arm64 darwin, not specifically macOS 11 — galbramc / detail
- Reduce testing output — galbramc / detail
- Cleanup old config files — haimes / detail
- No longer support OCC less than Rev 7.0 — haimes / detail
- Changes to support OCC 7.6 — haimes / detail
- Update Makefiles for OCC 7.6. Improved error message. — galbramc / detail
- Other Python config updates — haimes / detail
- Dynamic Web Server library cleanup — haimes / detail
- Fix the new wvServer dynamic library def file — haimes / detail
- NMakefile fix — haimes / detail
- Make the WV server library dynamic — haimes / detail
- Allow for passing a user pointer into browserMessage -- breaks compatibility! — haimes / detail
- minor updates — haimes / detail
- update udpTire.c — jfdannen / detail
- Allow for Solids with multiple Shells to work in replaceFaces — haimes / detail
- update udpTire.c — jfdannen / detail
- update udpTire.c for change in cacheUdp — jfdannen / detail
- Retain all Topology labeled as internal but reject external -- keep Nodes that have a non-zero valence — haimes / detail
- Revert Internal Node change -- needs more work! — haimes / detail
- An update to the last commit -- remove only Nodes that do not touch active Edges — haimes / detail
- Retain Internal Nodes during parsing -- THIS HAS THE POTENTAL OF BREAKING EGADS FILE READS FOR THE VERY FEW CASES THIS COMES UP (the result is that attributes are not reassigned) — haimes / detail
- scan-build suppression — galbramc / detail
- Use jenkins setup for scan-build instead — galbramc / detail
- Removed one too many — galbramc / detail
- Another M1 fix — galbramc / detail
- Fix last commit — galbramc / detail
- Remove depreacted OCC defines. Fix for M1 scan-build. — galbramc / detail
- Enable scan-build on M1 — galbramc / detail
- Fix analyzer error — haimes / detail
- UpRev to 1.21 and deal with Names on STEP IO — haimes / detail
- README updates — haimes / detail
- Remark on a fix to pyEGADS — galbramc / detail
- Fix memory problem in patch tester — haimes / detail
- Fix last warnings — haimes / detail
- First cut at the Tessellation support for the new AVL; some configuration updates — haimes / detail
- update config/README.txt for v1.20 — jfdannen / detail
- Append ESPFLIBS on M1 — galbramc / detail
- Remove OCC 6.8 from config files. Explicitly build arm64 with DARWINM1 — galbramc / detail
- Remove MSVC 2015 as approved compiler — haimes / detail
- Check environment variables — galbramc / detail
- AFLR M1 config changes — haimes / detail
- Configure updates in support of Rev 1.20 — haimes / detail
- Allow for server to post messages to browserMessage — haimes / detail
- Add missing files to clean target — galbramc / detail
- Create possibly missing tess2d structure in EG_setTessFace — galbramc / detail
- Document secure transport for wvServer — haimes / detail
- Update vsp3 memcheck suppression — galbramc / detail
- Add refine executable PATH — galbramc / detail
- Suppress vspscript leaks — galbramc / detail
- Add data/vsp3/X57_Maxwell_CRM_v4.4.1.csm to csmIgnore for valgrind. — galbramc / detail
- Downgrade to OpenVSP 3.34.0 — galbramc / detail
- Add vsp3 jenkins files — galbramc / detail
- Add VSP3_ROOT for vsp3 testing — galbramc / detail
- Add fighter4 as known error on macys — galbramc / detail
- Upgrade to AFLR 11.5.9 — galbramc / detail
- Update to AFLR 11.5.8 — galbramc / detail
- Update xfoil executables with up to 2048 panels — galbramc / detail
- Python suppressoin — galbramc / detail
- Update parser — galbramc / detail
- Another prebuilt fix — galbramc / detail
- Fix PreBuilt script — galbramc / detail
- Update PreBuilt testing — galbramc / detail
- Update ESPbfr.tgz — galbramc / detail
- Add OCC7.7 valgrind suppressions — galbramc / detail
- Fix for jenkins script — galbramc / detail
- Upgrade to SU2 7.5.1 — galbramc / detail
- Uprade to AFRL 11.4.5 — galbramc / detail
- Update clang sanitizer path — galbramc / detail
- update so that more flend8* test cases are expected to pass — jfdannen / detail
- update so that more flend8* test cases are expected to pass — jfdannen / detail
- update expected flend8* failures — jfdannen / detail
- Put file names first — galbramc / detail
- Add OCC 7.7 Jenkins data — galbramc / detail
- add expected errors selected in flend8* test cases — jfdannen / detail
- Cart3D env fix — galbramc / detail
- Upgrade Cart3D version — galbramc / detail
- Update for OCC 7.7.0 — galbramc / detail
- Upgrade to AFLR 11.3.17 — galbramc / detail
- numpy memory leak suppression — galbramc / detail
- Upgrade to AFLR 11.3.15 — galbramc / detail
- Add NETCDFINC for DARWIN64.gcc testing. — galbramc / detail
- Don't build AFLR with Beta testing — galbramc / detail
- Another exodus suppression — galbramc / detail
- Suppresse NETCDF/HDF5 memory leaks — galbramc / detail
- Upgrade to SU2 7.4.0 — galbramc / detail
- More general ubuntu suppression — galbramc / detail
- Ubuntu valgrid supression — galbramc / detail
- scipy 1.9.2. and 1.9.3 have valgrind issues — galbramc / detail
- Add seacas to macys — galbramc / detail
- Add SEACAS environment variable for exodus — galbramc / detail
- Upgrade cvxopt build for gcc 12 on viggen — galbramc / detail
- Suppress scipy memory leak — galbramc / detail
- Another python valgrind suppression — galbramc / detail
- Add Ubuntu 22.04 valgrind suppressions — galbramc / detail
- Use system valgrind — galbramc / detail
- Small cleanup of email template — galbramc / detail
- Remove torch for now — galbramc / detail
- Log parser fixes — galbramc / detail
- Suppress torch memory leaks — galbramc / detail
- Upgrade sanitizer path to 14.0.0 — galbramc / detail
- Try dissabling CUDA for pytorch — galbramc / detail
- Look for fatal msvc errors — galbramc / detail
- Look for fatal gnu/clang errors — galbramc / detail
- Revert to serveCSM for plugs — galbramc / detail
- Update lingering serveCSM to serveESP — galbramc / detail
- Very strange... — galbramc / detail
- Allow multiple csm patterns — galbramc / detail
- Only check error handling when running all csm files — galbramc / detail
- Support changing outLevel and running select files — galbramc / detail
- Don't do jlEGADS testing just yet — galbramc / detail
- Revert ESP_venv for ESP_Beta — galbramc / detail
- Move virtualenv into ESP directory — galbramc / detail
- Only run minimal CAPS examples in beta — galbramc / detail
- Install torch for beta — galbramc / detail
- pip install torch for corsair — galbramc / detail
- Smartsr error log parse — galbramc / detail
- numpy suppression — galbramc / detail
- Always build egadslite — galbramc / detail
- Update julia path on linux — galbramc / detail
- Remove jlEGADS from Sanitizer and Valgrind — galbramc / detail
- mark helix3 and frustrum3 as expected successes — jfdannen / detail
- Add jlEGADS test to Sanitizer and valgrind — galbramc / detail
- Correct path — galbramc / detail
- Add julia testing — galbramc / detail
- Small fix in xfoil executables — galbramc / detail
- Higher output precision xfoil executables — galbramc / detail
- Upgrade to AFLR 10.22.23 — galbramc / detail
- Another regsx fix — galbramc / detail
- Fix email template — galbramc / detail
- Ignore ifort warnings — galbramc / detail
- Use updated wget for ESP_PreBuilt.bat — galbramc / detail
- Beta script updates — galbramc / detail
- Trying to limit pip install conflits. Cleaner batch pip install function. — galbramc / detail
- Skip some long running tests with Sanitizer and Valgrind — galbramc / detail
- Missed one more — galbramc / detail
- More python suppressions — galbramc / detail
- Suppress AFLR uninitialized data — galbramc / detail
- Yet more numpy suppressions — galbramc / detail
- Another numpy suppression — galbramc / detail
- Upgrade to AFLR 10.22.22 on Windoze. Suppress numpy leak. — galbramc / detail
- Upgrade to AFLR 10.22.22 on Unix systems — galbramc / detail
- Upgrade jenkins to SU2 7.3.1 — galbramc / detail
- Look for more tessellation errors in the log file — galbramc / detail
- Upgrade to AFLR 10.22.21 — galbramc / detail
- Add random sleep for Windoze pip install to avoid install conflicts — galbramc / detail
- Install corsairlite dependencies for ESP_Beta testing — galbramc / detail
- Python suppression — galbramc / detail
- More error checking in ESPbfr.bat — galbramc / detail
- Attempt Python 3.9.13 again — galbramc / detail
- macM1 uses 3.8.11 — galbramc / detail
- Revert back to ESP_Python 3.8.9 for now — galbramc / detail
- install matplotlib and scipy for corsairlite — galbramc / detail
- install packaging for corsairlite — galbramc / detail
- Upgade to ESP_Python-3.9.13 — galbramc / detail
- Install dill and cvxopt — galbramc / detail
- Fix funny permissions on DARWIN64 mastros — galbramc / detail
- Update macOS intel/M1 mastros with old macOS target — galbramc / detail
- astros has array out-of-bound problems — galbramc / detail
- Don't define ASTROS_ROOT on machines without astros — galbramc / detail
- Restore mastros on macOS, macM1, and restore astros on Linux — galbramc / detail
- Uses msys64 wget on Windoze — galbramc / detail
- fix formatting error associated with expected errors for frustrum3 and helix3 — jfdannen / detail
- fix formatting error associated with expected errors for frustrum3 and helix3 — jfdannen / detail
- add frustrum3 and helix3 to expected failures — jfdannen / detail
- Windoze requires exe extension — galbramc / detail
- Add mses to ESPbfr.tgz with tighter convergence tolerance — galbramc / detail
- Another python suppression — galbramc / detail
- change testing from serveCSM to serveESP — jfdannen / detail
- Third time is the charm — galbramc / detail
- Try updating Windoze avl again... — galbramc / detail
- Update avl exec on Linux and Windoze — galbramc / detail
- Try that again — galbramc / detail
- Update macOS avl executables without X11 dylib dependency — galbramc / detail
- Remove redundant testing — galbramc / detail
- Remove mastros.exe on macys and viggen because it does not work — galbramc / detail
- Don't look for python deprecation warnings — galbramc / detail
- Look for python deprecation warnings — galbramc / detail
- Limit threading with OMP_NUM_THREADS — galbramc / detail
- Don't pipe sanitize pyOCSM testing — galbramc / detail
- add numpy valgrind suppression — galbramc / detail
- Look for python unit test timing in log parse — galbramc / detail
- Reduce CAPS ESP_Commit testing — galbramc / detail
- scipy is now available on Monterey — galbramc / detail
- Look for planar meshing errors — galbramc / detail
- Update avl and DAWIN64/mastros.exe executables — galbramc / detail
- astros.exe does not work on Monterey — galbramc / detail
- Upgrade macOS santizer library path — galbramc / detail
- Remove libquadmath dependency on DARWIN64 — galbramc / detail
- Correct avl version number to 3.40 — galbramc / detail
- Reduce avl NVMAX for DARWINM1 — galbramc / detail
- Upgrade to avl 3.41 — galbramc / detail
- Upgrade to MYSTRAN 13.3A on Windoze — galbramc / detail
- Upgrade to Mystran 13.3a — galbramc / detail
- Another python suppression — galbramc / detail
- Update jenkins to run skeletonAIM example — galbramc / detail
- Upgrade to SU2-v7.3.0 for Jenkins — galbramc / detail
- Update error messages — galbramc / detail
- Upgrade to PointwiseV18.5R1 on macOS — galbramc / detail
- Another python suppression — galbramc / detail
- Don't build CAPS for OpenCSM with lint — galbramc / detail
- Upgrade to Pointwise V18.5R1 on reynolds. Compile serveESP for stanalizer — galbramc / detail
- Build serveESP — galbramc / detail
- Add csmOCCFailure_7.6.txt file — galbramc / detail
- Remove csmOCCFailure_7.6.txt directory — galbramc / detail
- Should have kept last numpy suppression — galbramc / detail
- Another try at suppressing numpy leaks — galbramc / detail
- Suppress numpy leak — galbramc / detail
- mark closeBody2 as expected success — jfdannen / detail
- Update sens parsers — galbramc / detail
- Jenkins updates for 7.6.0 — galbramc / detail
- update verification data for 7.6.0 — jfdannen / detail
- Add Warning: LockRelease to jenkins parser — galbramc / detail
- Don't set UDUNITS for beta testing — galbramc / detail
- Remove last alias — galbramc / detail
- Alias python3 on centOS8 — galbramc / detail
- Update mses path — galbramc / detail
- Add PATHs to MSES executables — galbramc / detail
- Upgrade Jenkins env for MSVC 2022 — galbramc / detail
- Update CASROOT — galbramc / detail
- Add 7.6 files (needs updates) — galbramc / detail
- Enable awave again for viggen — galbramc / detail
- mark closeBody2 as failure on 7.3.1 — jfdannen / detail
- changes to accomodate better sensitivities associated with tip treatment in BLENDs — jfdannen / detail
- Dissable astros and awave on viggen — galbramc / detail
- Use bash on Windoze as well — galbramc / detail
- Suppress output from test_pyOCSM to reduce email generation time. — galbramc / detail
- Update python suppression — galbramc / detail
- add debug.csm as known failure — jfdannen / detail
- Update how ESP_Python is found — galbramc / detail
- source .bashrc as part of env — galbramc / detail
- Fix scipy install on viggen — galbramc / detail
- Another Cart3D suppression — galbramc / detail
- Typo — galbramc / detail
- Use anaconda scipy on M1 for now — galbramc / detail
- Don't use system site packages for virtualenv — galbramc / detail
- Don't use system site packages for virtualenv — galbramc / detail
- Suppress perl memory leaks — galbramc / detail
- Remove cart perl command — galbramc / detail
- Missed CART3D_ARCH — galbramc / detail
- Update env for Cart3D design — galbramc / detail
- Change back the getdelim suppression — galbramc / detail
- Fix bug in Valgrind script not running CAPS unit test — galbramc / detail
- Try again to suppress libc problem — galbramc / detail
- Adjust sanitizer suppression — galbramc / detail
- Upgrade macOS clang 13.0.0 — galbramc / detail
- remove testing of plugs7a and plugs8a — jfdannen / detail
- Another Windoze fix — galbramc / detail
- Turn on echo again for Windoze — galbramc / detail
- Fix typo — galbramc / detail
- Add M1 to PreBuilt testing — galbramc / detail
- Upgrade to SU2 7.2.0 — galbramc / detail
- Fix for memcheck python script on darwin — galbramc / detail
- scipy and curses suppressions — galbramc / detail
- Use system site-packages — galbramc / detail
- Add openmdao to pip installs — galbramc / detail
- Globaly have minimal CAPS output for Jenkins — galbramc / detail
- Upgrade pointwise on macys — galbramc / detail
- Generalize valgrind suppression — galbramc / detail
- Another python suppression — galbramc / detail
- remove plugs6a from testing — jfdannen / detail
- Add keep-debuginfo=yes to valgrind flags — galbramc / detail
- Another attempt at suppression Pointwise memory problems — galbramc / detail
- Always suppress alloc dealloc missmatch — galbramc / detail
- Undo mystran exclusion from valgrind — galbramc / detail
- Suppress Pointwise alloc dealloc missmatch — galbramc / detail
- Exclude mystran from valgrind due to false positives — galbramc / detail
- Upgrade Pointwise on Reynolds — galbramc / detail
- Undo last change — galbramc / detail
- Fix virtualenv on macOS — galbramc / detail
- Don't install matplotlib for testing — galbramc / detail
- Upgrade valgrind version — galbramc / detail
- Dissable undefined sanitizer vptr option — galbramc / detail
- mark plugs4c as successful — jfdannen / detail
- Update mastros rpath on viggen — galbramc / detail
- Update ESPFLIBS for ubsan — galbramc / detail
- Another viggen update — galbramc / detail
- Enable viggen Memcheck and Undefined — galbramc / detail
- Switch back to bash on viggen — galbramc / detail
- Update ESPbft.tgz — galbramc / detail
- Remove anaconda from Windoze Env — galbramc / detail
- Correct python version on viggen — galbramc / detail
- Fix for viggen — galbramc / detail
- Upgrade to AFLR 10.17.5. Add DARWINM1 testing. — galbramc / detail
- One more try at Windoze — galbramc / detail
- Fix virtualenv on Windoze — galbramc / detail
- Also upgrade pip — galbramc / detail
- Try pip install multiple times — galbramc / detail
- Upgrade gcc version for sansLIP — galbramc / detail
- Suppress bash memory leak — galbramc / detail
- Suppress leak in sed — galbramc / detail
- Upgrade to libasan.so.6 — galbramc / detail
- Use gcc-11 for sanitizer — galbramc / detail
- fwrite valgrind suppression — galbramc / detail
- Fix typo — galbramc / detail
- Add valgrind to slugs testing — galbramc / detail
- One more memcheck fix — galbramc / detail
- Fix for MemcheckCaps — galbramc / detail
- Slugs fixes for sanitizer and valgrind — galbramc / detail
#31 (Aug 9, 2021, 3:53:53 PM)
#30 (Aug 9, 2021, 3:17:33 PM)
#29 (Aug 9, 2021, 2:41:41 PM)
#28 (Aug 9, 2021, 2:24:38 PM)
#27 (Aug 9, 2021, 2:03:24 PM)
- Update FORTRAN Makefiles to link statically on M1s — haimes / detail
- small updates to be consistent with recent EGADS changes — jfdannen / detail
- Fix last commit — galbramc / detail
- More numpu support in pyCAPS — galbramc / detail
- Reduce verbosity of cCAPS examples — galbramc / detail
- Add miscTypes.h to includes for Windoze — galbramc / detail
- fix bug in Slugs associated with recent EGADS topology changes — jfdannen / detail
- Fixes for Python 2 — galbramc / detail
- Yet again changes to the volume mesh writer interface — haimes / detail
- Add some pyCAPS tests and format fixes. — galbramc / detail
- Add the AIM utility function aim_symLink — haimes / detail
- Set up data structures to handle CFD volume meshes — haimes / detail
- meshTypes.h now needs miscTypes.h — galbramc / detail
- Add groupMap to meshStruct. Fix Pointwise analyzer warning. — galbramc / detail
- Internalize the dynamic loader for mesh writing — haimes / detail
- More auto execution fixes — galbramc / detail
- Put back circular auto-exec test — haimes / detail
- Training fixes and auto execution script adjustments — galbramc / detail
- Implement 3D mesh writer interface — haimes / detail
- Missed test_astros — galbramc / detail
- Auto execution for astros, mystran, and tsfoil — galbramc / detail
- lint fix — galbramc / detail
- Fix last commit. Add delaundo auto execution. Updated documentation for auto execution. — galbramc / detail
- NMakefile fix — galbramc / detail
- Enable auto execution for awave and friction. Fix def files. — galbramc / detail
- Enable auto execution for avlAIM. Add def files to NMakefile dependencies. — galbramc / detail
- Fix xfoil def file. ifdef out proactive code in postAnalysis. — galbramc / detail
- Auto execute xfoil — galbramc / detail
- I guess variParam does not work... — galbramc / detail
- Fully enable AIM auto execution. Updated all new pyCAPS scripts with auto execution. Add OmlWake view. — galbramc / detail
- Allow Problem owned Value objects to be ignored when collecting AIMs to auto-execute — haimes / detail
- Allow skipping first analysis with autoexec — galbramc / detail
- Don't include ourselves in the list of analysis objects to auto-exec in preAnalysis — haimes / detail
- Add the auto-execution ability in caps_preAnalysis — haimes / detail
- Update caps_transferValues to do auto-execution — haimes / detail
- Add transferValues tests including incorrect transfers — galbramc / detail
- Remove redundant code from caps_transferValueX — galbramc / detail
- Working towards auto execution — galbramc / detail
- ifdef strict analysis checking for pre/post — haimes / detail
- Auto-exec functioning WRT getting AnalysisOut (simple testing) — haimes / detail
- Add geometric design variable to fun3d sensitivity testing — galbramc / detail
- Undebugged additions to allow for auto-execution — haimes / detail
- Fix training solution example — galbramc / detail
- Some more pyCAPS unit tests — galbramc / detail
- Updates training in response to questions. Remove old 2018 training files. — galbramc / detail
- Add autoexec flag to analysis struct & API — haimes / detail
- Fix for multiple : in CSM variable. More testing of changing DIMENSION sized variable. — galbramc / detail
- Provide initial exec value in caps_makeAnalysis — galbramc / detail
- Fix last commit and update CAPSapi for allowing not to auto-exec — haimes / detail
- Fix error handling during caps_execute — haimes / detail
- Add tetgen.h Makefile dependency — galbramc / detail
- Lint fix — galbramc / detail
- Fix for using partial array in caps_setValue. Exlicilty list Legacy tests. — galbramc / detail
- Move towards the new AIM execution model — haimes / detail
- Documentation changes to support new AIM execution model — haimes / detail
- Fix ctypes type declarations — galbramc / detail
- Fix su2 surface monitoring error message — galbramc / detail
- Reduce mesh size — galbramc / detail
- Minimal pyCAPS numpy support. Other small fixes. — galbramc / detail
- Fix for mingw64 — galbramc / detail
- One more lint fix — galbramc / detail
- Stanalizer fix — galbramc / detail
- Stanalizer fix. Don't try to build STATIC geometry. Update session05 training solutions to new pyCAPS. Tuple values are always json strings. Reduce run-time for some examples. — galbramc / detail
- Fix last commit — galbramc / detail
- Fix removal of BRNACH value objects. Various error handling improvements. — galbramc / detail
- Remove Branches as Problem Value Objects — haimes / detail
- Copy meshTypes.h on Windoze — galbramc / detail
- Add SU2 download instructions to session01 — galbramc / detail
- Updated Pointwise instructions for Windows — galbramc / detail
- Minor edits on first session of training — haimes / detail
- Add missing training image — galbramc / detail
- Add despmtr.keys examples to training — galbramc / detail
- Edited script to demo [Input_String] usage — nitin / detail
- Muted non-essential variables for SU2-Blackbird, added Math_Problem variable — nitin / detail
- Fix training file — galbramc / detail
- Add bodies and writeParameters examples to training. Minor SU2 cleanup. Fix another g++ varaidic macro warning. — galbramc / detail
- CAPS training update (mostly complete). Pointwise glyph fixes. Additional su2AIM inputs. More error handling. Varaidic macro fix for g++. — galbramc / detail
- Training updates — galbramc / detail
- Training updates. Added CAPSflyer — galbramc / detail
- Training updates. pointwiseAIM unit bug fix. More error handling. — galbramc / detail
- Uprev to 1.20 — haimes / detail
- Fix pointwiseTest — galbramc / detail
- Training updates. Small dox fixes. AFLR4 error message fix. — galbramc / detail
- Fix Makefile — galbramc / detail
- Some more dox fixes. Remove incomplete su2Test.c — galbramc / detail
- add RPATH to Makefile — jfdannen / detail
- More dox fixes — galbramc / detail
- Missed one more doxygen configuration change — galbramc / detail
- Minor dox fix — galbramc / detail
- dox fixes — galbramc / detail
- Fix aflr4 NMakefile — galbramc / detail
- Missed some legacy SU2 updates to Falcon — galbramc / detail
- Update to AFLR 10.15.6 — galbramc / detail
- Update cCAPS example with Blackbird — galbramc / detail
- Fix SU2 Blackbird data transfer — galbramc / detail
- Fix memory leak. Upgrade to SU2 Blackbird — galbramc / detail
- mystran fix — galbramc / detail
- Fix for delaundo — galbramc / detail
- Fix last commit — galbramc / detail
- Fix legacy test — galbramc / detail
- Revert AFLR version number — galbramc / detail
- Update all examples with new pyCAPS. Fix latex dox. Various other small fixes. — galbramc / detail
- Minor edits to AFLR4 AIM NMakefile — haimes / detail
- Fix aflr4AIM NMakefile for AFLR 10.15.3 — galbramc / detail
- Updated default variables (temperature and viscosity were missing when not set as input)
— nitin / detail - Allow .s in AIM (and other) names — haimes / detail
- Updated config file generator for SU2-7.1.1
— nitin / detail - Update the docs to be consistent with the last commit — haimes / detail
- Rename getDot, hasDot, DoubleDot to getDeriv, hasDeriv and DoubleDeriv. Update AFLR examples for new pyCAPS. — galbramc / detail
- Doc update — haimes / detail
- Remove non-ASCII charachter — galbramc / detail
- Initialize GeomOut Value Objects with the type DoubleDot — haimes / detail
- Update aflr4 NMakefile — galbramc / detail
- Missed on computeDot. Improved error message. — galbramc / detail
- Upgrade to AFLR 10.15.1 — galbramc / detail
- Remove and rename some of the sensitivity functions in CAPS and the AIMs — haimes / detail
- Remove caps_sensitivity from pyCAPS — galbramc / detail
- Remove caps_sensitivity from pyCAPS — galbramc / detail
- Doc updates and change of API signature — haimes / detail
- Update training examples — galbramc / detail
- Fix static analyzer report — haimes / detail
- Call createTree with python3 as well — galbramc / detail
- Fix warnings — galbramc / detail
- Remove capsOwn argument from caps_postAnalysis — galbramc / detail
- Update pyCAPS with last commit. Change lists of tuples to dictionaries. Add units to aim_getDataSet. Various other updates. — galbramc / detail
- CAPS API is now fully consistent with the documentation (history functions were the last) — haimes / detail
- Fix IsNull in aimCalcOutput for fun3dAIM — galbramc / detail
- Add caps_runAnalysis to caps.h. Update caps_getBodies in pyCAPS — galbramc / detail
- Allow for Geometric and Tessellation sensitivity DataSets; update caps_getBodies signature; implement caps_resetAnalysis, caps_runAnalysis & caps_checkAnalysis — haimes / detail
- Add writeParameters and readParameters to problem.geometry — galbramc / detail
- Update training testing script — galbramc / detail
- Cleanup some of the C testers to be consistent with the new CAPS — haimes / detail
- Training update — galbramc / detail
- Move errors reported to standard out to the error structure — haimes / detail
- Prepare the C testers to deal with the error return structures — haimes / detail
- Update legacy test due to new use of units — galbramc / detail
- Clean up some error returns — haimes / detail
- Oops -- try again — haimes / detail
- Do not allow for spaces in the Problem path — haimes / detail
- Fix test — galbramc / detail
- Update session02 training — galbramc / detail
- Update pyCAPS with API changes — galbramc / detail
- Missed C code in the training — haimes / detail
- CAPS API signature changes -- this will break pyCAPS — haimes / detail
- Update openmdao with executing linked analysis — galbramc / detail
- Update trainig solutions — galbramc / detail
- I guess a sphere just isn't always a sphere — galbramc / detail
- Remove one assert — galbramc / detail
- Relax tolerance — galbramc / detail
- One more training file update — galbramc / detail
- Add an @paramter sensitvity test — galbramc / detail
- Update some training exampels with units. Update aim unit tests. Add masstran MassProp output. — galbramc / detail
- Add support (back) for OpenCSM Constant Parameters — haimes / detail
- Dissable d3 as it has invalid charachters. Update fun3dNamelist with latest cython. Update some aim unitTest. Fix training session01 units. — galbramc / detail
- caps_dirtyAnalysis now follows links and orders the returned list — haimes / detail
- Maybe fix Windoze problem — galbramc / detail
- avlTest fix. Stanalizer fix. Add back CAPS_BATCH to dissable viewing geometry with testing. — galbramc / detail
- Mostly add back openmdao. Update avlAIM with unitSys. Add aim_newAnalysisIn. — galbramc / detail
- Add environment check for continuation on caps_open — haimes / detail
- Stanalizer fix — galbramc / detail
- openmdao examples — ryan / detail
- Fix for Windoze — galbramc / detail
- Add signal handling to pyCAPS. Allow all BC type sepcificsions in AFLR3. More error handling in AIMs. — galbramc / detail
- Run journal at restart only to the last successful API call — haimes / detail
- First successful journal restart — haimes / detail
- Add new functions and correct misc problems — haimes / detail
- Can now start a new phase from one that is closed — haimes / detail
- Closer to full Phase restart — haimes / detail
- Can restore state from files; having problems filling aimDiscr — haimes / detail
- Make writing restart txt files immune to cntrl-c — haimes / detail
- Fix last commit — haimes / detail
- Add EGADS model output to journalling for functions that return Bodies — haimes / detail
- First implementation of reading back saved state — haimes / detail
- Fix for lists of tuples — galbramc / detail
- Update/modernize the AIM tester — haimes / detail
- Fix testing aim — galbramc / detail
- Fix caps_refillBound memory leak. Use analysis tessellations to trigger caps_refillBound. — galbramc / detail
- Remove capsDataSet dflag. Rename internal caps_fillVertexSets to caps_buildBound. Cleanup caps_postAnalysis. — galbramc / detail
- Set Tuple length before writing value output in the journal — haimes / detail
- Fix analysis clean check with data transfer — galbramc / detail
- Fix memory leak — galbramc / detail
- Warning fixes — galbramc / detail
- Lint fix — galbramc / detail
- Remove caps_fillVertexSets — galbramc / detail
- Plug memory leak — galbramc / detail
- Lint fix — galbramc / detail
- Forgot def file. Fix warning. — galbramc / detail
- Refactor data transfer to use caps_linkDataSet. Rename caps_makeLinkage to caps_linkValue, and caps_completeBund to caps_closeBound. — galbramc / detail
- add unit dox to su2AIM — ryan / detail
- New caps_makeDataSet and caps_linkDataSet doc. — galbramc / detail
- Update caps.def with caps_linkValue. Change arguments to caps_close. — galbramc / detail
- scan-build fixes — galbramc / detail
- Change caps_makeLinkage to caps_linkValue. Add irow and icol arguments it caps_linkValue (not implemented). — galbramc / detail
- Lint fixes — galbramc / detail
- Update capsValue.dim in caps_sizeCB. Add unitSys to SU2. Allow caps.open ptr be str, bytes, or unicode. Update su2_and_AFLR4_AFLR3_PyTest.py with new pyCAPS. — galbramc / detail
- Invoke calcOutput during last Post for an Analysis Object during restart — haimes / detail
- Fix attrBy functions for journalling — haimes / detail
- Almost done with implementation of journalling — haimes / detail
- Fix stanalizer warning — galbramc / detail
- Fix warning — galbramc / detail
- Forgot def file — galbramc / detail
- Remove debug code — galbramc / detail
- Lint fixes — galbramc / detail
- Add more unit functions and refactor Unit and Qunatity classes in caps.py — galbramc / detail
- More restart edits — haimes / detail
- More restart changes — haimes / detail
- Add missing free — galbramc / detail
- Scan build fix — galbramc / detail
- Tripped up by my own checks — galbramc / detail
- Relax tolerance — galbramc / detail
- Warning fix — galbramc / detail
- Lint fixes — galbramc / detail
- Fix link error — galbramc / detail
- Add aimInfo to aimInitialize. Add example of specifying unitSystem for masstranAIM. Add some units to fea_getMaterial and fea_getProperty. — galbramc / detail
- Hold on to pointers during a restart — haimes / detail
- Add missing legacy viewGeometry. Add pyCAPS.setLegacy to dissable deprecation warnings. — galbramc / detail
- Python 2 fix. Consistent dict keys for attrMap and bodies — galbramc / detail
- Make sure caps_close is called for legacy test — galbramc / detail
- Add legacy testing directory. Update pyCAPS based in feedback. — galbramc / detail
- Some more journal additions — haimes / detail
- Fix fun3d test — galbramc / detail
- Minor corrections to pass scn-build — haimes / detail
- Dissable fun3dNML error test for now — galbramc / detail
- Don't cleanup fun3d for now — galbramc / detail
- Fix allocation error — galbramc / detail
- Initialize utsystem in caps_unitParse — galbramc / detail
- Close problem before removing directoies with aim unitTests — galbramc / detail
- Python 2 fixes — galbramc / detail
- Switch to new pyCAPS interface as default — galbramc / detail
- Fix up error condition on close with the Journal file — haimes / detail
- Begin Journalling additions — haimes / detail
- Remove Bound name from restart file hierarchy and complete first pass at saving away the CAPS objects to disk — haimes / detail
- Fix all aim lint 'nullderef' warnings — galbramc / detail
- Fix static analyzer warning — haimes / detail
- More new restart changes — haimes / detail
- Allow for relative paths; more work on restarts — haimes / detail
- Fix hsm — galbramc / detail
- One mure nullVal fix — galbramc / detail
- Fix array size — galbramc / detail
- Fix mystranAIM Mesh input — galbramc / detail
- Stanalier fix — galbramc / detail
- More checks of Value Objects. More checks in get/set Value. Remove setting capsValue.length in AIMs. — galbramc / detail
- Fix file close under error — haimes / detail
- Remove invalid charachters in legacy analysis directories — galbramc / detail
- Remove Value Object names from restart file structure — haimes / detail
- Update unit test — galbramc / detail
- Fix typo — galbramc / detail
- Also guard against csm variables with '@' — galbramc / detail
- Try again to handle : in OpenCSM DESPMTRs — haimes / detail
- Try to handle : in OpenCSM DESPMTRs — haimes / detail
- Writing out NULL dots -- bypass for now — haimes / detail
- Begin to populte the new restart disk mirroring — haimes / detail
- Add new experimental pyCAPS interface — galbramc / detail
- Do not open the cpc file — haimes / detail
- Fix tester — haimes / detail
- Remove caps_save and prepare for the new restart — haimes / detail
- Remove caps_save from pyCAPS — galbramc / detail
- Try to fix last commits warnings — haimes / detail
- Implement the scratch phase for non-production — haimes / detail
- Index fix — galbramc / detail
- Workaround to allow legacy workDir specifications — galbramc / detail
- Trap interrupts and implement lock file — haimes / detail
- Fix aim_system — galbramc / detail
- Tested Bob's changes to directory management — galbramc / detail
- lint fixes — galbramc / detail
- cart3d and fun3d fixes — galbramc / detail
- Remove all chdir amd add more aim I/O functions — galbramc / detail
- Fix warning from last commit — haimes / detail
- Remove Value of Value Objects — haimes / detail
- Lint fixes on the last commit — haimes / detail
- Added functions for file open and system executions — haimes / detail
- More warning fixes — galbramc / detail
- Warning and nmake fix — galbramc / detail
- Warning fixes — galbramc / detail
- Fixes for testing AIM — galbramc / detail
- Refactor CAPS directory structure. Add caps_getRootPath. — galbramc / detail
- Fix lint abort — haimes / detail
- Add file functions to the base and setup for locking — haimes / detail
- lint fix — galbramc / detail
- Refactor caps_open. Fixes to caps_dupAnalysis. — galbramc / detail
- Add fflush to stdout after calls to OpenCSM — haimes / detail
- Fix warning — galbramc / detail
- One more compile fix — galbramc / detail
- Lint and compile fix — galbramc / detail
- Remove analysis parents. analysisDir must now be unique. — galbramc / detail
- Documents updated — haimes / detail
- lint fix — galbramc / detail
- Use EGADS+TetGen instead of AFLR4+AFLR3 — galbramc / detail
- Maybe AFLR is segfaulting... — galbramc / detail
- Plug more memory leaks — galbramc / detail
- Fix string memory leak — galbramc / detail
- Path fixes — galbramc / detail
- Fix aim test and lint — galbramc / detail
- Remove aimUsesDataSet. Refactor aimInitialize. pyCAPS updates/refactoring. — galbramc / detail
- fix Slugs Makefiles for c++ — jfdannen / detail
- Link wvServer code with C++ — haimes / detail
- lint fix — galbramc / detail
- Minor corrections to API doc — haimes / detail
- Remove 'CAPS Info: No symbol' message. Suppress scan-build warning. — galbramc / detail
- Remove aimData. Better Python 2 string compatability. — galbramc / detail
- Fix def file — galbramc / detail
- Fix aflr3 bug — galbramc / detail
- lint fixes — galbramc / detail
- Refactor parent/child to use links instead — galbramc / detail
- Additional Value Pointer corrections — haimes / detail
- Fix tess delete. Fix value init. Suppress clang++ warning. Remove redundant build. — galbramc / detail
- Additional Value Object Pointer changes — haimes / detail
- Additional Value Object pointer fixes — haimes / detail
- Get linkages functioning with Pointer-type Value Objects — haimes / detail
- Remove static size in array, should be dynamically allocated — galbramc / detail
- Lint fix — galbramc / detail
- Fix memory leaks — galbramc / detail
- Don't allow integer or boolean with units. Return and accepr Units in caps.py. — galbramc / detail
- Missed a typo — galbramc / detail
- Undo accidental commit — galbramc / detail
- Fixes for cCAPS examples — galbramc / detail
- Lint fixes — galbramc / detail
- Forgot def file — galbramc / detail
- Update legacy training — galbramc / detail
- Refactor set/get Value — galbramc / detail
- Fix last commit — galbramc / detail
- Update get/set Limits — galbramc / detail
- Fix deprecation warnings — galbramc / detail
- One more memory leak — galbramc / detail
- Fix memory leak — galbramc / detail
- Fix bug in last commit — galbramc / detail
- Update training execution script — galbramc / detail
- Lint and memcheck fixes — galbramc / detail
- Fix Windoze warning — galbramc / detail
- Python 2.6 fix and Windoze fix — galbramc / detail
- Python 2 fixes — galbramc / detail
- Don't compile pyCAPS on windoze — galbramc / detail
- Forgot Windoze — galbramc / detail
- New ctypes implementation of pyCAPS — galbramc / detail
- New ifort updates — haimes / detail
- CAPS API document startup options — haimes / detail
- API doc update; Allow only certain Value Objects to set attributes — haimes / detail
- 1-to-1 CAPS Python API. More unit tests. — galbramc / detail
- caps_completeBound bug fix. More ctype pyCAPS testing. — galbramc / detail
- Minor updates to last commit — haimes / detail
- Fix warning and Windoze def file — galbramc / detail
- Lint fixes — galbramc / detail
- Initial attempt at new ctypes CAPS API. Added caps_build for more just int time builds. Updated doc. — galbramc / detail
- changes to get around false-positives produced by stanalizer — jfdannen / detail
- Fix data transfer bug — galbramc / detail
- Yet again another try at a scan-build fix — haimes / detail
- Another try at a scan-build fix — haimes / detail
- Another scan-build fix — haimes / detail
- Minor doc updates — haimes / detail
- Possible new aim function — galbramc / detail
- Lint fixes — galbramc / detail
- Refactor CPAS management of tessellations. — galbramc / detail
- Update AIM docs to reflect new Tessellation Object handling — haimes / detail
- A few more Stanalizer fixes — galbramc / detail
- More stanalizer fixes — galbramc / detail
- scan-build fixes — galbramc / detail
- lint fixes — galbramc / detail
- Fix memory leak in aimTransferUtilTest — galbramc / detail
- Splint config update — haimes / detail
- Forgot Windoze def files — haimes / detail
- Internalize capsDiscr cleanup — haimes / detail
- Documentation update — galbramc / detail
- Allow for multiple bodies in data transfer — galbramc / detail
- Minor AIM doc updates — haimes / detail
- Fix bugs in skeletonAIM. Updated doc. — galbramc / detail
- Lint fixes — galbramc / detail
- Another AIM refactoring pass — haimes / detail
- Add includes target — galbramc / detail
- Update CAPS API Makefile — haimes / detail
- And one more warning fix — galbramc / detail
- Makefile fix — galbramc / detail
- One more warning fix — galbramc / detail
- Fix memory leak — galbramc / detail
- Missed some warnings — galbramc / detail
- Fix warnings and Windoze link error — galbramc / detail
- Refactor capsDiscr data structure. Add lint target to makefiles. — galbramc / detail
- Update AIM docs — haimes / detail
- Add clang static analysis — galbramc / detail
- Fix enum/variable clashing in aflr4_Interface — haimes / detail
- Refactoring of the AIMs — haimes / detail
- more fixes to accomodate changes in EGADS — jfdannen / detail
- small updates to be consistent with recent EGADS changes — jfdannen / detail
- initial version of serveESP; reorganize udp.c to serve as a pattern for serveESP — jfdannen / detail
- improve accuracy of udpFreeform; update associated verification data — jfdannen / detail
- add PLUGS_CREATE_EGADS_FILES to serveCSM; add more info to plugs.hist fille; add data/plugs/showHistory.csm to help debug operation of Plugs; change number of reclassified points in Plugs to be the larger of 5 and a fraction of area associated with a Face — jfdannen / detail
- more protections in plugs for cases with unclassified points — jfdannen / detail
- fix plugs bug for unclassified points during reinitializati9on; make plugs1c as expected failure (for now) — jfdannen / detail
- fix bug in Slugs associated with recent EGADS topology changes — jfdannen / detail
- fix possible NULL-dereference flagged by stanalyzer — jfdannen / detail
- fix non-initialized warning message — jfdannen / detail
- fix CONNECT errors associated with non-contiguous Faces; add connect7f test case; preserve orientation of Faces during EXTRACT; add extract4 test case; add sketch11* test cases; do not include SSLOPE statments when determining if Sketch points are co-planar; update OpenCSM to account for EGADS changes associated with making Faces and degenerate Edges — jfdannen / detail
- significantly speed up recycling — jfdannen / detail
- Allow static builds — haimes / detail
- fix typo in previous commit — jfdannen / detail
- update droopInlet* test cases to use slpfact=-1; compute mass properties only when needed; add warnings when recycling stops — jfdannen / detail
- match slopes and curvatures at seams in UDP supell when slpfact<0; broadcast view matrix to partners when cursor leaves canvas before mouse up event; reorganize mass property calculations — jfdannen / detail
- fix bug that did not readjust the level when returning from a UDC; fix bug when the last line of a UDC (without an END statement) calls a UDC (with an END statement); add supell7* test cases — jfdannen / detail
- fix First and last Node warnings associated with COMBINE and with esa_logo — jfdannen / detail
- fix bug associated with -dxdd option (incorrectly wrote .tess file instead of .sens file); add mechanism2 test case; add esa_logo test case; add normals to output from EVALUATE FACE command; when SUBTRACTing co-planar SheetBodys, make sure result has same normal as the outer SheetBody; add subtract6j-k test cases; allow -dxdd option to be applied to subscripted DEPMTRs; fix memory leak associated when COMBINE closes a WireBody in order to make a SheetBody; add plotting of normals to DisplayType — jfdannen / detail
- add ability to print call history during sensitivity calculations; add stickFuselage test case; extend COMBINE command to close WireBody if needed; add combine8* test cases; add splitFlap2* and splitFlap3* test cases; extend CONNECT to work with WireBodys — jfdannen / detail
- fix bug when starting serveCSM on Windoze from an .egads, .igs, or .stp file for filename with backslashes; add autoStart test case — jfdannen / detail
- fixed adjoint calculations in massProps; add adjoint* test cases; add testAdjoint target to Makefile.DARWIN64; fix token parsing associated with DOS CR (carriage return) in udpWaffle and udfEditAttr; update tessellation sensitivity verification data; fix bug in mass property derivatives; update sew1, sew2, and import5 to account for improvements in IGES writer; add Curve, Pcurve, and Surface printouts to ocsmPrintEgo; add toler=0 argument to CONNECT command; break Makefile.DARWIN64 up so that test suite can be run in parallel — jfdannen / detail
- Fix typo in clean target — galbramc / detail
- fix bug in latest commit associated with calling a non-existant UDP/UDF; first version of massProps and adjointCSM — jfdannen / detail
- fix bug in latest commit associated with calling a non-existant UDP/UDF — jfdannen / detail
- add angle argument to applyTparams.udc; add .tParams attribute to Body too in applyTparams.udc; in udfSlices, if there is a .tParams attribute on the input Body, put it on the slices too; change message in udc loader for cases where file is not found (to avoid Jenkins false positive) — jfdannen / detail
- fix eqn2body.udc so that it warns (as oposed to errors) if a local variable is being overwritten; fix bug that prematurely exits if UDP does not exist and we are recycling — jfdannen / detail
- check if a user gave an illegal order to SUBTRACT; add eqn2body.udc and helix* and frustrum* test cases; fix bugs associated with SSLOPE statement (especially when a sketch is flipped); add sketch10* test cases; fix tolerance checking in sketch solvers; add theta[] argument to udpEllipse; add ellipse2 test case — jfdannen / detail
- upgrade to latest version ot Tblade3; fix a few typos in the documentation; update some training_2021 files; fix comments in contains.udc and overlaps.udc; add assembly3 and assembly4 test cases; allow CATBEG to catch overconstrained and underconstrained errors; generate underconstrained, overconstrained, or not_converged signals from CATEND; add sketch9* test cases; improve convergence tolerance in sketcher; fix sign of dip to minimize residual for S and R constraints in sketcher; ensure that sweep() function always gives sign that is the same as dab — jfdannen / detail
- add Makefile.DARWIN64.gcc for testing with gcc-10; modify testing procedure to also test against gcc-10; fix memory error associated with reordering senses in loops (inletWithWalls1); fix seg fault if order in INTERSECT is given with leading dollar-sign; check that only valid order are given; fix test cases that used invalid order — jfdannen / detail
- improve speed of udfEditAttr and udpWaffle (on LINUX) when script is very long — jfdannen / detail
- uprev to v1.20 (ESP.html, ESP-localhost.html, ESP-help.html, OpenCSM.h, ocsm.rc); fix ESP Hint associated with CONNECT command; extend CONNECT so that it can CONNECT Faces in a single Body if there is a Mark before the last SolidBody; improve detection of matching Edges in CONNECT; add inletWithWalls* test cases — jfdannen / detail
- fix core dump if opening file in ESP without a filename; fix bug in ESP that made commands not available if File->Open had more Branches than previous model; add description of MessageWindow background colors in Tutorial 1 — jfdannen / detail
- fix error when drawing outline in StepThru mode — jfdannen / detail
- change DisplayFilter so that it posts help via an alert instead of the MessageWindow; update all tutorials in ESP-help.html — jfdannen / detail
- do not allow editing of .udc in ESP unless there is a matching .csm or .cpc; if ocsmSave is called to write a .udc file but there is no matching UDPRIM statement, write a include-type UDC — jfdannen / detail
- allow selection of geometric and tessellation sensitivities for multi-valued DESPMTRs in ESP; update to tutorial files for cases when spindle is not created; fix coloring of children Branches when a DesignParameter is editted in ESP; first attempt at new tutorial descriptions — jfdannen / detail
- remove unneeded part of tutorial3 — jfdannen / detail
- RESTORE . (dot) now duplicates Body on top of stack; add restore2 test case; return an error from ESP if despmtr change is illegal (such as out of range); modify contains.udc and overlaps.udc so that they leave the stack unchanged; update ESP-help (except tutorials); update ESP_QuickReference — jfdannen / detail
- add ExpandAll/CollapseAll button in ESP to expand listing of Branches; fix coloring of some Branches in ESP TreeWindow — jfdannen / detail
- add imprint5 test case (which is expected to fail); move data/tutorial* to data/legacy/tutorial* — jfdannen / detail
- change the name of configuration sensitivities to geometric sensitivities — jfdannen / detail
- do not remove previous velocities if call to ocsmSetVel or ocsmSetVelD does not result in a change; fix bug in STORE when overwriting a storage location with a GROUP that contains a different number of Bodys; add group6 test case; fix bug that returned an error when IMPORTing an .egads file that contains a tessellation; add import8* test cases; fix bug in ocsmSave when writing .csm file that has UDPARG statements associated with a UDC; add save1 test case; add save2 test case to ensure that inline inputs to a UDP get saved correctly in ocsmSave; fix out-of-bounds bug when processing inline files associated with a UDP/UDF; change ocsmGetEgo so that it always returns the ego rather than a copy of the ego; add ocsmSetEgo to OpenCSM API, pyOCSM, and test_pyOCSM — jfdannen / detail
- update verification data for parsec2* on 7.3.1; update udpWaffle to get its file from a stream; add waffle9b test case; update udpBezier to get its file from a stream; update udpFitcurve to get its file from a stream; modify fitCurve6* test cases; update udpFreeform to get its file from a stream; update udpNurbbody to get its file from a stream; add more nurbbody* test cases — jfdannen / detail
- minor changes to Makefile.DARWIN64 and Makefile.LINUX64 — jfdannen / detail
- Update updParsec include dependencies — galbramc / detail
- update udpParsec; update parsec test cases; add designR* test cases; in removeVels, remove sensitivity cache for any Body created by a UDPRIM (since we do not know what was done inside the UDP) — jfdannen / detail
- add lock in serveCSM so that browser messages do not interfere with each other when there are multiple browsers; update pyOCSM for latest Windoze/Python 3.9 change; fix SOLBEG iteration message; fix bug in ocsmGetTessVels that did not rebuild perturbation for cases where a UDPARG contained an argument that could not be computed analytically; add more droopInlet* test cases (rounded inlets); add appliedLate test case to show how to apply chamfers and fillets at the end of the build process; fold case in argument names to UDPARG and UDPRIM — jfdannen / detail
- add lock in serveCSM so that browser messages do not interfere with each other when there are multiple browsers; update pyOCSM for latest Windoze/Python 3.9 change; fix SOLBEG iteration message; fix bug in ocsmGetTessVels that did not rebuild perturbation for cases where a UDPARG contained an argument that could not be computed analytically; add more droopInlet* test cases (rounded inlets); add appliedLate test case to show how to apply chamfers and fillets at the end of the build process; fold case in argument names to UDPARG and UDPRIM — jfdannen / detail
- extend ocsmGetEgo to allow EBody or tessellation on EBody to be returned; add options to udpSupell to get better end-slopes, which is sometimes needed for very large n abd high apsect ratios; add droopInlet* test cases; fix memory leak in sensCSM -tessel — jfdannen / detail
- fix memory leaks in udfFlend — jfdannen / detail
- more improvements to ESP collaboration — jfdannen / detail
- update IMPORT to use tessellation if .egads file contains one or more tessellations; update UDPRIM to use tessellation if returned model contains one or more tessellations; fix bug in ocsmPrintEgo for cases where MODL contained a TESSELLATION or EBODY; fix memory leaks in udfFlend; improvements to multi-user collaboration — jfdannen / detail
- change all wv_sendText to wv_broadcastText in serveCSM — jfdannen / detail
- signal an error when attempting to EXTRACT a degenerate Edge; fix bug in JOIN if toMark is set but there is only one Body after the mark; fix Tblade3 cases that use flends; fix bug in flend that caused out-of-bounds error; first cut at multi-user collaboration in ESP — jfdannen / detail
- update wingStruct test cases to use JOIN instead of UNION; add many more flend* test cases; add ability to apply flend to a single Body; update flend to work even in cases where tangent vectors are (anti-)parallel — jfdannen / detail
- fix bug in ocsmCopy to not malloc when minline=0 — jfdannen / detail
- fix bug in ocsmCopy to not malloc when minline=0 — jfdannen / detail
- fix warning message in udfSlices — jfdannen / detail
- add udfSlices; add slices* test cases — jfdannen / detail
- fix recently-added bug that did not put attributes on a Body that was recycled via -loadEgads; fix bug in computing tessellation sensitivity at endpoints of Edges; fix allocation bug in sensCSM -tessel; update some .tsen files; fix bug in udfNuscale that caused an abort if input was a FaceBody; add nuscale4 test case; compute tessellation sensitivities for EBodys — jfdannen / detail
- revise Makefile.DARWIN64 so that target testESP tests -dumpEgads and -loadEgads — jfdannen / detail
- add more DEBUG information in udfEditAttr; add testBasic2 target in Makefile.DARWIN64; fix bug that wrote Body_xxxxxx.egads file twice if from a UDF; fix bug associated with Edge attributes when Body was recycled via -loadEgads; update to udfEditAttr to account for the fact that windoze does not properly handle ftell() and fseek() if file is opened for read in text mode — jfdannen / detail
- add more info in key window printout when in ESP-sketch; update Makefile.LINUX64 for use on new ubuntu 20.04 system — jfdannen / detail
- simplify udfEditAttr code to accomodate stanalyzer — jfdannen / detail
- more useless guards to pass stanalyzer — jfdannen / detail
- remove dead code detected by stanalyzer — jfdannen / detail
- initialize fp to avoid warnings — jfdannen / detail
- allow color names to be specified in either lowercase or UPPERCASE; fix bug that improperly colored Edges after call to udfEditAttr; fix tessellation sensitivity bug along Edges; add creation of a logdist.plot file that contains triangles with the log(distance) at every Face tessellation point (blue=1e-12, red=1e-03) if sensCSM is called with the -tessel and -despmtr flags; add __hasC0blend__ Attribute so that finite differences are used for sensitivities if a C0 blend has been recycled; update .tsen files; allow UDP/UDF to get its << arguments from a stream instead of a tmp_OpenCSM_xx/yy file; add udpInline* test cases; allow udfEditAttr to get its file from a stream; fix bug that did not properly write inline files associated with a UDPARG statement — jfdannen / detail
- refactor (simplify) tessellation sensitivities code; update .tsen files; add designQ* test cases — jfdannen / detail
- add waffle9a test case — jfdannen / detail
- fix some minor bugs when compiling with GRAFIC; update ESP for recent change to WebViewer; update Makefiles for requirement to compile with c++; minor update to parka to eliminate warning with old gcc — jfdannen / detail
- Link serveCSM with C++ — haimes / detail
- fix important bug in tessellation sensitivities for Faces; allow configuration sensitivities on EEdges and EFaces; add more features to Erep Editor; add ereped5 test case; allow user to show either configuration or tessellation sensitivities in ESP (and make the -tessel flag obsolete in serveCSM); update .tsen files to be consistent with fixed bug in tessellation sensitivities — jfdannen / detail
- extend ocsmPrintEgo to work for EBodys, ...; add ocsmMakeEBody to OpenCSM API; next version of Erep Editor; add erapAtEnd flag so that ocsmBuild builds EBodys at end based upon _erepAttr and _erepAngle attributes; add new DisplayType in ESP to visualize EBodys if they exist — jfdannen / detail
- fix problems that were caused by incorrect fix of memory leaks in udfNuscale — jfdannen / detail
- fix memory leaks in udfNuscale — jfdannen / detail
- add udfPrintEgo to Makefile and NMakefile — jfdannen / detail
- first implementation of ErepEd; add ereped* test cases; add udfNuscale to non-uniformly scale a Body (after converting it to all BSPLINES); add nuscale* test cases; fix typo in GetUV in pyOCSM; add nasa_worm test case — jfdannen / detail
- issue error message if problem generating SPLINE with specified SSLOPE; fix bug associated with flipped Sketch containing an SSLOPE statement; add sslope5* test cases — jfdannen / detail
- New ifort updates — haimes / detail
- significant speedup in creating sceneGraphMetaData, especially for cases with many Faces and Edges — jfdannen / detail
- adjust tolerance for detecting colinear points in CIRARC in sketcher — jfdannen / detail
- (for now) disable _hist and __trace__ in Bodys that are returned from udpCsm (which means that we cannot get sensitivities on the Body returned from udpCsm); add etopo* test cases — jfdannen / detail
- add A12 to studentGallery — jfdannen / detail
- fix bug introduced in last attempt to get around false-positives in stanizer — jfdannen / detail
- another attempt to eliminate lint errors — jfdannen / detail
- update Makefile for lint options — jfdannen / detail
- another attempt to pass all Stanalizer tests — jfdannen / detail
- fix bug associated with CSYSTEMs that was introduced recently; a few more fixups to try to pass ESP_Stanalizer — jfdannen / detail
- fix bug introduced when making sure code was lint-free — jfdannen / detail
- fix SHOW_SPLINES so that grafic.h is not needed — jfdannen / detail
- many changes in order to pass lint and scan-build tests — jfdannen / detail
- Makefile lint updaate — haimes / detail
- add perturbations in Plugs when LM fails to help avoid local minima — jfdannen / detail
- Add includes target — galbramc / detail
- remove unused variables in udpProp in previous release — jfdannen / detail
- add udpProp and its test cases — jfdannen / detail
- fix bug in velocityOfNode for a RULE/BLEND with a rotated Xsect; fix typo in Edge tessellation sensitivities; fix affected .tsen files; fix bug that drew too many things when showing tufts for tessellation sensitivities — jfdannen / detail
- Put lint in Makefile for Linux — haimes / detail
- improve Plugs messages for outLevel 0 — jfdannen / detail
- enable more spline functions in RULE/BLEND sensitivities — jfdannen / detail
- Add clang static analysis — galbramc / detail
- add designP*d test cases; use new Node-only versions of EG_ruled and EG_blend; fix bug in Face orientation when SUBTRACTing two in-plane SheetBodys — jfdannen / detail
- fix warning messages generated by udpFitCurve, udpRadwaf, udpKulfan, and udfCatmull; remove __trace__ warning for Nodes in a REVOLVE since they might not exist in the SolidBody if they were on the centerline; do not run plugs if there is a pendingError; allow user to skip phase1 in Plugs; write plugs.despmtrs file at end of Plugs; remove perturbation process in Plugs since it did not work, especially for cases without LBOUNDs and UBOUNDs; fix bug when SWEEPing a WireBody; update sweep0a verification data; fix Edge blue/green coloring in ESP; update verification data for plugs1c, plugs4b, plugs7a, and plugs8a, since the results were close to the correct DESPMTRs — jfdannen / detail
- update Plugs verification data for 7.3.1; fix Slugs so that it no longer issues Face is Fixed messages — jfdannen / detail
- Specify static link of FORTRAN/gcc libraries — haimes / detail
- Fix EG_makeTopology(FACE) for Planar Surface with relaxed tolerances and fix for peridoic Edges — galbramc / detail
- Shield debug print statment with outLevel > 1 — galbramc / detail
- Fix scan-build warning — galbramc / detail
- Add EG_stack functions to def file — galbramc / detail
- Add testing EG_getTopology -> EG_makeTopology with _dot tests. Test context is empty when closed with _dot tests. Test bottom-up periodic Face construction with pyEGADS. Consistent tolerance check between BrepCheck_Edge and EG_makePCurve. EG_getTopology always returns NULL geom for DEGENERATE Edge. Fix EG_isSame for DEGENERATE Edges. Fix EG_copyGeometry_dot for DEGNERATE Edge. Remove DEGNERATE Curves in EG_traverseBody. Fix EG_makePCurves for periodic Edge. Remove modifying DEGENERATE input Edge in EG_makeTopolgy. Remove arbitrary tolerance increase in EG_getArea, EG_makeTopology(FACE), and EG_getUVInfo. EG_orientWire returns Face for efficiency. Fix geom reference for EG_makeFace(LOOP). Fix duplicate Makefile target. — galbramc / detail
- Fix for loop with single Edge — galbramc / detail
- Remove EG_flipObject(EDGE) from EG_ruled — galbramc / detail
- Makefile update for M1 — haimes / detail
- Config updates and removal of Edges from EG_filpObject — haimes / detail
- Fix max — galbramc / detail
- Fix tire.py — galbramc / detail
- Update pyEGADS for new EG_makeTopology(LOOP). Remove surface sensitvity for FACE in EG_setGeometry_dot(NULL). Use InifinitePoint check for wire orientation. Fix EG_makeFace_dot. — galbramc / detail
- cannot make TWONODE Edge if Nodes are the same; properly account for Loops senses when making Faces; fix EG_removeFaces to return error if remaining Faces are not contiguous — jfdannen / detail
- Fix Topology references when copying an EBody with different Body — haimes / detail
- Fix up copyObject with Tessellation Objects and EBodies also check that EBodies are closed — haimes / detail
- Update Windoze zlib to 1.2.11 — haimes / detail
- Add gprof config — haimes / detail
- Improve IGES reader to handle units; support changes EBody references during copyObject; Update docs — haimes / detail
- Fix redefined warning — galbramc / detail
- Fix flipObject for a Loop with SREVERSE edges created with makeTopology — galbramc / detail
- Added SINNER/SOUTER defines for FACE/SHELL senses. Updated docs for fixes to getArea/makeFace/makeTopology. Minor fix in blend/rule. — galbramc / detail
- Slightly better error message — galbramc / detail
- EGADSlite can now tessellate an EBody — haimes / detail
- Expanded Model now supported by EGADSlite — haimes / detail
- Flip not properly marking Loops as closed — haimes / detail
- Improve IGES export — haimes / detail
- Add EG_getTessFrame to expose the information for interior Face mappings — haimes / detail
- Fix of AFLR4 internal Edge use of setTessFace — haimes / detail
- Allow for output of setTess functions — haimes / detail
- Allow for multiple (more than 2) Loops touching a Node in setTessFace — haimes / detail
- NonManifold Nodes now functional in setTessFace — haimes / detail
- Fix Stanalizer warning — haimes / detail
- Almost have NonManifold Nodes working in setTessFace — haimes / detail
- Fix exportLite.mak — haimes / detail
- move towards full Model support in EGADSlite — haimes / detail
- rewrite of setTessFace to support internal Edges — haimes / detail
- Clarify .mixed for a single face with both triangles and quads. Uprev EGADS doc. — galbramc / detail
- Prepare EGADSlite for Effective Topology — haimes / detail
- Prepare EGADSlite for Effective Topology — haimes / detail
- Fix Stanitizer error — haimes / detail
- Improve Edge tessellation w/ arc length splitting — haimes / detail
- Uprev to 1.20 — haimes / detail
- update config and add attribute dup on EG_copyObject for tessellations — haimes / detail
- update README.txt — jfdannen / detail
- README updates — haimes / detail
- Update README — galbramc / detail
- Some Doc updates — haimes / detail
- Update PreBuilt READMEs — haimes / detail
- Update configure scripts and Fix seeding for inverse evaluations on toroidal surfaces — haimes / detail
- Try again to fix deleteObject on Model with Tess or EBody references — haimes / detail
- Revert last commit — haimes / detail
- Fix EG_deleteObject reference count for TESSELLATION & EBODY Objects in a Model — haimes / detail
- Update the error message in EG_imprint when EGADS fails and uses the OpenCASCADE method; also add a note in the documentation on this — haimes / detail
- Update the README for the next release — haimes / detail
- Generalize the last commit — haimes / detail
- Allow for getEdgeUV on single Face EFaces with Degenerate Edges, but not for multi-Face EFaces — haimes / detail
- Fix inverse evaluate on periodics where the Face limits are not in the periodic range — haimes / detail
- Fix py_to_c(takeOwnership=True) — galbramc / detail
- Update egads doc with py_to_c(takeOwnership=False) — galbramc / detail
- Add takeOwnership=False to py_to_c — galbramc / detail
- Add missing WIN32 dllexport — galbramc / detail
- UVMAP tester fix — haimes / detail
- Forget to change the UVMAP test code — haimes / detail
- Update UVMAP to the latest release — haimes / detail
- Remove old docs — haimes / detail
- Fix pyEGADS CDLL on Windows for Python >= 3.8 — galbramc / detail
- Fix warning generated when upgrading UVmap — haimes / detail
- Update UVmap for Effective Topology — haimes / detail
- Make tessellation handling more immune to bad topology — haimes / detail
- Properly delete scenegraph with multiple browsers — haimes / detail
- Fix segFault in EG_splitBody when given broken topology — haimes / detail
- Make sure the OCC Shape type does not change when fixing imported Bodies — haimes / detail
- Update EGADS API doc — haimes / detail
- Add undocumented EG_getTessEFace — haimes / detail
- Fix free on trmap in EG_destroyEBody — haimes / detail
- Add more tests — haimes / detail
- Allow EG_spline2dRaw to have fixed knot spacing — haimes / detail
- Only error out if the Loop's length differs — haimes / detail
- Fix scribe segFault; correct t value in multi segment EEdge — haimes / detail
- Configuration fix — haimes / detail
- Fix for Python 2.7 support — galbramc / detail
- Make getEdgeUV more consistent for EFaces with a single patch — haimes / detail
- rename callback in wv that can get called when scene is updated — jfdannen / detail
- Improve Effective Topology performance by walking the triangulation to find position — haimes / detail
- Fix Stanalyzer error — haimes / detail
- Update Effective Topology to all tolerances; fix sceneGraph call-back in wvServer; add map lookup in wvServer — haimes / detail
- add wvSceneUpdated() callback after scene graph has been updated — jfdannen / detail
- Reinstate EGADS_EXTRAPOL for EFace evaluations outside of the triangulation — haimes / detail
- Fix incorrect reference in a DEBUG block (stanalyzer has DEBUG on) — haimes / detail
- Refactor how Edges are internally handled in Effective Topology — haimes / detail
- Forget def file in last commit — haimes / detail
- Provide access to an EFace's triangles -- for sensitivities — haimes / detail
- Allow for return from makeAttrEFaces to be NULL — haimes / detail
- Better Python 2 string compatability — galbramc / detail
- Inform when an EEdge is rejected due to dihedral — haimes / detail
- Minor debug correction — haimes / detail
- Fix region checker for EEdges w/ multiple Edges in the (-) sense — haimes / detail
- Fix indexing problem in collecting Faces for makeAttrEFaaces — haimes / detail
- Fix indexing problem in collecting Faces for makeAttrEFaaces — haimes / detail
- Fix makeEFace with more than 2 ELoops — haimes / detail
- Prep for ESP beta — haimes / detail
- Config PYTHONPATH udpates. pyEGADS updates. doc updates for pyEGADS. — galbramc / detail
- Fix cases where DEGENERATE Edges end up without a tessellation; copyObject can now change the Body associted with a Tessellation; vAttr will use a stored Tessellation in the model — haimes / detail
- Adjust the ifort library dependencies — haimes / detail
- Finish the implementation of all Tessellation functions that support Effective Topology — haimes / detail
- Minor corrections — haimes / detail
- Fix last commit — haimes / detail
- Effective Topology tesselltion corrections — haimes / detail
- Cleanup up some closure issues in Effective Topology — haimes / detail
- Additional DEGENERATE EEdge updates — haimes / detail
- Fix t storage for DEGENERATE EEdges — haimes / detail
- Fix scan-build warning from last commit — haimes / detail
- Allow for retaining common attributes in Effective Topology merges — haimes / detail
- Fix ET BoundBox calculation; Update Edge Tesselltion for EBody; Document EG_getWindingAngle — haimes / detail
- Effective Topology: don't use Node positions when computing Edge winding angle — haimes / detail
- Full Attribution & Effective Topology — haimes / detail
- Fix ONENODE EEdge ELLOOP construction — haimes / detail
- Allow for wrap-around mappings assuming a single seam — haimes / detail
- Minor ET cleanup — haimes / detail
- Can now merge EEdges to make ONENODE — haimes / detail
- scan-build fixes — galbramc / detail
- stanalyzer corrections — haimes / detail
- Fix up wv_setKey from memory issues — haimes / detail
- Fix non-manifold initialization of UVs and reinstate the compute of 2nd derivatives for composites — haimes / detail
- Makefile lint updaate — haimes / detail
- Add includes target — galbramc / detail
- Add back rewind capabilities when removing Nodes in makeEFace — haimes / detail
- Make sure we have a valid EBody after an error in makeEFace — haimes / detail
- Put lint in Makefiles for Linux — haimes / detail
- Increase MSVC CPP optimization — galbramc / detail
- Fix copyEBody — haimes / detail
- Add clang static analysis — galbramc / detail
- mapBody correction for reversed Edges; fix up copyEBody; protect against multiple vertex mappings — haimes / detail
- Updaate the Docs — haimes / detail
- Slugs script updates — galbramc / detail
- Add Slugs testing scripts — galbramc / detail
- Only run plugs*.csm files for plugs — galbramc / detail
- Only run plugs*.csm files for plugs testing. — galbramc / detail
- plugs1c is not longer expected failure — jfdannen / detail
- Remove verbosity — galbramc / detail
- Finally fixed — galbramc / detail
- Getting closer — galbramc / detail
- what is going on... — galbramc / detail
- One more Plugs fix — galbramc / detail
- Update expectPLUGS script — galbramc / detail
- Windoze slashes — galbramc / detail
- Test plugs0 which is actually expected to pass — galbramc / detail
- Add numpy to venv for SU2 — galbramc / detail
- Plugs, not plugs — galbramc / detail
- Fix beta scripts — galbramc / detail
- mark plugs1c as expected failure (for now) — jfdannen / detail
- Catch tire errors on Windoze — galbramc / detail
- Update asan lib path — galbramc / detail
- Ignore pip timeout warning — galbramc / detail
- Of coarse, three slashes... — galbramc / detail
- Escape slashes on Windoze — galbramc / detail
- One more try at autoStart on windoze — galbramc / detail
- Update autoStart testing for Sanitizer and Valgrind — galbramc / detail
- Fix path for Windoze autoStart — galbramc / detail
- Fix autoStart testing — galbramc / detail
- Another valgrind supprsssion. Windoze fix — galbramc / detail
- Add autoStart testing for Sanitizer and Valgrind — galbramc / detail
- Add autoStart testing. Another OCC valgrind fix. — galbramc / detail
- Fix last commit — galbramc / detail
- Valgrind suppression fixes — galbramc / detail
- matplotlib valgrind suppressions — galbramc / detail
- Sanitizer suppressions — galbramc / detail
- Don't update Jenkins files in bfr — galbramc / detail
- Add Jenkins ESP_parse and ESP_email.template config files. Remove OCC 6.8 files. — galbramc / detail
- note that rocketnozzle1 and rocketnozzle2 are expected to fail — jfdannen / detail
- Update ESP_Beta testing. Add ESP_PreBuilt testing. — galbramc / detail
- Update to AFLR 10.15.6 — galbramc / detail
- SU2 path fix on macOS — galbramc / detail
- Correct SU2 path — galbramc / detail
- Upgrade to SU2 Blackbird — galbramc / detail
- Update to AFLR 10.15.3 — galbramc / detail
- Remove centOS68 if statements — galbramc / detail
- Remove 6.8 files, add legacy directory — galbramc / detail
- add imprint5 to list of expected failures — jfdannen / detail
- Upgrade to AFLR 10.15.1 — galbramc / detail
- change the name of configuration sensitivities to geometric sensitivities — jfdannen / detail
- Add pyOCSM to PYTHONPATH — galbramc / detail
- Update path to test_pyOCSM.py — galbramc / detail
- One more valgrind suppression — galbramc / detail
- Put back one suppression — galbramc / detail
- Suppress numpy memory leaks — galbramc / detail
- Fix setting memcheck and valgrind python — galbramc / detail
- Suppress python memory leak — galbramc / detail
- Suppress numpy memory leaks — galbramc / detail
- Add scan-build links — galbramc / detail
- Single PYTHON_VERSION for all Jenkins scipts — galbramc / detail
- Use python 3.8.9 — galbramc / detail
- Add --embed to python-config when appropriate — galbramc / detail
- Upgrade Python to 3.9.4 — galbramc / detail
- Python 2.6.6 is really dead — galbramc / detail
- Don't try to use Python 2.6 — galbramc / detail
- Fix script — galbramc / detail
- Run legacy pyCAPS tests — galbramc / detail
- Remove 2018 template_avl — galbramc / detail
- Enable python fault handler — galbramc / detail
- Don't try to compile IRIT when it does not exist — galbramc / detail
- Don't use Python 2.6 on CentOS 6.8 — galbramc / detail
- Don't run pointwise on commit — galbramc / detail
- Don't run on Python 2.6 — galbramc / detail
- Script fixes for rnning CAPS unit tests — galbramc / detail
- Minor beta fix — galbramc / detail
- One more path fix — galbramc / detail
- Path fix for Beta — galbramc / detail
- Update jenkins scripts for new pyCAPS — galbramc / detail
- Run pyCAPS unit tests with Sanitizer — galbramc / detail
- Fix PYTHONPATH — galbramc / detail
- Use new ctypes pyCAPS — galbramc / detail
- Upgrade ifort on Windoze — galbramc / detail
- Another Intel fix — galbramc / detail
- Missed sone intel updates — galbramc / detail
- Update intel compiler — galbramc / detail
- Remove scan-build directories if clean — galbramc / detail
- Remove CPATH for stanalizer — galbramc / detail
- Stanalier script fixes — galbramc / detail
- Stanalier script fixes — galbramc / detail
- Stanalier script fixes — galbramc / detail
- Add stanalizer script — galbramc / detail
- update Plugs expected failures and ignore list — jfdannen / detail
- update Plugs expected failures and ignore list — jfdannen / detail
- Fix known sense errors for Windoze — galbramc / detail
- Add known sensitivity failures — galbramc / detail
#26 (Jan 19, 2021, 11:47:20 PM)
- Add tests for makeTopology Face works with flipped Loop — galbramc / detail
- Do not use sense for makeTopology for FACE — galbramc / detail
#25 (Jan 19, 2021, 3:05:54 PM)
- fix Slugs problems that were introduced by recent changes in EGADS — jfdannen / detail
- return EXIT_FAILURE if there is a problem with the .csen or .tsen file in sensCSM; fix Slugs problems that were introduced by recent changes in EGADS; add holes test case for Slugs; add sense printout for Face children in ocsmPrintEgo — jfdannen / detail
- remove _hist and __trace__ attributes from Bodys when importing; update .csen and .tsen files for 7.4.1 for designP* test cases — jfdannen / detail
- Fix bug in call to velocityOfRange — galbramc / detail
- Warn and ignore incorrect single Loop sense in makeTopology. Check all Loop senses in makeTopology. — galbramc / detail
- Actually fix warning — galbramc / detail
- Update docs on saveModel — haimes / detail
- Fix warning — galbramc / detail
- ruled/blend with all NODE sections. Add Attr structures to pyEGADS. — galbramc / detail
#24 (Jan 18, 2021, 9:29:08 AM)
- change copyright notice to 2021 — jfdannen / detail
- Update copyright year — haimes / detail
- Minor AIM interface update — haimes / detail
- Update fun3D NML — galbramc / detail
- Remove AIM static storage — haimes / detail
- Fix up other aim def files — haimes / detail
- Fix up fun3dAAIM.def — haimes / detail
- New AIM API changes — haimes / detail
- Update CAPS docs to reflect the chnging code base — haimes / detail
- Update AIM doc's so AIM signatures do not explicitly return the Error Structure — haimes / detail
- Update AAPI docs — haimes / detail
- Fix divide by zero in conjGrad — haimes / detail
- Doc updates — haimes / detail
- Fix array out of bounds — galbramc / detail
- Fix memory leak — galbramc / detail
- Fix for convert_integerToString — galbramc / detail
- Add global memory storage for element gIndicies, dIndicies, and poly — galbramc / detail
- More Doc updates — haimes / detail
- Update caps_open docs — haimes / detail
- Fix for new consistnt JOIN operator with SHEETBODYs — galbramc / detail
- More memory leak fixes. Fix aim_FreeDiscr name conflict. — galbramc / detail
- Fix memory leaks and improve deprecation message — galbramc / detail
- Update training material — galbramc / detail
- Update regression tests — galbramc / detail
- Fix warning — galbramc / detail
- fix uninit. variable — ryan / detail
- fix of windows
— ryan / detail - fix python import
— ryan / detail - make analysis default function reentry — ryan / detail
- fix structural modeling — ryan / detail
- update of sensitivity testing
— ryan / detail - fixes — ryan / detail
- fixes — ryan / detail
- Fix Windoze compile errors — galbramc / detail
- fixes for mesh examples — ryan / detail
- add NULL check so util works with hsm and masstran — ryan / detail
- remove tempUtil.h reference — ryan / detail
- remove tempUtil.h reference — ryan / detail
- remove tempUtil.h reference — ryan / detail
- util functions — ryan / detail
- cfd aims — ryan / detail
- structural aims — ryan / detail
- *header.tex files — ryan / detail
- meshing aim updates — ryan / detail
- Minor format fixes — haimes / detail
- Another round of error handling — galbramc / detail
- More error handling updates — galbramc / detail
- Fix warning — galbramc / detail
- Updated new AIM error handling. Updted skeletonAIM with new error handling. — galbramc / detail
- fix unittests — ryan / detail
- pyCAPS bomb — ryan / detail
- Free partial before refilling the geometry output — haimes / detail
- Initialize analysis object in capsProblem correctly — haimes / detail
- Regenerate pyCAPS.c — galbramc / detail
- initialize members in makeSimpleErr — haimes / detail
- Some minor fixes — galbramc / detail
- First cut at storing the Errors in the aimInfo struct — haimes / detail
- Fix missing line continuation. — galbramc / detail
- Traning material updates. Minor formatting and typo fixes. Initial framework for new AIM error handling. — galbramc / detail
- Clang static analyzer corrections — haimes / detail
- update MALLOC and FREE to use EG_alloc and EG_free — jfdannen / detail
- Updated AIM to work with latest version of SU2 (7.0.7) — nitin / detail
- Testing & Fixup of GeometryOut dot handling — haimes / detail
- Fill Geometry Out sensivities — haimes / detail
- Update the docs so that they express our goal; implement most of caps_sensitivity — haimes / detail
- Setup for caps_sensitivity — haimes / detail
- Fix issue with size CallBack — haimes / detail
- Tester for variable length parameters — haimes / detail
- fix (recently-added) bug associated with skipping rebuild if there is an EVALUATE statement; improve cloud point reclassification process in Plugs; extend designP* test cases; fix propagation of .hasdots for cases with multiple RESTOREs; handle sensitivity case when WireBody is INTERSECTed or SUBTRACTed with a SolidBody; require finite-difference sensitivities for cases with EVALUATE statements; use internal _dots for Edges if it exists; compute sensitivities for BLEND of all NodeBodys; update .tsen and .csem files for all 7.3.1 and some 7.4.1 test cases — jfdannen / detail
- add designP* test cases; fix EXTRUDE/SCALE sensitivity bug; compute Edge and Node sensitivity directly for EXTRUDE; change sensCSM command line option from -addData to -addVerify; change sensCSM to only look at Edge and Face sensitivities at interior points; change serveCSM command line option from -sensTess to -tessel; get Edge and Node sensitivities directly from the source rather than from the Faces; simplify algorithm for find tessellation sensitivities on Edges; remove testing of Face normals and Segment direction in -tessel checks in sensCSM; fix numerous sensitivity bugs — jfdannen / detail
- add range to ocsmPrintBrep; refactor sensitivity code and remove redundant functions; update makeFace for upcoming EGADS update — jfdannen / detail
- Missed 2020 — haimes / detail
- change copyright notice to 2021 — jfdannen / detail
- add ocsmSetBnds to ocsm.def; update memory management in pyOCSM — jfdannen / detail
- fix memory leaks associated with deleting an Attribute or Csystem; move PrintEgo to top level in pyOCSM — jfdannen / detail
- do not check Body index in ocsmGetEgo is asking for context; fix memory management in pyOCSM — jfdannen / detail
- update 7.4.1 .csen files for design1b and design4 — jfdannen / detail
- rename designL3* and designL4* test cases until recursive RULEs/BLENDs can be properly handled — jfdannen / detail
- fix bug associated in sensitivities for SOLBEG/SOLEND — jfdannen / detail
- mark function argument as unused to avoid lint warning — jfdannen / detail
- update .csen data for 7.3.1 — jfdannen / detail
- minor comment updates — jfdannen / detail
- fix memory leak in ocsmLoadDict; add copyright statement to pyOCSM; fix a few problems in pyOCSM; remove all references to SUPIN from Makefiles — jfdannen / detail
- add studentGallery/espRacer; during sensitivities, get Edge history from adjoining Faces; fix bug that sometimes incorrectly set the .ibody or .iford for Edges; get velocity on Edges from PRIMITIVE or GROWN directly (ie, not via the adjoinig Faces); fix _edgeID for cases with a BOOLEAN after multiple RESTOREs; fix sensitivities for some cases with LINES; fix bug that occurred during a rebuild for a Parameter that was DIMENSIONed but not set; increase MAX_NAME_LEN from 32 to 64; automatically add missing semi-colon to end of argument in SOLBEG statement; add designM* test cases; compute sensitivities associated with SOLBEG/SOLEND; add designN* test cases; add -skipHelp command line argument to test_pyOCSM — jfdannen / detail
- remove another unused variable — jfdannen / detail
- remove unused variable to prevent warnings — jfdannen / detail
- extend EXTRUDE to create a WireBody if its input is a NodeBody; add extrudeB test case; simplify sensitivity calculations for primitives; improve messages if error is encountered in sensCSM; add designL* test cases; change offset in Edge.iford from 100 to 10000; modify select1a, select1b, and select2 test cases; add blend_nacelle test case; add -allVels command line option to serveCSM to compute velocities for Edges and Nodes as well as Faces; add _hist attribute to WireBodys; add udfPrintEgo; fix bug that did not reset hasC0blend flag in ocsmBuild; update udpBiconvex so that there is not restriction on camber; improve sensitivity calculations; return useful error message when SUBTRACTion of a SheetBody from a SolidBody fails during the imprint operation; update some sensitivity verification data; rename pyOcsm to pyOCSM; update pyOCSM to use EGOs directly (instead of void pointers) — jfdannen / detail
- extend RULE and BLEND to create WireBodys if all inputs are NodeBodys; check for repeated Xsects at beginning and end of RULE and BLEND; add rule27* and blend27* test cases — jfdannen / detail
- fix memory leak in joinSheetBodys — jfdannen / detail
- fix bug in createTessVels that did not compute Node sensitivities correctly for WireBodys; add more sensitivity checks to testPyOcsm — jfdannen / detail
- fix output during execution of SELECT statement; fix sensitivity bug when computed by sensitivities and the velocity of a mass property is needed; add GetTessVel checks to pyOcsm; update ocsmGetValu to get the correct dot for an OUTPMTR — jfdannen / detail
- reformulate windtunnel7 test case to eliminate EGADS warnings; use EG_fuseSheets when UNIONing SheetBodys; update verification tests to account for fewer Nodes; modify JOIN so that it only works if there are common Edges in SheetBodys or Faces in SolidBodys; add joinUnion* test cases; update some verification data to be consistent with JOINs new rules — jfdannen / detail
- fix bug in recycle checker when different Branch types are detected — jfdannen / detail
- dummy print of unused variables to avoid gcc compiler warnings — jfdannen / detail
- fix bug in ocsmLoad if unrecognized filename is given; disable recycling if a file edited in ESP editor changes the type, name, any arguments, or any attributes on a Branch; add colors.dict, which defines the standard RGB color table, to the data directory — jfdannen / detail
- fix bugs in prior build associated with ocsmNewBrch; cosmetic changes in pyOcsm; number tests in testPyOcsm — jfdannen / detail
- fix recently-introduced bug in last commit — jfdannen / detail
- report an error if the child script in udpCsm.c does not leave a Body on the stack; extend CONPMTRs so that they can be arrays of numbers; modify ocsmLoadDict so that CONPMTRs can be defined with multiple values — jfdannen / detail
- modify sketch8* test cases; extend ocsmNewBrch to add all the appropriate Branches if a UDC is added; modify testPyOcsm to test adding a UDC via NewBrch — jfdannen / detail
- fix for mkdir differences between LINUX and WIN64 — jfdannen / detail
- modify pyOcsm to make it more pythonic; add ocsmGetEgo to OpenCSM API and pyOcsm; add sketch8 test case (for testing sensitivities); fix ESP bug that accidentally disabled buttons in Sketcher and Gloves; rename ocsmGetEnt to ocsmFindEnt to make its name more representative of what it does; change way tmp_OpenCSM_ files are handled so that only those associated with a specific MODL are removed when ocsmFree is called; add pyOcsm/inline.csm and modify testPyOcsm.py to test — jfdannen / detail
- add ocsmGetTessNpnt and ocsmGetEnt to OpenCSM API; change function signatures of ocsmPrintAttrs, ocsmPrintBodys, ocsmPrintBrchs, ocsmPrintBrep and ocsmPrintPmtrs to use a filename instead of a file pointer; rewrite pyOcsm to use python.ctypes (rather than the C code that only worked in Python 2.x); add testPyOcsm.py to test pyOcsm.py — jfdannen / detail
- allow the BOX command to create a NodeBody; get velocities correct for the BOX command when generating a WireBody or NodeBody; allow one to retrieve the velocities of the @parameters associated with the mass properties; change MALLOC and FREE macros in common.h to use EG_alloc and EG_free; add massprop* test cases; update ocsmFindPmtr so that if type=0, it will not create a new Parameter and will return ipmtr=0 if Parameter is not found at the global scope — jfdannen / detail
- fix bug in previous commit — jfdannen / detail
- fix bug in previous commit — jfdannen / detail
- when changing DisplayType to 0 in ESP, do not ask for upper and lower limits; improve ESP MessageWindow messages when there is a problem in a UDP/UDF — jfdannen / detail
- fix message returned to ESP when an error is detected while processing the arguments to a UDPRIM; make messages returned to ESP by udpBox, udpImport, udpNaca, udpSample, udpSupell, udpWaffle, amd udfEditAttr more explanatory — jfdannen / detail
- fix error handling when EG_hollowBody fails; add message to serveCSM summary to tell if verification was requested but a .vfy file could not be found — jfdannen / detail
- write CFGPMTRs in ocsmSaveDespmtrs — jfdannen / detail
- Undo some previous changes — galbramc / detail
- Another small fix — galbramc / detail
- Minor script cleanup — galbramc / detail
- Ignore plugs5a — galbramc / detail
- Fix macys environment — galbramc / detail
- Fix not equal for Windoze — galbramc / detail
- Fix Windoze jenkins script bug for pyOCSM. — galbramc / detail
- Finally working. Remove debug output — galbramc / detail
- Try adding DYLD_LIBRARY_PATH — galbramc / detail
- Infinite loops are bad — galbramc / detail
- Maybe finally right — galbramc / detail
- Found typo — galbramc / detail
- More debugging — galbramc / detail
- One more try at memcheck on macOS — galbramc / detail
- Debug information — galbramc / detail
- Non framework python — galbramc / detail
- Enable memcheck for python on macOS — galbramc / detail
- Avoid false positives — galbramc / detail
- Fix sanitize script type. unbuffer python stdout. — galbramc / detail
- Add OpenCSM/pyOCSM to Ocsm test matrix — galbramc / detail
- Move pyOCSM memcheck and valgrind testing to OpenCSM/data/basic — galbramc / detail
- Add pyOCSM testing — galbramc / detail
- Fix make memory leak suppression — galbramc / detail
- Suppress memory leaks in Make — galbramc / detail
- Fix path — galbramc / detail
- pyEGADS does not work with Python2 — galbramc / detail
- Windoze build fixes — galbramc / detail
- Build fixes — galbramc / detail
- EGADS udp build depends on OpenCSM build — galbramc / detail
- Update testing for EGADS — galbramc / detail
- Ignore plugs3d.csm for now — galbramc / detail
- Upgrade Cart3D — galbramc / detail
- Globbig is different in a script... — galbramc / detail
- Bettery way to find gcc — galbramc / detail
- Upgrade to gcc-10 on macOS — galbramc / detail
- Update AFLR version — galbramc / detail
- Upgrade to valgrind 3.16.1 — galbramc / detail
- Suppress tetgen sanitizer pointer alignment — galbramc / detail