-
v15.26536d7a4b · ·
Support #592: Minor refactoring of RefFEltInLocalNumbering. - Bug #589: Clarify which dimension should be used in intermediate matrices of local variational operators. Now the heat may work in 2D. - Bug #586: Correct a bug in grad-grad operator: work matrix allocation assumed a vectorial unknown. - Feature #185: Shape function label is no longer glued to the unknown in general, but to an unknown in a finite element space. So you might have displacement/P1 in one finite element space and displacement/P2 in another, which wasn't possible previously (or you would have had to cheat and name differently the unknown). - Feature #583 - #26: Heavy refactoring of quadrature rules management; now each operator may use its own quadrature rules. - Feature #579 - #588: Introduce the new policy AtQuadraturePoint for parameters; add the possibility to evolve with time (not for the whole Parameter class, just for Parameters that inherit statically from this new policy). - Feature #578: Parameter: add a Write() functionality. Content of this Write() is not entirely satisfactorily though: composite parameters just specify the values of their components, and Lua functions are not written inside (see #581). - Support #576: Few minor corrections suggested by cppcheck.
-
v15.249751cee7 · ·
- Design #575: Remove calls to SubMatrix and SubVector in the actual code, as the former is not well maintained in Seldon (the latter is actually implemented in HappyHeart). Anyway, as it is used in read-only in current code it is more appropriate to play with the indexes in the full matrix rather than using SubMatrix for which many pointer indirectsion were incurred. - Profile #532 (partially): Avoid memory allocation when accessing ghosted values in a Petsc vector. - Design #540: Clean-up hyperelastic operator; also avoid SubMatrix use. - Design #539: Rewrite GradOnGradientBasedElasticityTensor::ComputeEltArray() to avoid SubMatrix use. - Design #538: Rewrite Mass::ComputeEltArray() to avoid SubMatrix use. - Feature #501: Refactor TransientParameters to make it more generic (the time might now not be given as successive time iterations, even if at the moment only this policy is provided). - Support #573: Add a message in an assert to point out the most likely reason it happens (namely because the unknown has not properly been registered by the model). - Feature #572: Extend the code to support discontinuous finite elements. So far only zero order has been added for geometric-based elements (not the Spectral). - Bug #571: ThirdParty: Correctly take debug/release for Yuni depending on HappyHeart compilation mode. - Support #570: Few corrections to make the code work under Ubuntu with gcc-5.1.
-
v15.23679396cd · ·
- Feature #564: The interface of Parameter has been refactored; now each instantiation must detail a GetConstantValue() and a GetValue() with the latter taking a quadrature point and a geometric element, The Local->Coords operation is if required performed within the Parameter class; the choice of the nature of the Lua function (local or global) is performed at the definition of the InputParameter object. - Bug #563: Fix the bug forbidding two calls to FEltSpace::ComputeFEltSpaceProgramWiseIndexList(). - Feature #556: Introduce the appropriate Parameter(s) for each model instance. In some of them, there is the requirement they are constant (as variable case would required a heavy rewrite of the model.). - Support #560: Update Seldon to the latest version (still a dev one). - Design #558: Parameter::GetValue() is now overloaded: there is a version that takes a Coords and another that takes a QuadraturePoint. It remains to be seen if the former should be kept; it is actually quite convenient in the definition of transient sources. - Design #557: Make a library for operators; the new hierarchy is: Utilities/ThirdParty < Core < Geometry < FiniteElement < Parameters < Operators < FormulationSolver < Model (but no file compiled at this point for it). - Design #553: Operators in the Elastic model are now defined with the brand-new Parameter class. - Support #543: Use new Seldon library rather than home-made one.
-
v15.20576714da · ·
- Support #528, #370, #551, #285, #115: various cleaning-up in the code (canonical form for classes, final keywords, more appropriate smart pointers for each class and so forth...) - Bug #547: Fix compilation bug in XCode for release mode. - Support #545: VariationalFormulation: merge DefineOperators() (previously required by the CRTP of the base class) within SupplInit(). - Feature #511: Create a Stokes operator and use it in Stokes model. The previous instantiation of Stokes can still be used with the macro STOKES_MODEL_WITH_TWO_OPERATORS activated (an XCode target has been created for that purpose). - Design #537: Implementation of the local variational operator GradPhiGradPhi has been improved.
-
v15.191614aee9 · ·
- Support #543: Ops is now the 'official' version rather than a home-modified one. Source are no longer embedded, even if XCode (or SCons) are still in charge of the compilation. - Design #536: ScalarDivVectorial implementation has been much improved. - Feature #535: Now in a LocalVariationalOperator instance a different kind of Seldon matrix might be used (typically one can use symmetric matrix to define ScalarDivVectorial). - Feature #510: Unify Stokes and NonMonolithic Stokes into one same Model. - Feature #515: Update HeatModel with changes made in #410. - Feature #531: Refactor deeply assembling. Most prominent new feature is that is is now possible to assemble into as many matrices and/or vectors as you like in one call. - Feature #527: GlobalVector and GlobalMatrix are now full-fledged classes which also embed references to numbering subsets. - Support #425: Refactor numbering subset for more flexibility. - Bug #517: InputParameterList has been rewritten to work even with plenty of input parameters. New methods introduced in Mpi wrapper to that purpose. - Feature #521: Non monolithic Stokes has been rewritten to use up only one variational formulation. This is a preliminary step to fuse monolithic/non monolithic ine one same model. - Feature #512: Variational has been amended to be able to store several global matrices and vectors (one per block matrix). - Bug #507: Correct two very minor bugs (one about default scheme in XCode, the other about the location of Ensight related outputs).
-
v15.17951e3536 · ·
- Support #500: In Model, UpdateTime() is now called in InitializeStep() rather than in FinalizeStep() (to ease interface with Verdandi). - Support #506: Refactor ElementaryData and GlobalVariationalOperator, which now displays policy for unknowns, which is especially in charge of injecting local linear algebra into global one. This is both more efficient (static dispatch) and cleaner: formerly too much code was repeated. - Support #503: Add option MAT_NO_OFF_PROC_ZERO_ROWS for parallel matrix, which is more efficient according to Petsc's documentation. Modify the initialization of boundary conditions so that this condition is effectively fulfilled. - Support #502: Introduce macro to ease declaration of input parameters for each model instance. - Support #490: Update the XCode templates related to creation of a new ModelInstance (i.e. all of them save the operator-related ones). - Support #495: Post processing has been adapted to new paths featuring the numbering subset. - Feature #496: Extend ComputeMatrixPattern and VariationalFormulation to handle properly non square matrices (for which row and columns are described by different numbering subsets). - Support #502: Introduce macro to lighten the reading of model instances input parameter list. - Feature #474 - #480 - Support #499: Introduction of numbering subsets.
-
v15.14df98430e · ·
- Support #487: Clean-up interface: for instance it is no longer required to define a method in Model to build the GodOfDof: Model is able to do it itself with just few tuples that indicate which objects in the input parameter file are related to a given god of dof. - Feature #478 - Design #202 - Support #233: FiniteEltSpace is now built from informations in the input parameter file. Unknowns handling has been strongly refactored in the process. - Feature #482: refactor domain, and build domain objects directly from informations in the input parameter file. A DomainManager and GeometricMeshManager have been introduced in the process. - Design #360: Review all uses of std::move and remove unrequired ones. - Feature #439: Reactivate Stokes model: replace one of the Dirichlet condition by an additional operator. Rename it more properly. - Support #470: Very minor changes in Elastic model.
-
15.122ac1352d · ·
- Bug #469: Fix several mpi bugs, most of which that occurred in the degenerate case in which one of the processor doesn't get any ghosted dof. - Feature #468: Hyperelasticity: produce 4 mains to represent all the combinations hyperelastic law/time schemes. - Feature #466-#467: Clean-up forces involved in Elastic and Hyperelastic models: it is no longer a hack to decide whether the force is surfacic or volumic, and one of each can be used at the same time. Also clean-up Lua files so that comments are really on par with latest code. - Feature #463: Modify the library so that Point geometric and finite elements can be used. - Feature #464: avoid some repeated allocations of Seldon matrices and vectors in ShapeFunctionAtQuadraturePoint.
-
v15.112103b1a1 · ·
- Bug #459: Fix the quadrature rule related to a point: now gets 0 component rather than 1. - Bug #460: Creation of default input parameter file was broken in parallel. Now it is done without asking the user (as stdin with Openmpi seems to be very tricky). - Support #457: Data directory has been cleant-up: now there are toy meshes and input parameter lua files for each model, and paths are given with environment variables /Users/sebastien and sebastien. There is an assumption however that M3DISIM organization is used (namely HappyHeart should be in /Users/sebastien/Codes/Happyheart). - Support #458: Add Replace() function for std::string. - Support #107: I've finally managed to build happy heart with static libraries in command line build. So now one can choose whether to use static or shared libraries. - Support #390: In SCons build, create libraries for source files associated to each model instances and copy them to the Build directory. New scheme allow to define several executables for the same ModelInstance. - Bug #440: A test in an assert has been modified: there was the underlying assumption that EdgeContent alias was always a std::vector or std::array, which is not the case (it is std::false_type for Point for instance). - Bug #446: Index in State operator was not correctly computed.
-
v15.10.2c14f1d75 · ·
- Feature #455: Petsc Matrix: introduce accessor to values. - Feature #454 - Bug #421: Handle as gracefully as possible the case in which an exception causes the stop of a processor. In that cas, MPI_Abort() is called to avoid dangling program. Code has also been modified to ensure there is no interleaving between exception messages from several processors. - Bug #453: Matrix::GetProgramWiseSize() and GetProcessorWiseSize() were buggy. - Feature #452: Make Openmpi wrapper rely on C API rather than C++ API: the latter is deprecated and due to be removed in future versions of OpenMPI. - Bug #445: In hyperelastic case for a 3d mesh, a matrix was not correctly initialized. To find out that, a handful function that checks NaN values in local matrices has been introduced. - Support #441: Fix all compilation warnings: clang and gcc in debug and release mode.
-
v15.100dd124eb · ·
- Bug #23: Point now gets properly a dimension of 0. - Feature #438: Coords now stores 3 components even if the mesh is 1D or 2D. Utilities::POint has been disbanded. - Bug #444: Soolve a bug with Ensight mesh output: an endline was unduly deleted. - Support #421: REmove the boundary condition types, inherited from Felisce but actually not implemented. Dirichlet conditions are anyway bound to be discussed and refactored cleanly. - Support #437: Rename more appropriately some files, classes and template parameters. - Support #433: Input parameter: create cpp files to separate declaration and implementation. For template parameter structure, define only the Section() method as a template to avoid code bloat.
-
v15.08f25b817b · ·
- Support #436: Input parameter list descriptions are now automatically formatted not to exceed a certain line length. - Feature #430: Add the possibility of a 1D mesh (reduction to 1D is applied after the native format has been read. - Support #425: Now build folders of SCons compilation may be chosen from the configuration file. The highlight of this is that binaries no longer are synchronized if build directories are put on Data partition. - Feature #429: Define an operator to project from one finite element space to a subset of it. - Feature #428: A finite element space is now able to generate the pattern of one of its vector (said vector is smaller than GodOfDof's ones). - Feature #427: FiniteEltSpace now contains a weak_ptr to its enclosing GodOfDof. So GodOfDof informations are now accessible from any of the finite element space it contains; it is very handy for instance to identify the ghosted dofs. - Bug #422: boundary conditions dofs were not reduced to processor-wise only. - Bug #426: Dof ordering relationship was incorrect: using program-wise indexes there could lead to some ghost being stored before the processor-wise dofs. Using processor-wise ior ghost indexes solve this issue.
-
v15.073c64eb7c · ·
- Support #419: Report early Gautier's correction in Seldon and Ops projects. - Feature #378: Add the heat equation in ModelInstances. - Support #418: Update scripts and run cppcheck upon the code to improve it. - Design #416-#417: Implement a thin wrapper in Seldon to wrap HappyHeart's wrapper of a Petsc vector. - Bug #415: Two template functions in Ops were wrongly in cxx file. - Support #414: Reactivate g++ compilation; extend SCons interface so that two different compilers can be used. - Support #412: Wrote a first draft of XCode template for both global and local variational operator. - Support #406: Add a transient source operator. - Support #343: In SetFiniteEltList(), add a check of adequation for the pair RefGeomElt/Domain. - Design #364: Use unique_ptr rather than raw ones in GeometricEltFactory.
-
v15.0606da2592 · ·
- #411 Bug corrected: assembling a matrix-vector operator into only a vector or a matrix was actually not compiling. In the process, it's now easier for a developer to provide its own operator with variadic arguments: he no longer has to bother with matrix and/or vector coefficients. - #336 Improve ComputeEltArray implementations; mostly by avoiding memory allocations from Seldon::Transpose (a brand new one has been implemented that performs absolutely no allocation past the initialization). - #206 Hyperelastic case has been cleaned-up; there is for instance no longer Seldon vector or matrix allocation past the initialization phase. - #405 Fix Doxygen compilation, which was screwed when src was renamed into Sources. - #404 XCode template: add new generic files with several layers of namespaces, and improve the current one to handle paths.
-
v15.04.1b8044e2b · ·
- #402: The part of #401 about GetNodeList() was a bad idea; take it back and add comments to avoid same mistake in the future.
-
v15.04b7a7a27f · ·
- #207: Remove home-made make_unique and replace it by std::make_unique, made recently available with C++14 support. - #401: FiniteElt: make the method GetNodeList() public. Replace std::shared_ptr by std::unique_ptr; add move assignation (even if deleted...). - #400: Pseudo-Stokes should not be used: the problem was clearly ill-formed and work in #391 highlighted this (a same dof was assigned two different values per essential boundary conditions). There is now an exception to prevent such a bug (previously it was an assert that was poorly implemented...) - #397: Propose creation of default input file in each model instance main when the given input parameter file doesn't exist. Create in the process a class which purpose is to init boilerplate in HappyHeart. - #399: Remove input_parameter_data from operators constructors, and instead place there the values read from the input parameter file that are required. These values are them perfect-forwarded to LocalVariationalOperator constructor. - #395: Some input parameter structures (the one that might be defined several times, such as force or mesh) are now templates. - #391: Improve efficiency of SolveLinear() and ApplyEssentialBoundaryConditions(). The improvement is especially noticeable for SolveLinear() when the same precondition may be used: it is in this case not recomputed and the computation time is much better (actually most of it is dumping the solutions on the disk...). - #394: Extend the applicability of mass, stiffness and force operators, that assumed so far a vectorial unknown.
-
v15.032d066114 · ·
- Design #365: shared_ptr are now mostly passed by reference rather than by value (passing by value is in fact an anti-pattern for them). - Support #369: another anti-pattern removed: return of functions no longer use std::move (nothing was gained and a possible optimization was prevented - see 'Effective Modern C++ by Scott Meyers - item 25'). - Design #350: GeometricMeshRegion no longer needs Mpi object. - Documentation #345: prepare a demo for user/advanced user/proposed workflow. In the process, smooth the interface: for instance prepare XCode templates to provide minimal Model or VariationalFormulation instantiation (#363) or prepare a Python script that inits fully HappyHeart environment (scripts/init_happy_heart.py). - Support #349: Medit or Ensight geometric files can now be loaded, and the format choice is also in the input parameter file (previously Medit was hardcoded). - Bug #379: Now when a finite element space is empty, a warning is issued on the logs by the GlobalVariationalOperator that uses it. - Support #386/#389: renaming of folders; apply uppercase for the first letter consistently. - Support #346: Choose the lua file on the command line rather than in the main. - Bug #372: time iterations limits are now much better handled (previously there could be one more time iteration than required). - Support #377: Make all XCode schemes shared.
-
v14.523d5f43ce · ·
- Feature #317: Introduce PostProcessing treatment, able to generate output files in several formats. Currently only Ensight 6 format implemented. - Support #350: Add script to count number of lines in HappyHeart (calls Perl script with right options). - Bug #340: hyperelastic problem with 3d mesh did not run correctly due to an incorrect change likely done in #147. - Support #329: In Local variational operators, avoid to repeat endlessly allocation of some local matrices and vectors.
-
v14.500f423c6d · ·
- Feature #147: force management has been entirely refactored. Now forces can be spatial or constant and surfacic or volumic; the same operator handles all the cases. - Support #337: Yuni::Math::Zero() was too restrictive: its 1.e-6 epsilon for absolute comparison was not low enough. A homemade function has therefore been introduced to replace it. - Feature #320: introduce some geometric functions from Ondomatic: computation of a jacobian and local2global and global2local transformations for 2x2 and 3x3 matrices. - Feature #325: use the new formula to compute jacobian, and prettify ElementaryDataImpl. There is now a class in charge of shape functions calculation at a given quadrature point. The stored matrices are now in a more natural order (attribute called 'jacobian'i sreally so, not a trsnposed of it as it was in Felisce and realier HappyHeart). - Support #316: report the new names for finite elements chosen in code meeting. - Feature #315: a finite element space is now restricted to a given dimension. - Support #193: Remove the clumsy domain restriction I put to make operators work when several dimensions were involved (#315 removes most of the issue!) - Support #70: Rebuild the XCode project; put the xproject file at the root of HappyHeart. - Feature #305: write data in output directory that allows the building of output files in any format.
-
v14.4782d599fc · ·
- Feature #283: introduce the GodOfDof and split correctly responsibilities between FiniteEltSpace and it. - Feature #286: Pave the way to the use of several geometric mesh regions in a same problem.