...
 
Commits (3)
......@@ -4,6 +4,44 @@ means week 46 of year 2013. Should a second tag be given the same week, an index
Starting from v18.47, the ticket numbers in bold are those that might break compatibility in models.
# v19.45
__Warning:__ You need to update third party libraries to [v19.42](https://gitlab.inria.fr/MoReFEM/ThirdPartyCompilationFactory/-/tags/v19.42):
Xtensor dependencies are now added there, and TClap library has been put there rather than kept inside MoReFEM.
__Note:__ due to an issue on M3DIDIM server, Redmine is not available at the time these lines are written, hence the limited precision of the modified content.
## Operators
- Feature #1418: Introduce microsphere operator.
- Feature #20: In Second Piola Kirchhoff operator, introduce the possibility to check whether an element was inverted. Such a check is
commanded through an option in the input data file.
## Utilities / ThirdParty
- Feature #1494: Introduce new header files to handle pragma warnings. The idea is to avoid repeating conditions such as considering a warning
only for a compiler (or worse, a given version of that compiler).
- __Feature #1292__: Replace Seldon by Xtensor for the linear algebra of local operators.
- Bug #1485: LuaFunction: destructor was not properly written and induced a memory leak,
- __Design #1492__: Remove Tclap from the library (it now must be installed outside of it).
## CI
- Feature #177 - #1489: Add Valgrind memcheck analysis for the embedded models and one test.
- Documentation #1497: Generate through GitlabPages the Doxygen documentation of the code (wasn't possible previously for projects in
Gitlab groups).
- Feature #1490: Add Sonarqube in CI analysis; it synthetizes the results of [Cppcheck](http://cppcheck.sourceforge.net/), [RATS](https://security.web.cern.ch/security/recommendations/en/codetools/rats.shtml), [ClangStaticAnalysis](https://clang-analyzer.llvm.org/)
and the [Sonar scanner for C++ by the community](https://github.com/SonarOpenCommunity/sonar-cxx).
- Documentation #1495: Update README concerning CI
- _Standby_: Feature #1497: Add Verrou flaoting-point checks in CI. There is an issue to set it up properly for all VMs (current Docker image works
properly on only half the VMs of the project).
## Miscellaneous
- Support #1498: Various fixes that appeared while upgrading the external models to this version of MoReFEM API.
# v19.36
## Utilities
......
......@@ -70,8 +70,6 @@ variables:
.run_doxygen_template: &run_doxygen_template
stage: build_and_test
image: ubuntu:latest
except:
- master
artifacts:
name: "artifact_run_doxygen_${CI_PROJECT_ID}_${CI_COMMIT_REF_SLUG}_${DOX}"
expire_in: 1 day
......
......@@ -2,18 +2,24 @@
doxygen_basic:
extends: .run_doxygen_template
except:
- master
variables:
DOX: "basic_dev_guide.dox"
DOXYGEN_OUTPUT_FILE: "basic.log"
doxygen_advanced:
extends: .run_doxygen_template
except:
- master
variables:
DOX: "advanced_dev_guide.dox"
DOXYGEN_OUTPUT_FILE: "advanced.log"
doxygen_complete:
extends: .run_doxygen_template
except:
- master
variables:
DOX: "complete_dev_guide.dox"
DOXYGEN_OUTPUT_FILE: "complete.log"
......
......@@ -6292,9 +6292,9 @@
isa = PBXGroup;
children = (
BE3444E92375A52100639772 /* SourceList.cmake */,
BE3444EC2375A52100639772 /* Microsphere.cpp */,
BE3444EA2375A52100639772 /* Microsphere.hpp */,
BE3444EB2375A52100639772 /* Microsphere.hxx */,
BE3444EC2375A52100639772 /* Microsphere.cpp */,
);
path = Microsphere;
sourceTree = "<group>";
......@@ -6314,9 +6314,9 @@
isa = PBXGroup;
children = (
BE3444FC2375A5FE00639772 /* SourceList.cmake */,
BE3445042375A5FE00639772 /* InputMicrosphere.cpp */,
BE3444FD2375A5FE00639772 /* InputMicrosphere.hpp */,
BE3445032375A5FE00639772 /* InputMicrosphere.hxx */,
BE3445042375A5FE00639772 /* InputMicrosphere.cpp */,
BE3444FE2375A5FE00639772 /* Exceptions */,
);
path = Microsphere;
......@@ -6326,9 +6326,9 @@
isa = PBXGroup;
children = (
BE3444FF2375A5FE00639772 /* SourceList.cmake */,
BE3445022375A5FE00639772 /* InputMicrosphere.cpp */,
BE3445002375A5FE00639772 /* InputMicrosphere.hpp */,
BE3445012375A5FE00639772 /* InputMicrosphere.hxx */,
BE3445022375A5FE00639772 /* InputMicrosphere.cpp */,
);
path = Exceptions;
sourceTree = "<group>";
......@@ -17,8 +17,10 @@
# include <memory>
# include <vector>
# include <array>
# include "Utilities/Containers/EnumClass.hpp"
# include "Utilities/Containers/Array.hpp"
# include "Utilities/Numeric/Numeric.hpp"
# include "Utilities/LinearAlgebra/Storage/Local/LocalVectorStorage.hpp"
......@@ -215,6 +217,13 @@ namespace MoReFEM
//! Constant accessor to the fibers related to I6.
const ::MoReFEM::FiberList<ParameterNS::Type::vector>& GetFibersI6() const noexcept;
//! Hardcoded quadrature points \a phi_i along the plane.
const std::array<double, 20ul>& GetQuadraturePointsAlongPlane() const noexcept;
//! Hardcoded quadrature points \a theta_i outside the plane.
const std::array<double, 5ul>& GetQuadraturePointsOutsidePlane() const noexcept;
private:
//! Contant accessor to the input of the policy.
......@@ -237,16 +246,11 @@ namespace MoReFEM
input_internal_variable_policy_type& input_internal_variable_policy_;
//! Hardcoded quadrature points \a phi_i along the plane.
std::vector<double> lbdvp_;
//! Number of points along the direction \a phi.
const unsigned int npquad_ = 20;
std::array<double, 20ul> lbdvp_;
//! Hardcoded quadrature points \a theta_i outside the plane.
std::vector<double> lbdvt_;
std::array<double, 5ul> lbdvt_;
//! Number of points along the direction \a theta.
const unsigned int ntquad_ = 5;
private:
......
......@@ -57,8 +57,6 @@ namespace MoReFEM
//! Alias to the type of the input.
using input_internal_variable_policy_type = typename local_policy::input_internal_variable_policy_type;
// using input_internal_variable_policy_type = typename ::MoReFEM::InputMicrosphere;
public:
//! \copydoc doxygen_hide_alias_self
......
......@@ -54,9 +54,7 @@ namespace MoReFEM
const auto& system_matrix = GetSystemMatrix(displacement_numbering_subset, displacement_numbering_subset);
const auto& system_rhs = GetSystemRhs(displacement_numbering_subset);
vector_stiffness_residual_ = std::make_unique<GlobalVector>(system_rhs);
vector_stiffness_residual_ = std::make_unique<GlobalVector>(system_rhs);
vector_surfacic_force_face_1_ = std::make_unique<GlobalVector>(system_rhs);
vector_surfacic_force_face_2_ = std::make_unique<GlobalVector>(system_rhs);
vector_surfacic_force_face_3_ = std::make_unique<GlobalVector>(system_rhs);
......@@ -255,7 +253,7 @@ namespace MoReFEM
auto& variational_formulation = *variational_formulation_ptr;
#ifndef NDEBUG
#ifndef NDEBUG
const auto& displacement_numbering_subset = variational_formulation.GetDisplacementNumberingSubset();
......@@ -278,7 +276,7 @@ namespace MoReFEM
assert(false);
}
}
#endif // NDEBUG
#endif // NDEBUG
variational_formulation.UpdateVectorsAndMatrices(petsc_vec_displacement_at_newton_iteration);
variational_formulation.ComputeResidual();
......@@ -634,10 +632,10 @@ namespace MoReFEM
auto& system_matrix = GetNonCstSystemMatrix(displacement_numbering_subset, displacement_numbering_subset);
system_matrix.ZeroEntries(__FILE__, __LINE__);
#ifndef NDEBUG
#ifndef NDEBUG
AssertSameNumberingSubset(GetMatrixTangentStiffness(), system_matrix);
AssertSameNumberingSubset(GetMatrixMassPerSquareTimeStep(), system_matrix);
#endif // NDEBUG
#endif // NDEBUG
Wrappers::Petsc::AXPY<NonZeroPattern::same>(1.,
GetMatrixMassPerSquareTimeStep(),
......