Commit Graph

2346 Commits

Author SHA1 Message Date
Arne Morten Kvarving
309f57fb64 ASMuxDmx::swapProjectionBasis: move to ASMLRSpline
now there are no differences between the classes so let's unify.
also a step in making functionality available for non-mixed ASMs,
although there is more work before that is supported.
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
aff5742171 changed: move thread group variables to ASMLRSpline
all groups now makes sense for 2D/3D, and will make
sense for non-mixed as well eventually.
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
10c1834056 remove ASMu3D::myGeoBasis - now unused 2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
09fbaf5ec4 ASMu3Dmx: use projection spline for geometry with DIV_COMPATIBLE 2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
f79604e61a ASMu3Dmx: use original spline for geometry with SUBGRID 2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
e3caca11eb ASMu3D::evalPoint: use geometry basis 2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
494a8df6b8 ASMu3D::faceL2projection: add support for a separate geometry basis 2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
0576f121b0 ASMu3Dmx::assembleL2matrices: support for a separate geometry basis 2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
9f399aa78d ASMu3Dmx::evalSolution: add support for a separate geometry 2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
c97035a749 ASMu3Dmx::integrate: add support for a separate geometry basis 2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
be59cecf9b ASMu3D::getElementCoordinates: support a separate geometry basis 2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
fd9e17bacb changed: drop ASMu2D::getParametricArea
just use LR::Element::area directly
2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
47af45a21e ASMu2Dmx: use projection spline for geometry with DIV_COMPATIBLE 2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
07bd00da2d ASMu2Dmx: use original spline for geometry with SUBGRID 2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
772704b401 ASMu2D::evalPoint: use geometry basis 2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
860a8a31e9 ASMu2D::edgeL2projection: add support for a separate geometry basis 2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
fec1cac3eb ASMu2Dmx::evalSolution: add support for a separate geometry 2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
0d73f3fa83 ASMu2Dmx::assembleL2matrices: support for a separate geometry basis 2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
a0e1433dd3 ASMu2Dmx::integrate: add support for a separate geometry basis 2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
0c625b614e ASMu2D::getElementCoordinates: support a separate geometry basis 2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
1de184cbfa ASMs2D::evalPoint: use geometry basis 2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
91959fdf27 ASMs3D::evalPoint: use geometry basis 2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
7ebdd7acab SplineUtils::point: pass spline as const 2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
0f93b98fce ASMsxDmx::swapProjectionBasis: move to ASMstruct
now there are no differences between the classes so let's unify.
also a step in making functionality available for non-mixed ASMs,
although there is more work before that is supported.
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
ee77610cb2 ASMs3Dmx: use projection grid for geometry with DIV_COMPATIBLE 2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
312c50c309 ASMs3Dmx: use original spline for geometry with SUBGRID 2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
ac11ac2d32 ASMs3D::assembleL2matrices: support for a separate geometry basis 2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
6ddca79ea4 ASMs3Dmx: tabs to spaces 2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
61637671d5 ASMs3Dmx::integrate: add support for a separate geometry basis 2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
5eb981147e ASMs3D::getElementCoordinates: support a separate geometry basis 2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
e2768902be fixed: remove ASMs3Dmx::getElementCoordinates
accidentially left out of 0a33cedfc3
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
dc72826188 ASMs2Dmx: use projection grid for geometry with DIV_COMPATIBLE 2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
dcd7067064 ASMs2Dmx: use original spline for geometry with SUBGRID 2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
6ac805a569 ASMs2D::assembleL2matrices: support for a separate geometry basis 2023-09-07 08:57:30 +02:00
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
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
Arne Morten Kvarving
c0b5911549 changed: introduce a method to obtain last node on integration basis
use this in ASMsxD::getParametric[Area|Length|Volume]. we can then
reuse these method in ASMsxDmx
2023-08-25 12:26:26 +02:00
Arne Morten Kvarving
deb2bd53ea fixed: make sure to always set geoBasis
if not we risk getting the wrong setting if we instance
a SIM with e.g. subgrid followed by instancing a SIM with Taylor-Hood.
2023-08-25 11:16:05 +02:00
Knut Morten Okstad
bc066b9336 Changed: Unnecessary copying of bfs.N removed.
Fixed: Debug print in ASMu2D::integrate().
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
f2f876c77c added: BasisFunctionCache in ASMu3Dmx 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
730fdca306 added: BasisFunctionCache in ASMu3D 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
2f676bf6b3 added: BasisFunctionCache in ASMu2Dmx 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
f2924c1cbd added: BasisFunctionCache in ASMu2D 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
bffcfa640f added: BasisFunctionCache in ASMs3DmxLag 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
e595bd3556 added: BasisFunctionCache in ASMs3Dmx 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
003d567cd3 added: BasisFunctionCache in ASMs3DLag 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
a247271241 added: BasisFunctionCache in ASMs3D 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
a6debc90af added: BasisFunctionCache in ASMs2DmxLag 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
f268e533a8 added: BasisFunctionCache in ASMs2Dmx 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
eff2b08e03 added: BasisFunctionCache in ASMs2DLag 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
6ce589a6b5 added: BasisFunctionCache in ASMs2D 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
c168894ebf added: input file option for defining cache policy 2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
44bbec509a added: base class for basis function cache 2023-08-15 11:47:15 +02:00