Commit Graph

2766 Commits

Author SHA1 Message Date
Arne Morten Kvarving
574bffdfb1 ASMbase::getElementCoordinates: add flag to force integration basis
required as this is used to obtain coordinates for integration elements
in CFL calculations and in ASMu2D evalPoint
2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
1e01b45c9b ASMs2Dmx: replace tabs with spaces 2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
f28b871df0 ASMs2Dmx::integrate: add support for a separate geometry basis 2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
5a9f3be584 ASMs2D::getElementCoordinates: support a separate geometry basis 2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
34841db38c fixed: do not use bezier extraction with subgrid in 3D unstruct
we cannot uniformly use bezier extraction from gauss points
with subgrid, since we are not evaluating in gauss points
distributed across the element for all bases. this because
our integration elements have an additional subdivision,
which means the pressure basis is evaluated in non-uniform points
(ie we evaluate in 8 distinct sets of gauss-points over its elements).
2023-09-07 08:21:51 +02:00
Arne Morten Kvarving
dbb7b41ade ASMuxD::assembleL2matrices
fix condition for using model MNPC
2023-09-07 08:21:51 +02:00
Arne Morten Kvarving
9a4c48eac4 fixed: reading nodes from HDF5 file
we need to instance the ProcessAdm and not pass a temporary.
holding a reference to a temporary is not enough to keep
it alive, which means it is killed and consequently the
reader holds an invalid reference.
2023-09-07 07:41:54 +02:00
Arne Morten Kvarving
95afb36eb2 added: FiniteElement::Jacobian for use on boundaries 2023-09-06 09:21:56 +02:00
Arne Morten Kvarving
89c065edc4 MxFiniteElement::Hessian
support for a separate geometry basis. checks length
of the passed vector, if greater than number of bases,
use the last entry for the geometry mapping
2023-09-06 09:21:56 +02:00
Arne Morten Kvarving
28d547c3e4 MxFiniteElement::Jacobian
support for a separate geometry basis. checks length
of the passed vector, if greater than number of bases,
use the last entry for the geometry mapping
2023-09-06 09:21:56 +02:00
Arne Morten Kvarving
004d1927ae ASMuxD(mx): use lrspline instead of geomB in various spots
these ops intends to use the integration basis
2023-09-05 12:38:14 +02:00
Arne Morten Kvarving
8762ec1943 ASMu3D::BasisFunctionCache: make use of bezier extraction optional 2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
89f4191139 ASMu3Dmx: remove unused bezierExtractmx 2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
37aba0ca58 ASMuxD(mx): add an if in ASMuxD basis function cache
this way we avoid duplication of the class in ASMuxDmx
2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
3240697ec0 fixed: wrong array size
this is the main quadrature loop, not the reduced quadrature.
2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
c839e0ac79 ASMu3D::evaluateBasis(2): pass params and vector instead of finite element 2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
dbc2202b5a ASMu3D::evaluateBasis: pass vector instead of finite element and basis index 2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
82ccdc49e3 ASMu3D::constrainFace
use midpoint()
2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
3ad0b872c8 changed: rename ASMmxBase::geoBasis to ASMmxBase::itgBasis
more precise as this represents the basis holding the integration elements
2023-09-05 10:12:26 +02:00
Arne Morten Kvarving
6aeefcd0f0 changed: use PETSC_NULLPTR
for PETSc < 3.19 we define this to PETSC_NULL.
use of PETSC_NULL causes a deprecation warning in 3.19
2023-09-04 20:02:53 +02:00
Arne Morten Kvarving
9014cc6335 changed: use INSTANTIATE_TEST_SUITE_P
INSTANTIATE_TEST_CASE_P causes deprecation warnings with
newer gtest versions
2023-09-04 20:02:53 +02:00
Arne Morten Kvarving
30b7a968d3 bump minimum cmake version to 3.5
and put the cmake_minimum_required before project.
current cmake has removed support for < 3.5 and
tosses a warning if the project statement comes
before the cmake_minimum_required statement
2023-09-03 12:04:59 +02:00
Arne Morten Kvarving
ab100c290d changed: use getBasis in ASMxxD::assembleL2matrices
make it clear that we want the integration and projection bases.
2023-09-01 17:20:42 +02:00
Arne Morten Kvarving
ad7ff2b19e ASMuxDmx: use getBasis(ASM::REFINEMENT_BASIS) where appropriate 2023-09-01 17:20:42 +02:00
Arne Morten Kvarving
d9056a92b2 ASMuxD: use getBasis(ASM::PROJECTION_BASIS) where appropriate 2023-09-01 17:20:42 +02:00
Arne Morten Kvarving
00486b30e8 use getBasis(ASM::PROJECTION) in ASMuxD::refine
and restructure a little to make code more readable.
2023-09-01 17:20:42 +02:00
Arne Morten Kvarving
c3bb2447cd use getBasis(ASM::INTEGRATION_BASIS) in ASMsxDmx::generateFEMTopology()
this makes it a bit clearer what is going on.
introduce a lambda to avoid duplicated code and some generic cleanup
2023-09-01 17:20:42 +02:00
Arne Morten Kvarving
f91a62e372 add tests for unstructured ASM write
also serves as tests for the getBasis implementation
2023-09-01 15:41:44 +02:00
Arne Morten Kvarving
9cf613cbca changed: move ASMuSquare and ASMuCube to separate header
for reuse like in the structured ASMs tests
2023-09-01 15:41:44 +02:00
Arne Morten Kvarving
76a6139bfc changed: no reason to override write in ASMuxDmx
we can just use the ASMuxD implementation
2023-09-01 15:41:44 +02:00
Arne Morten Kvarving
d57ebd0d0c add tests for structured ASM write
also serves as tests for the getBasis implementation
2023-09-01 14:29:10 +02:00
Arne Morten Kvarving
dc7a2e444a changed: unify ASM(Cube|Square) and ASMmx(Cube|Square)
in particular do not call generateFEMTopology in the latter's
constructor.
2023-09-01 14:29:10 +02:00
Arne Morten Kvarving
53f5d1f830 changed: no reason to override write in ASMsxDmx
we can just use the ASMsxD implementation
2023-09-01 14:29:10 +02:00
Arne Morten Kvarving
005f8f24b1 ASMuxDmx: restructure basis establishment
make it (almost) similar to code in structured ASMs
2023-09-01 14:09:00 +02:00
Arne Morten Kvarving
809a650bc4 fixed: avoid cloning in ASMsxDmx
instead point to the shared ptrs. make sure to null ptrs
before ASMstruct wants to delete them.
2023-09-01 14:09:00 +02:00
Arne Morten Kvarving
fdd7b189b1 use a lambda in ASMu3D::getBoundary1Nodes
switch is preferable to ifs
2023-09-01 13:46:14 +02:00
Arne Morten Kvarving
3d6d950474 changed: remove ASMxxD::get(Surface|Volume)
use getBasis instead
2023-09-01 08:51:04 +02:00
Arne Morten Kvarving
957af79433 added: extend getBasis method
allow obtaining additional bases, not just the FE bases
in particular geometry basis and projection basis.
add an enumeration to make things readable
2023-09-01 08:51:04 +02:00
Arne Morten Kvarving
4abf4c64a7 changed: override separateProjectionBasis in ASMxxD(mx)
in preparation for having a separate geometry basis. in that case
we cannot use the geomB pointer to check for equivalence.
also fixes two field mixed formulations with the higher
order basis being the second basis. in that case we are
not projecting on basis 1, but rather on basis 2.
2023-08-29 14:36:03 +02:00
Arne Morten Kvarving
0c2e160d90 rename some variables to make code more readable 2023-08-29 14:34:33 +02:00
Arne Morten Kvarving
9d133d8be1 move refinement basis into ASMLRSpline 2023-08-29 14:05:20 +02:00
Arne Morten Kvarving
b3b3e1fa7a ASMu2D: make createLRNurbs return a shared_ptr directly
no reason to use bare pointers here, they are always put into
a shared_ptr
2023-08-29 14:05:20 +02:00
Arne Morten Kvarving
59ad91c245 rename altProjThreadGroups to proj2ThreadGroups 2023-08-29 14:05:20 +02:00
Arne Morten Kvarving
505d9d9a6c move projection bases into ASMLRSpline 2023-08-29 14:05:20 +02:00
Arne Morten Kvarving
dce989f1c6 changed: remove proj members in ASMs2D and ASMs3D
as these are stored as projB in ASMstruct.
less confusion as there are less member pointers.
2023-08-29 10:52:23 +02:00
Arne Morten Kvarving
086592c2f9 changed: move secondary projection basis into ASMstruct 2023-08-29 10:52:23 +02:00
Arne Morten Kvarving
1d32025671 ASMuxDmx: simplify remapErrors by using elm->midpoint() 2023-08-29 10:12:45 +02:00
Arne Morten Kvarving
bd5609035b changed: rename ASMLRSpline::geo to geomB
to be consistent with ASMstruct. we store it
as a shared_ptr. too many pointers to keep manually
track of. it can be (soon) be a separate object,
one of the FE bases, the projection basis, ...
2023-08-29 09:11:09 +02:00
Knut Morten Okstad
3a4fc9e081 Changed: Second (mostly dummy) argument in read method is removed.
Instead, introducing a separate readBasis method.
2023-08-25 16:43:46 +02:00
Arne Morten Kvarving
0a33cedfc3 changed: introduce a method to obtain first node on integration basis
use this in ASMsxD::getElementCoordinates. we can then
reuse this method in ASMsxDmx
2023-08-25 12:26:26 +02:00