Nonconforming container + kernel in 3D#1941
Conversation
lsawade
left a comment
There was a problem hiding this comment.
minor changes, otherwise lgtm
| #include "specfem/mesh.hpp" | ||
| #include "specfem/receivers.hpp" | ||
| #include "specfem/source.hpp" | ||
|
|
| template <specfem::element::dimension_tag DimensionTag, | ||
| specfem::element_coupling::interface_tag InterfaceTag, | ||
| specfem::element::boundary_tag BoundaryTag, | ||
| specfem::element_connections::type ConnectionTag, | ||
| specfem::element_coupling::flux_scheme_tag FluxSchemeTag> | ||
| struct interface_container; |
There was a problem hiding this comment.
why import the fwd.hpp if you define this guy again? this file is not using the definition of the other struct in the forward header.
Also I would suggest -- if you really need it -- to call this base.hpp or template.hpp. because fwd.hpp is usually supposed to be ingested by other implementations or headers outside of this directory.
| @@ -0,0 +1,27 @@ | |||
| #pragma once | |||
There was a problem hiding this comment.
This naming is misleading because fwd.hpp are usually used to be public and ingested by outside headers/implementations.
create
nonconforming_interfaces/nonconforming_interfaces_base.hppnonconforming_interfaces/impl/interface_container_base.hpp
then import these in the in the respective specialization
nonconforming_interfaces/dim3/nonconforming_interfaces.hppnonconforming_interfaces/dim3/impl/interface_container.hpp
Then you should remove some of the redundant forward declerations.
| specfem::data_access::DataClassType::nonconforming_interface, | ||
| specfem::element::dimension_tag::dim3> { | ||
| public: | ||
| /** @brief Dimension tag for 2D specialization */ |
There was a problem hiding this comment.
| /** @brief Dimension tag for 2D specialization */ | |
| /** @brief Dimension tag for 3D specialization */ |
| struct EmptyAccessor { | ||
|
|
||
| /** | ||
| * @brief Capture any constructer configuration. Should do nothing. |
There was a problem hiding this comment.
| * @brief Capture any constructer configuration. Should do nothing. | |
| * @brief Capture any constructor configuration. Should do nothing. |
| * @param ngllz Number of GLL points in z-direction | ||
| * @param ngllx Number of GLL points in x-direction |
There was a problem hiding this comment.
| * @param ngllz Number of GLL points in z-direction | |
| * @param ngllx Number of GLL points in x-direction | |
| * @param ngllz Number of GLL points in z-direction | |
| * @param nglly Number of GLL points in y-direction | |
| * @param ngllx Number of GLL points in x-direction |
|
@int-ptr-ptr Can you have a look Lucas's comments |
|
@int-ptr-ptr ping |
|
Compiling right now to ensure review changes didn't break. Since there are bugs still being worked out, would it make sense to target into a different |
|
Maybe target issue branch I'll create one. |
Description
This PR pulls from #1908, with the intersection override removed.
dim3/assemblynow includesnonconforming_interfaceschunk_faceload specializations filleddim3/nonconforming_interfacesfilled (minor#includemodification todim2to use forward declarations file).fwd.hppis used for forward declarations so that specific dim2 or dim3 files can be imported without the other (and removes the red squiggles when looking at theimplfiles, which is arguably more important).compute/impl/compute_couplingkernel to allow the interpolative (pointwise) coupling.coupling_terms_packtoelement_coupling/accessor, which template-dispatches based on tags.Issue Number
If there is an issue created for these changes, link it here
Checklist
Please make sure to check developer documentation on specfem docs.