Shifted Boundary Method System Design Description
This template follows INL template TEM-140, "IT System Design Description."
This document serves as an addendum to Framework System Design Description and captures information for SDD specific to the Shifted Boundary Method module.
Introduction
The document must include the "introduction" template item, this can be included by adding the following to the markdown file (sqa/shifted_boundary_method_sdd.md):
!template! item key=introduction
Include text (in MooseDocs format) regarding the "introduction" template item here.
!template-end!System Purpose
The Software Design Description provided here is description of each object in the system. The pluggable architecture of the underlying framework of the Shifted Boundary Method module makes MOOSE and MOOSE-based applications straightforward to develop as each piece of end-user (developer) code that goes into the system follows a well-defined interface for the underlying systems that those object plug into. These descriptions are provided through developer-supplied "markdown" files that are required for all new objects that are developed as part of the Shifted Boundary Method module. More information about the design documentation for MOOSE-based applications and like the Shifted Boundary Method module can be found in Documenting MOOSE.
System Scope
Delineate the following:
Identify the product(s) to be produced by name (Network Infrastructure, Host DBMS, Report Generator, HPC Server, etc.)
Explain what the product(s) will, and, if necessary, will not do.
Describe the application of the product being specified, including relevant benefits, objectives, and goals.
Be consistent with similar statements in higher level specifications (e.g., business requirements specification).
The document must include the "system-scope" template item, this can be included by adding the following to the markdown file (sqa/shifted_boundary_method_sdd.md):
!template! item key=system-scope
Include text (in MooseDocs format) regarding the "system-scope" template item here.
!template-end!Dependencies and Limitations
List the dependencies or limitations that may affect the design of the system. Examples include budget and schedule constraints, staffing issues, availability of components, etc. Describe how each factor will affect the functional design.
The document must include the "dependencies-and-limitations" template item, this can be included by adding the following to the markdown file (sqa/shifted_boundary_method_sdd.md):
!template! item key=dependencies-and-limitations
Include text (in MooseDocs format) regarding the "dependencies-and-limitations" template item here.
!template-end!Definitions and Acronyms
This section defines, or provides the definition of, all terms and acronyms required to properly understand this specification.
Definitions
Pull (Merge) Request: A proposed change to the software (e.g. usually a code change, but may also include documentation, requirements, design, and/or testing).
Baseline: A specification or product (e.g., project plan, maintenance and operations (M&O) plan, requirements, or design) that has been formally reviewed and agreed upon, that thereafter serves as the basis for use and further development, and that can be changed only by using an approved change control process (NQA-1, 2009).
Validation: Confirmation, through the provision of objective evidence (e.g., acceptance test), that the requirements for a specific intended use or application have been fulfilled (24765:2010(E), 2010).
Verification: (1) The process of: evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. (2) Formal proof of program correctness (e.g., requirements, design, implementation reviews, system tests) (24765:2010(E), 2010).
Acronyms
| Acronym | Description |
|---|---|
| API | Application Programming Interface |
| FE | finite element |
| HIT | Hierarchical Input Text |
| HPC | High Performance Computing |
| I/O | Input/Output |
| INL | Idaho National Laboratory |
| MOOSE | Multiphysics Object Oriented Simulation Environment |
| MPI | Message Passing Interface |
| SDD | Software Design Description |
Design Stakeholders and Concerns
Design Stakeholders
Identify the stakeholders of the IT system design.
The document must include the "design-stakeholders" template item, this can be included by adding the following to the markdown file (sqa/shifted_boundary_method_sdd.md):
!template! item key=design-stakeholders
Include text (in MooseDocs format) regarding the "design-stakeholders" template item here.
!template-end!Stakeholder Design Concerns
Concerns from many of the stakeholders are similar. These concerns include correctness, stability, and performance. The mitigation plan for each of these can be addressed. For correctness, Shifted Boundary Method module development requires either regression or unit testing for all new code added to the repository. The project contains several comparisons against analytical solutions where possible and also other verification methods such as MMS. For stability, the Shifted Boundary Method module (located within the MOOSE repository) maintains multiple branches to incorporate several layers of testing both internally and for dependent applications. Finally, performance tests are also performed as part of the the normal testing suite to monitor code change impacts to performance.
System Design
For this section, detail should be commensurate with the level of risk and demonstrate the fulfillment of requirements providing guidance for implementation.
For custom developed software (see def. in LWP-13620) activities, the following is required:
The documented design shall include, as applicable:
Numerical methods
Mathematical models
Physical models
Control flow
Control logic
Data flow
Process flow
Data structures
Process structures
Applicable relationships between data structures and process structures
In addition, for safety software consider:
Principles of simplicity, decoupling, and isolation to eliminate hazards. Safety features should be separate from nonsafety modules minimizing the impact of failure of one module on another. Techniques, such as failure modes and effects analysis, fault-tree modeling, event-tree modeling, cause-consequence diagrams, hazard and operability analysis, and interface analysis.
The document must include the "system-design" template item, this can be included by adding the following to the markdown file (sqa/shifted_boundary_method_sdd.md):
!template! item key=system-design
Include text (in MooseDocs format) regarding the "system-design" template item here.
!template-end!System Structure
Decompose the system into design entities or objects that will interact with and transform data to perform the required system objectives. Assign a unique name to each design entity, and group entities by type (e.g., class, object, procedure). Describe how each design entity satisfies system requirements. In user terminology, specify the inputs, outputs, and transformation rules for each design entity. Depict how design entities depend on one another.
The document must include the "system-structure" template item, this can be included by adding the following to the markdown file (sqa/shifted_boundary_method_sdd.md):
!template! item key=system-structure
Include text (in MooseDocs format) regarding the "system-structure" template item here.
!template-end!Data Design and Control
At a high level, the system is designed to process HIT input files to construct several objects that will constitute an FE simulation. Some of the objects in the simulation may in turn load other file-based resources to complete the simulation. Examples include meshes or data files. The system will then assemble systems of equations and solve them using the libraries of the Code Platform. The system can then output the solution in one or more supported output formats commonly used for visualization.
Human-Machine Interface Design
The Shifted Boundary Method module is a command-line driven program. All interaction with the Shifted Boundary Method module is ultimately done through the command line. This is typical for HPC applications that use the MPI interface for running on super computing clusters. Optional GUIs may be used to assist in creating input files and launching executables on the command line.
System Design Interface
All external system interaction is performed either through file I/O or through local API calls. Neither the Shifted Boundary Method module, nor the MOOSE framework, nor the other MOOSE modules are designed to interact with any external system directly through remote procedure calls. Any code to code coupling performed using the framework are done directly through API calls either in a static binary or after loading shared libraries.
Security Structure
The Shifted Boundary Method module does not require any elevated privileges to operate and does not run any stateful services, daemons or other network programs. Distributed runs rely on the MPI library.
Requirements Cross-Reference
- shifted_boundary_method: SBMSurfaceMeshBuilder
- 18.1.1The system shall
- report the closest distance vector and surface normal at element centroids when parsed-function and mesh-based surfaces are combined in a single query.
- build boundary element representations from an SBM surface mesh without a k-d tree when k-d tree construction is disabled.
- report when an SBM surface mesh is not watertight.
- return zero distance when the query point lies on the surface mesh.
Specification(s): coverage/omnibus, coverage/build_kd_tree_false, coverage/non_watertight, coverage/gradient_on_surface
Design: SBMSurfaceMeshBuilderShortestDistanceToSurfaceUnsignedDistanceToSurfaceMesh
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): RunAppExodiff
- 18.4.1The system shall be capable of performing point-in-polyhedron in-out testing to reclassify elements inside/outside a closed surface for different lambda cut fractions
- in 2D with lambda = 1.
- in 2D with lambda = 0.5.
- in 2D with lambda = 0.
- in 3D with lambda = 1.
- in 3D with lambda = 0.5.
- in 3D with lambda = 0.
Specification(s): sbm_test/2D_lambda_1, sbm_test/2D_lambda_0p5, sbm_test/2D_lambda_0, sbm_test/3D_lambda_1, sbm_test/3D_lambda_0p5, sbm_test/3D_lambda_0
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.2The system shall produce an in-out classification from an explicit axis-aligned ray that matches the classification from the automatically selected PCA ray direction, confirming the auto direction is reproducible for an anisotropic surface
- in 2D.
- in 3D.
Specification(s): auto_reproducibility/2D_auto_matches_fixed, auto_reproducibility/3D_auto_matches_fixed
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.3The system shall reject an InterceptedElementModifier lambda outside the inclusive range from zero to one.
Specification(s): invalid_lambda
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.4The system shall reject a non-positive tolerance for the point-in-polyhedron in-out test.
Specification(s): zero_tolerance
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.5The system shall reclassify elements inside/outside a surface described by a signed level-set function supplied to InterceptedElementModifier instead of a geometric in-out user object.
Specification(s): signed_function
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.6The system shall allow an InterceptedElementModifier to classify points using any user object implementing the point-in-surface check interface, including a signed-function checker.
Specification(s): signed_function_in_out_test
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.7The system shall assign a dedicated intercepted subdomain ID to elements the surface cuts through when mark_intercepted is enabled.
Specification(s): mark_intercepted
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.8The system shall reject an explicit lambda threshold when intercepted elements are assigned a dedicated subdomain ID.
Specification(s): mark_intercepted_with_lambda
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.9The system shall classify an element as intercepted when a closed surface lies within the element without enclosing any element nodes.
Specification(s): enclosed_surface
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.10The system shall classify an element as intercepted when a closed signed level-set surface lies within the element without enclosing any element nodes.
Specification(s): enclosed_surface_function
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.11The system shall classify an element whose nodes all lie outside a surface as intercepted rather than outside when the surface clips a finite region of the element interior, using the quadrature occupied-ratio check.
Specification(s): edge_clip_outside_guard
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.12The system shall apply the occupied-ratio in-out classification to a polygonal surface with sharp corners on a refined mesh, marking an element whose nodes all lie outside the polygon as intercepted where a corner clips the element interior.
Specification(s): triangle_clip_outside_guard
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.13The system shall write the oriented bounding box and ray meshes used by the in-out test to file when the corresponding file names are provided.
Specification(s): debug_mesh_output
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.14The system shall write the oriented bounding box and shortest-axis ray meshes built for the in-out test to standalone mesh files.
Specification(s): obb_write
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): CheckFiles
- 18.4.15The system shall report an error when mark_intercepted is enabled without specifying the intercepted subdomain ID.
Specification(s): mark_intercepted_missing_id
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.16The system shall report an error when an InterceptedElementModifier is configured with neither an in-out test user object nor a signed distance function.
Specification(s): no_in_out_test
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.17The system shall report an error when an InterceptedElementModifier receives an in-out test user object that does not implement the point-in-surface check interface.
Specification(s): in_out_test_wrong_type
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.18The system shall report an error when an InterceptedElementModifier is configured with both an in-out test user object and a signed distance function.
Specification(s): both_geometry_sources
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.12.1The system shall identify open and closed two-dimensional boundary loops as non-watertight and watertight, respectively.
Specification(s): two_d_open_and_closed_geometry
Design: SBMSurfaceMeshBuilder
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.12.2The system shall identify open and closed three-dimensional boundary surfaces as non-watertight and watertight, respectively.
Specification(s): three_d_open_and_closed_geometry
Design: SBMSurfaceMeshBuilder
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- shifted_boundary_method: ShortestDistanceToSurface
- 18.1.1The system shall
- report the closest distance vector and surface normal at element centroids when parsed-function and mesh-based surfaces are combined in a single query.
- build boundary element representations from an SBM surface mesh without a k-d tree when k-d tree construction is disabled.
- report when an SBM surface mesh is not watertight.
- return zero distance when the query point lies on the surface mesh.
Specification(s): coverage/omnibus, coverage/build_kd_tree_false, coverage/non_watertight, coverage/gradient_on_surface
Design: SBMSurfaceMeshBuilderShortestDistanceToSurfaceUnsignedDistanceToSurfaceMesh
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): RunAppExodiff
- 18.2.1The system shall compute
- the distance field in 2D.
- the distance field in 3D.
- the distance field in 2D when signed level-set and mesh-based surfaces are combined.
- the distance field in 3D when signed level-set and mesh-based surfaces are combined.
- a signed distance field in 2D using a point-in-polyhedron in-out test to set the sign, including a gradient that points outward across the surface on both the interior and exterior sides.
- a signed distance field whose sign is supplied by a union checker through the point-in-surface check interface.
Specification(s): distance_test/2D_distance_refine, distance_test/3D_distance_refine, distance_test/2D_multiple_distance_refine, distance_test/3D_multiple_distance_refine, distance_test/2D_signed_distance, distance_test/2D_signed_distance_union_in_out_test
Design: UnsignedDistanceToSurfaceMeshSignedDistanceToSurfaceMeshShortestDistanceToSurface
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.2.2The system shall throw an error
- if ElementCentroidToSurfaceDistanceAux is applied to a nodal variable.
- if ShortestDistanceToSurface receives a function whose type is not ParsedFunction, UnsignedDistanceToSurfaceMesh, or SignedDistanceToSurfaceMesh.
- if the embedding mesh dimension does not match the SBM surface mesh dimension plus one.
- if the SBM surface mesh contains element types other than EDGE2 or TRI3.
- if the SBM surface mesh is distributed, since SBMSurfaceMeshBuilder requires a replicated mesh for its In-Out test.
- if an UnsignedDistanceToSurfaceMesh function is paired with an SBMSurfaceMeshBuilder that was configured without a KDTree.
- if an UnsignedDistanceToSurfaceMesh function has neither a surface builder nor an interface manager.
- if an UnsignedDistanceToSurfaceMesh function has both a surface builder and an interface manager.
- if manager mode does not identify both subdomains forming the interface.
- if interface subdomain IDs are supplied in surface-builder mode.
- if manager mode identifies an interface using the same subdomain twice.
- if a signed distance is requested from a function that is neither a ParsedFunction nor a SignedDistanceToSurfaceMesh.
- if SignedDistanceToSurfaceMesh receives an in-out test user object that does not implement the point-in-surface check interface.
Specification(s): error_test/nodal_variable, error_test/unsupported_surface_function, error_test/dim_mismatch, error_test/unsupported_element_type, error_test/distributed_surface_mesh, error_test/unsigned_distance_without_kd_tree, error_test/missing_source, error_test/ambiguous_source, error_test/manager_missing_ids, error_test/builder_with_ids, error_test/manager_same_ids, error_test/signed_distance_invalid_strategy, error_test/signed_distance_in_out_test_wrong_type
Design: UnsignedDistanceToSurfaceMeshSignedDistanceToSurfaceMeshShortestDistanceToSurface
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- shifted_boundary_method: UnsignedDistanceToSurfaceMesh
- 18.1.1The system shall
- report the closest distance vector and surface normal at element centroids when parsed-function and mesh-based surfaces are combined in a single query.
- build boundary element representations from an SBM surface mesh without a k-d tree when k-d tree construction is disabled.
- report when an SBM surface mesh is not watertight.
- return zero distance when the query point lies on the surface mesh.
Specification(s): coverage/omnibus, coverage/build_kd_tree_false, coverage/non_watertight, coverage/gradient_on_surface
Design: SBMSurfaceMeshBuilderShortestDistanceToSurfaceUnsignedDistanceToSurfaceMesh
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): RunAppExodiff
- 18.2.1The system shall compute
- the distance field in 2D.
- the distance field in 3D.
- the distance field in 2D when signed level-set and mesh-based surfaces are combined.
- the distance field in 3D when signed level-set and mesh-based surfaces are combined.
- a signed distance field in 2D using a point-in-polyhedron in-out test to set the sign, including a gradient that points outward across the surface on both the interior and exterior sides.
- a signed distance field whose sign is supplied by a union checker through the point-in-surface check interface.
Specification(s): distance_test/2D_distance_refine, distance_test/3D_distance_refine, distance_test/2D_multiple_distance_refine, distance_test/3D_multiple_distance_refine, distance_test/2D_signed_distance, distance_test/2D_signed_distance_union_in_out_test
Design: UnsignedDistanceToSurfaceMeshSignedDistanceToSurfaceMeshShortestDistanceToSurface
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.2.2The system shall throw an error
- if ElementCentroidToSurfaceDistanceAux is applied to a nodal variable.
- if ShortestDistanceToSurface receives a function whose type is not ParsedFunction, UnsignedDistanceToSurfaceMesh, or SignedDistanceToSurfaceMesh.
- if the embedding mesh dimension does not match the SBM surface mesh dimension plus one.
- if the SBM surface mesh contains element types other than EDGE2 or TRI3.
- if the SBM surface mesh is distributed, since SBMSurfaceMeshBuilder requires a replicated mesh for its In-Out test.
- if an UnsignedDistanceToSurfaceMesh function is paired with an SBMSurfaceMeshBuilder that was configured without a KDTree.
- if an UnsignedDistanceToSurfaceMesh function has neither a surface builder nor an interface manager.
- if an UnsignedDistanceToSurfaceMesh function has both a surface builder and an interface manager.
- if manager mode does not identify both subdomains forming the interface.
- if interface subdomain IDs are supplied in surface-builder mode.
- if manager mode identifies an interface using the same subdomain twice.
- if a signed distance is requested from a function that is neither a ParsedFunction nor a SignedDistanceToSurfaceMesh.
- if SignedDistanceToSurfaceMesh receives an in-out test user object that does not implement the point-in-surface check interface.
Specification(s): error_test/nodal_variable, error_test/unsupported_surface_function, error_test/dim_mismatch, error_test/unsupported_element_type, error_test/distributed_surface_mesh, error_test/unsigned_distance_without_kd_tree, error_test/missing_source, error_test/ambiguous_source, error_test/manager_missing_ids, error_test/builder_with_ids, error_test/manager_same_ids, error_test/signed_distance_invalid_strategy, error_test/signed_distance_in_out_test_wrong_type
Design: UnsignedDistanceToSurfaceMeshSignedDistanceToSurfaceMeshShortestDistanceToSurface
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.11.1The system shall compute the normal distance vector from a point to a first-order line element when the normal projection of the point lies within the element.
Specification(s): edge_projection
Design: UnsignedDistanceToSurfaceMesh
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.11.2The system shall compute the distance vector from a point to the nearest endpoint of a first-order line element when the normal projection of the point lies outside the element.
Specification(s): edge_node_fallback
Design: UnsignedDistanceToSurfaceMesh
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.11.3The system shall compute the direction and magnitude of the distance vector from a point to a tilted first-order line element.
Specification(s): tilted_edge
Design: UnsignedDistanceToSurfaceMesh
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.11.4The system shall compute the normal distance vector from a point to a first-order triangular surface element when the normal projection of the point lies within the element.
Specification(s): triangle_projection
Design: UnsignedDistanceToSurfaceMesh
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.11.5The system shall compute distance vectors from points on and off a tilted first-order triangular surface element to their nearest points on the element.
Specification(s): tilted_triangle
Design: UnsignedDistanceToSurfaceMesh
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- shifted_boundary_method: SignedDistanceToSurfaceMesh
- 18.2.1The system shall compute
- the distance field in 2D.
- the distance field in 3D.
- the distance field in 2D when signed level-set and mesh-based surfaces are combined.
- the distance field in 3D when signed level-set and mesh-based surfaces are combined.
- a signed distance field in 2D using a point-in-polyhedron in-out test to set the sign, including a gradient that points outward across the surface on both the interior and exterior sides.
- a signed distance field whose sign is supplied by a union checker through the point-in-surface check interface.
Specification(s): distance_test/2D_distance_refine, distance_test/3D_distance_refine, distance_test/2D_multiple_distance_refine, distance_test/3D_multiple_distance_refine, distance_test/2D_signed_distance, distance_test/2D_signed_distance_union_in_out_test
Design: UnsignedDistanceToSurfaceMeshSignedDistanceToSurfaceMeshShortestDistanceToSurface
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.2.2The system shall throw an error
- if ElementCentroidToSurfaceDistanceAux is applied to a nodal variable.
- if ShortestDistanceToSurface receives a function whose type is not ParsedFunction, UnsignedDistanceToSurfaceMesh, or SignedDistanceToSurfaceMesh.
- if the embedding mesh dimension does not match the SBM surface mesh dimension plus one.
- if the SBM surface mesh contains element types other than EDGE2 or TRI3.
- if the SBM surface mesh is distributed, since SBMSurfaceMeshBuilder requires a replicated mesh for its In-Out test.
- if an UnsignedDistanceToSurfaceMesh function is paired with an SBMSurfaceMeshBuilder that was configured without a KDTree.
- if an UnsignedDistanceToSurfaceMesh function has neither a surface builder nor an interface manager.
- if an UnsignedDistanceToSurfaceMesh function has both a surface builder and an interface manager.
- if manager mode does not identify both subdomains forming the interface.
- if interface subdomain IDs are supplied in surface-builder mode.
- if manager mode identifies an interface using the same subdomain twice.
- if a signed distance is requested from a function that is neither a ParsedFunction nor a SignedDistanceToSurfaceMesh.
- if SignedDistanceToSurfaceMesh receives an in-out test user object that does not implement the point-in-surface check interface.
Specification(s): error_test/nodal_variable, error_test/unsupported_surface_function, error_test/dim_mismatch, error_test/unsupported_element_type, error_test/distributed_surface_mesh, error_test/unsigned_distance_without_kd_tree, error_test/missing_source, error_test/ambiguous_source, error_test/manager_missing_ids, error_test/builder_with_ids, error_test/manager_same_ids, error_test/signed_distance_invalid_strategy, error_test/signed_distance_in_out_test_wrong_type
Design: UnsignedDistanceToSurfaceMeshSignedDistanceToSurfaceMeshShortestDistanceToSurface
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.10.1The system shall compute the vector from a point to the zero level set of a signed-distance function.
Specification(s): plane_distance
Design: SignedDistanceToSurfaceMesh
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.10.2The system shall return a zero distance vector for a function with zero gradient.
Specification(s): zero_gradient
Design: SignedDistanceToSurfaceMesh
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.10.3The system shall compute the unit gradient normal of a signed-distance function.
Specification(s): plane_normal
Design: SignedDistanceToSurfaceMesh
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.10.4The system shall select the distance and normal vectors of the nearest surface from multiple functions.
Specification(s): closest_surface
Design: SignedDistanceToSurfaceMesh
Issue(s): #31937
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.10.5The system shall compute the signed distance to a union as the minimum signed distance of its component functions.
Specification(s): union_distance
Design: SignedDistanceToSurfaceMesh
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.10.6The system shall reject unsupported function types when computing signed distance to a union.
Specification(s): unsupported_union_function
Design: SignedDistanceToSurfaceMesh
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- shifted_boundary_method: Grain Boundary Shifted Cohesive Zone Test
- 18.3.1The system shall solve a shifted cohesive zone problem with volumetric locking correction on a polycrystalline grain structure whose grain IDs and interfaces are determined from one complete boundary mesh.
Specification(s): grain_boundary_sczm_coarse_lambda1
Design: Grain Boundary Shifted Cohesive Zone Test
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 18.3.2The system shall orient true-interface normals consistently regardless of interface-subdomain pair ordering.
Specification(s): reversed_interface_pairs
Design: Grain Boundary Shifted Cohesive Zone Test
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 18.3.3The system shall retain an element input subdomain when no grain occupancy is selected.
Specification(s): outside_grains
Design: Grain Boundary Shifted Cohesive Zone Test
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.3.4The system shall preserve grain names when boundary subdomain IDs are zero-based and noncontiguous.
Specification(s): sparse_grain_ids
Design: Grain Boundary Shifted Cohesive Zone Test
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.3.5The system shall solve a shifted cohesive zone problem on a polycrystalline grain structure using a separately loaded surface mesh for each grain interface.
Specification(s): grain_boundary_sczm_separate_interfaces
Design: Grain Boundary Shifted Cohesive Zone Test
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 18.3.6The system shall associate each surrogate boundary with a user-selected saved surface mesh.
Specification(s): explicit_surface_mesh_names
Design: Grain Boundary Shifted Cohesive Zone Test
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 18.3.7The system shall throw an error
- if the maximum k-d tree leaf size is nonpositive.
- if a saved surface mesh is not provided for each shifted cohesive zone boundary.
- if one saved surface mesh is reused for multiple shifted cohesive zone boundaries.
- if one explicit subdomain pair is not provided for each surrogate boundary.
- if an explicit interface entry does not contain two subdomain IDs.
- if the two subdomain IDs in an explicit interface entry are not distinct.
- if explicit and automatically generated distance sources are both specified.
- if an explicit subdomain pair is absent from the detected complete interface.
- if partially overlapping interface faces are found in a nonconformal complete interface mesh.
Specification(s): error_tests/invalid_leaf_max_size, error_tests/surface_mesh_count_mismatch, error_tests/duplicate_surface_mesh, error_tests/complete_interface_pair_count, error_tests/complete_interface_pair_size, error_tests/complete_interface_distinct_pair, error_tests/ambiguous_distance_source, error_tests/unknown_manager_pair, error_tests/nonconformal_interface
Design: Grain Boundary Shifted Cohesive Zone Test
Issue(s): #33666
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- shifted_boundary_method: InterceptedElementModifier
- 18.4.1The system shall be capable of performing point-in-polyhedron in-out testing to reclassify elements inside/outside a closed surface for different lambda cut fractions
- in 2D with lambda = 1.
- in 2D with lambda = 0.5.
- in 2D with lambda = 0.
- in 3D with lambda = 1.
- in 3D with lambda = 0.5.
- in 3D with lambda = 0.
Specification(s): sbm_test/2D_lambda_1, sbm_test/2D_lambda_0p5, sbm_test/2D_lambda_0, sbm_test/3D_lambda_1, sbm_test/3D_lambda_0p5, sbm_test/3D_lambda_0
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.2The system shall produce an in-out classification from an explicit axis-aligned ray that matches the classification from the automatically selected PCA ray direction, confirming the auto direction is reproducible for an anisotropic surface
- in 2D.
- in 3D.
Specification(s): auto_reproducibility/2D_auto_matches_fixed, auto_reproducibility/3D_auto_matches_fixed
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.3The system shall reject an InterceptedElementModifier lambda outside the inclusive range from zero to one.
Specification(s): invalid_lambda
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.4The system shall reject a non-positive tolerance for the point-in-polyhedron in-out test.
Specification(s): zero_tolerance
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.5The system shall reclassify elements inside/outside a surface described by a signed level-set function supplied to InterceptedElementModifier instead of a geometric in-out user object.
Specification(s): signed_function
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.6The system shall allow an InterceptedElementModifier to classify points using any user object implementing the point-in-surface check interface, including a signed-function checker.
Specification(s): signed_function_in_out_test
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.7The system shall assign a dedicated intercepted subdomain ID to elements the surface cuts through when mark_intercepted is enabled.
Specification(s): mark_intercepted
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.8The system shall reject an explicit lambda threshold when intercepted elements are assigned a dedicated subdomain ID.
Specification(s): mark_intercepted_with_lambda
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.9The system shall classify an element as intercepted when a closed surface lies within the element without enclosing any element nodes.
Specification(s): enclosed_surface
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.10The system shall classify an element as intercepted when a closed signed level-set surface lies within the element without enclosing any element nodes.
Specification(s): enclosed_surface_function
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.11The system shall classify an element whose nodes all lie outside a surface as intercepted rather than outside when the surface clips a finite region of the element interior, using the quadrature occupied-ratio check.
Specification(s): edge_clip_outside_guard
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.12The system shall apply the occupied-ratio in-out classification to a polygonal surface with sharp corners on a refined mesh, marking an element whose nodes all lie outside the polygon as intercepted where a corner clips the element interior.
Specification(s): triangle_clip_outside_guard
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.13The system shall write the oriented bounding box and ray meshes used by the in-out test to file when the corresponding file names are provided.
Specification(s): debug_mesh_output
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.14The system shall write the oriented bounding box and shortest-axis ray meshes built for the in-out test to standalone mesh files.
Specification(s): obb_write
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): CheckFiles
- 18.4.15The system shall report an error when mark_intercepted is enabled without specifying the intercepted subdomain ID.
Specification(s): mark_intercepted_missing_id
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.16The system shall report an error when an InterceptedElementModifier is configured with neither an in-out test user object nor a signed distance function.
Specification(s): no_in_out_test
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.17The system shall report an error when an InterceptedElementModifier receives an in-out test user object that does not implement the point-in-surface check interface.
Specification(s): in_out_test_wrong_type
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.18The system shall report an error when an InterceptedElementModifier is configured with both an in-out test user object and a signed distance function.
Specification(s): both_geometry_sources
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.7.1The system shall compute the fraction of a quadrilateral element occupied by the physical domain when the element is fully inside, fully outside, or cut in half by the true boundary.
Specification(s): unit_square
Design: InterceptedElementModifier
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.7.2The system shall distinguish nodal and quadrature occupancy when a physical domain is enclosed within an element or its boundary passes through the element nodes.
Specification(s): enclosed_domain
Design: InterceptedElementModifier
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.8.1The system shall classify fully active and fully inactive elements independently of partial-element options.
Specification(s): fully_active_or_inactive
Design: InterceptedElementModifier
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.8.2The system shall assign the intercepted subdomain to partial elements when intercepted-element marking is enabled.
Specification(s): mark_intercepted
Design: InterceptedElementModifier
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.8.3The system shall classify partial elements by comparing their inactive fraction with the lambda threshold.
Specification(s): lambda_threshold
Design: InterceptedElementModifier
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.8.4The system shall apply partial-element classification when all nodes are active but the active fraction is not one.
Specification(s): enclosed_surface
Design: InterceptedElementModifier
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.8.5The system shall determine element inactivity from active fraction and the endpoint and interior values of the lambda threshold.
Specification(s): inactive_predicate
Design: InterceptedElementModifier
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.8.6The system shall prefer a fully occupied candidate subdomain over partial candidates and resolve multiple fully occupied candidates by lowest subdomain ID.
Specification(s): fully_occupied_precedence
Design: InterceptedElementModifier
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.8.7The system shall select the largest partial subdomain occupancy, resolve fuzzy ties by lowest subdomain ID, and apply intercepted and lambda policies.
Specification(s): partial_selection
Design: InterceptedElementModifier
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.8.8The system shall select no subdomain when no candidate occupies any part of an element.
Specification(s): no_occupied_candidate
Design: InterceptedElementModifier
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- shifted_boundary_method: PointInPolyhedronCheckUO
- 18.4.1The system shall be capable of performing point-in-polyhedron in-out testing to reclassify elements inside/outside a closed surface for different lambda cut fractions
- in 2D with lambda = 1.
- in 2D with lambda = 0.5.
- in 2D with lambda = 0.
- in 3D with lambda = 1.
- in 3D with lambda = 0.5.
- in 3D with lambda = 0.
Specification(s): sbm_test/2D_lambda_1, sbm_test/2D_lambda_0p5, sbm_test/2D_lambda_0, sbm_test/3D_lambda_1, sbm_test/3D_lambda_0p5, sbm_test/3D_lambda_0
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.2The system shall produce an in-out classification from an explicit axis-aligned ray that matches the classification from the automatically selected PCA ray direction, confirming the auto direction is reproducible for an anisotropic surface
- in 2D.
- in 3D.
Specification(s): auto_reproducibility/2D_auto_matches_fixed, auto_reproducibility/3D_auto_matches_fixed
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.3The system shall reject an InterceptedElementModifier lambda outside the inclusive range from zero to one.
Specification(s): invalid_lambda
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.4The system shall reject a non-positive tolerance for the point-in-polyhedron in-out test.
Specification(s): zero_tolerance
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.5The system shall reclassify elements inside/outside a surface described by a signed level-set function supplied to InterceptedElementModifier instead of a geometric in-out user object.
Specification(s): signed_function
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.6The system shall allow an InterceptedElementModifier to classify points using any user object implementing the point-in-surface check interface, including a signed-function checker.
Specification(s): signed_function_in_out_test
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.7The system shall assign a dedicated intercepted subdomain ID to elements the surface cuts through when mark_intercepted is enabled.
Specification(s): mark_intercepted
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.8The system shall reject an explicit lambda threshold when intercepted elements are assigned a dedicated subdomain ID.
Specification(s): mark_intercepted_with_lambda
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.9The system shall classify an element as intercepted when a closed surface lies within the element without enclosing any element nodes.
Specification(s): enclosed_surface
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.10The system shall classify an element as intercepted when a closed signed level-set surface lies within the element without enclosing any element nodes.
Specification(s): enclosed_surface_function
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.11The system shall classify an element whose nodes all lie outside a surface as intercepted rather than outside when the surface clips a finite region of the element interior, using the quadrature occupied-ratio check.
Specification(s): edge_clip_outside_guard
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.12The system shall apply the occupied-ratio in-out classification to a polygonal surface with sharp corners on a refined mesh, marking an element whose nodes all lie outside the polygon as intercepted where a corner clips the element interior.
Specification(s): triangle_clip_outside_guard
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.13The system shall write the oriented bounding box and ray meshes used by the in-out test to file when the corresponding file names are provided.
Specification(s): debug_mesh_output
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.4.14The system shall write the oriented bounding box and shortest-axis ray meshes built for the in-out test to standalone mesh files.
Specification(s): obb_write
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): CheckFiles
- 18.4.15The system shall report an error when mark_intercepted is enabled without specifying the intercepted subdomain ID.
Specification(s): mark_intercepted_missing_id
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.16The system shall report an error when an InterceptedElementModifier is configured with neither an in-out test user object nor a signed distance function.
Specification(s): no_in_out_test
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.17The system shall report an error when an InterceptedElementModifier receives an in-out test user object that does not implement the point-in-surface check interface.
Specification(s): in_out_test_wrong_type
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.4.18The system shall report an error when an InterceptedElementModifier is configured with both an in-out test user object and a signed distance function.
Specification(s): both_geometry_sources
Design: InterceptedElementModifierPointInPolyhedronCheckUOSBMSurfaceMeshBuilder
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- shifted_boundary_method: Shifted Cohesive Zone Physics System
- 18.5.1The system shall reproduce a manufactured displacement solution for a small-strain shifted cohesive zone problem across a non-interface-fitted material interface.
Specification(s): manufactured_solution
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.5.2The system shall solve a small-strain shifted cohesive zone problem on an angled, non-interface-fitted interface with an elastic traction-separation law.
Specification(s): angled_ad_elastic
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 18.5.3The system shall compute an automatic-differentiation Jacobian consistent with its residual for a small-strain shifted cohesive zone problem.
Specification(s): angled_ad_elastic_jacobian
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- 18.5.4The system shall compute an automatic-differentiation Jacobian consistent with its residual when the shifted cohesive zone directional correction is disabled.
Specification(s): angled_ad_elastic_no_directional_correction_jacobian
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- 18.5.5The system shall compute an automatic-differentiation Jacobian consistent with its residual when shifted cohesive zone evaluation is disabled.
Specification(s): angled_ad_elastic_no_shifted_jacobian
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- 18.5.6The system shall solve a small-strain shifted cohesive zone problem on an angled, non-interface-fitted interface using the Salehani-Irani traction law.
Specification(s): angled_nonad_salehani
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 18.5.7The system shall solve a shifted cohesive zone problem on a non-interface-fitted triangular mesh using the Salehani-Irani traction law.
Specification(s): rectangle_sczm_tri_material
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 18.5.8The system shall reproduce the reaction-force history of an equivalent interface-fitted cohesive zone model within one percent by
- computing the reaction-force history for a shifted cohesive zone problem on a non-interface-fitted mesh,
- computing the reaction-force history for an equivalent interface-fitted cohesive zone problem,
- and comparing the two reaction-force histories.
Specification(s): rectangle_sczm_czm_reaction_comparison/shifted, rectangle_sczm_czm_reaction_comparison/fitted, rectangle_sczm_czm_reaction_comparison/compare
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): CheckFilesRunCommand
- 18.5.9The system shall compute a Jacobian consistent with its residual for a small-strain shifted cohesive zone problem with directional correction enabled when automatic differentiation is disabled.
Specification(s): rectangle_sczm_tri_material_jacobian
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- 18.5.10The system shall compute a Jacobian consistent with its residual for a small-strain shifted cohesive zone problem with directional correction disabled when automatic differentiation is disabled.
Specification(s): rectangle_sczm_tri_material_no_directional_correction_jacobian
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- 18.5.11The system shall compute a Jacobian consistent with its residual for a cohesive zone problem with shifted evaluation disabled when automatic differentiation is disabled.
Specification(s): rectangle_sczm_tri_material_no_shifted_jacobian
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- 18.5.12The system shall compute a Jacobian consistent with its residual for a small-strain shifted cohesive zone problem when volumetric locking correction is inherited and automatic differentiation is disabled.
Specification(s): rectangle_sczm_tri_material_volumetric_locking_jacobian
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- 18.5.13The system shall compute a Jacobian consistent with its residual when matching volumetric locking correction settings are explicitly provided to the shifted cohesive zone and solid mechanics Physics blocks.
Specification(s): rectangle_sczm_tri_material_explicit_volumetric_locking_jacobian
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- 18.5.14The system shall solve a cohesive zone problem without distance data when shifted evaluation is disabled.
Specification(s): no_shifted
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.5.15The system shall use user-selected stress and constitutive-tangent properties with a common base-name prefix.
Specification(s): named_properties
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.5.16The system shall use the derivative of first Piola-Kirchhoff stress with respect to deformation gradient as the default constitutive tangent.
Specification(s): pk1_tangent
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.5.17The system shall contract the derivative of first Piola-Kirchhoff stress with respect to deformation gradient into a Jacobian consistent with its residual.
Specification(s): pk1_tangent_jacobian
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- 18.5.18The system shall compute a Jacobian consistent with its residual when the first Piola-Kirchhoff tangent definition is specified explicitly.
Specification(s): explicit_pk1_tangent_definition_jacobian
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): PetscJacobianTester
- 18.5.19The system shall throw an error
- if a custom constitutive-tangent property has no explicit mathematical definition.
- if explicit tangent-property configuration is used with automatic differentiation enabled.
- if an explicit constitutive-tangent definition is used with automatic differentiation enabled.
Specification(s): tangent_error_tests/custom_tangent_requires_definition, tangent_error_tests/ad_tangent_rejected, tangent_error_tests/ad_tangent_definition_rejected
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.5.20The system shall use a stress property with a user-selected base-name prefix when automatic differentiation is enabled.
Specification(s): ad_named_stress
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.5.21The system shall throw an error
- if explicitly specified volumetric locking correction settings differ between shifted cohesive zone and solid mechanics Physics blocks.
- if unsupported finite-strain cohesive zone kinematics are requested.
- if surface meshes are supplied when automatic distance generation is disabled.
- if the number of shifted cohesive zone displacement variables does not match the mesh dimension.
- if surface watertightness checks are enabled when automatic distance generation is disabled.
- if an interface matching tolerance is supplied without a complete interface mesh.
- if interface subdomain pairs are supplied without a complete interface mesh.
Specification(s): action_error_tests/volumetric_locking_mismatch, action_error_tests/finite_strain_rejected, action_error_tests/surface_meshes_without_generation, action_error_tests/displacement_dimension_mismatch, action_error_tests/watertightness_without_generation, action_error_tests/matching_tolerance_without_complete_mesh, action_error_tests/subdomain_pairs_without_complete_mesh
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.5.22The system shall report an error or warning
- if neither a surface function nor an interface manager is provided as the source of boundary distance data.
- if both surface-function and interface-manager sources of boundary distance data are provided.
- if interface subdomain pairs are provided when boundary distances come from surface functions instead of an interface manager.
- if a boundary is assigned more than once in a boundary distance user object.
- if one surface function is not provided for each configured surrogate boundary.
- if shifted cohesive zone evaluation requests distance data for a boundary on which distance data were not computed.
- if a computed boundary distance exceeds the estimated element scale.
Specification(s): distance_error_tests/distance_source_missing, distance_error_tests/distance_source_ambiguous, distance_error_tests/subdomain_pairs_without_manager, distance_error_tests/duplicate_distance_boundary, distance_error_tests/surface_boundary_count_mismatch, distance_error_tests/missing_distance_data, distance_error_tests/large_distance_warning
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- 18.5.23The system shall orient true-interface normals so their integrated area correction factor is positive across processes and threads.
Specification(s): reversed_function_normal
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): CSVDiff
- 18.5.24The system shall solve a shifted cohesive zone problem and output the results in Exodus format.
Specification(s): rectangle_sczm_tri_material_exodus
Design: Shifted Cohesive Zone Physics System
Issue(s): #33666
Collection(s): FUNCTIONAL
Type(s): Exodiff
- shifted_boundary_method: SubdomainElementModifier
- 18.6.1The system shall assign subdomain IDs to a background mesh from grain-boundary loops using per-subdomain in-out tests, marking each element with the grain that occupies the largest area fraction when several grains meet at interior corners.
Specification(s): grain_corner
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.6.2The system shall assign a dedicated intercepted subdomain ID to background elements straddling a grain boundary when mark_intercepted is enabled in SubdomainElementModifier.
Specification(s): mark_intercepted
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.6.3The system shall report, for an arbitrary point, which grain (subdomain) of a SurfaceMeshBySubdomainBuilder surface mesh contains it and whether it lies inside any grain, returning the invalid-subdomain sentinel and a not-inside result for points outside every grain.
Specification(s): subdomain_point_query
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.6.4The system shall report whether the SurfaceMeshBySubdomainBuilder surface mesh is watertight when watertightness checking is enabled.
Specification(s): watertight_report
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): RunApp
- 18.6.5The system shall throw an error
- if the SurfaceMeshBySubdomainBuilder surface mesh is distributed, since it requires a replicated mesh for its In-Out test.
- if the embedding mesh dimension does not match the surface mesh dimension plus one.
- if the SurfaceMeshBySubdomainBuilder surface mesh contains element types other than EDGE2 or TRI3.
- if the fixed_x_ray method is requested for PointInSubdomainCheckUO, which performs per-subdomain ray-casting and cannot use the whole-mesh TriangleManifold engine.
- if a point is contained in more than one subdomain of a PointInSubdomainCheckUO surface mesh, since a single-subdomain query is then ambiguous.
Specification(s): error_test/distributed_surface_mesh, error_test/dim_mismatch, error_test/unsupported_element_type, error_test/fixed_x_ray_unsupported, error_test/ambiguous_subdomain
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- shifted_boundary_method: SurfaceMeshBySubdomainBuilder
- 18.6.1The system shall assign subdomain IDs to a background mesh from grain-boundary loops using per-subdomain in-out tests, marking each element with the grain that occupies the largest area fraction when several grains meet at interior corners.
Specification(s): grain_corner
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.6.2The system shall assign a dedicated intercepted subdomain ID to background elements straddling a grain boundary when mark_intercepted is enabled in SubdomainElementModifier.
Specification(s): mark_intercepted
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.6.3The system shall report, for an arbitrary point, which grain (subdomain) of a SurfaceMeshBySubdomainBuilder surface mesh contains it and whether it lies inside any grain, returning the invalid-subdomain sentinel and a not-inside result for points outside every grain.
Specification(s): subdomain_point_query
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.6.4The system shall report whether the SurfaceMeshBySubdomainBuilder surface mesh is watertight when watertightness checking is enabled.
Specification(s): watertight_report
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): RunApp
- 18.6.5The system shall throw an error
- if the SurfaceMeshBySubdomainBuilder surface mesh is distributed, since it requires a replicated mesh for its In-Out test.
- if the embedding mesh dimension does not match the surface mesh dimension plus one.
- if the SurfaceMeshBySubdomainBuilder surface mesh contains element types other than EDGE2 or TRI3.
- if the fixed_x_ray method is requested for PointInSubdomainCheckUO, which performs per-subdomain ray-casting and cannot use the whole-mesh TriangleManifold engine.
- if a point is contained in more than one subdomain of a PointInSubdomainCheckUO surface mesh, since a single-subdomain query is then ambiguous.
Specification(s): error_test/distributed_surface_mesh, error_test/dim_mismatch, error_test/unsupported_element_type, error_test/fixed_x_ray_unsupported, error_test/ambiguous_subdomain
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- shifted_boundary_method: PointInSubdomainCheckUO
- 18.6.1The system shall assign subdomain IDs to a background mesh from grain-boundary loops using per-subdomain in-out tests, marking each element with the grain that occupies the largest area fraction when several grains meet at interior corners.
Specification(s): grain_corner
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.6.2The system shall assign a dedicated intercepted subdomain ID to background elements straddling a grain boundary when mark_intercepted is enabled in SubdomainElementModifier.
Specification(s): mark_intercepted
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.6.3The system shall report, for an arbitrary point, which grain (subdomain) of a SurfaceMeshBySubdomainBuilder surface mesh contains it and whether it lies inside any grain, returning the invalid-subdomain sentinel and a not-inside result for points outside every grain.
Specification(s): subdomain_point_query
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): Exodiff
- 18.6.4The system shall report whether the SurfaceMeshBySubdomainBuilder surface mesh is watertight when watertightness checking is enabled.
Specification(s): watertight_report
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): RunApp
- 18.6.5The system shall throw an error
- if the SurfaceMeshBySubdomainBuilder surface mesh is distributed, since it requires a replicated mesh for its In-Out test.
- if the embedding mesh dimension does not match the surface mesh dimension plus one.
- if the SurfaceMeshBySubdomainBuilder surface mesh contains element types other than EDGE2 or TRI3.
- if the fixed_x_ray method is requested for PointInSubdomainCheckUO, which performs per-subdomain ray-casting and cannot use the whole-mesh TriangleManifold engine.
- if a point is contained in more than one subdomain of a PointInSubdomainCheckUO surface mesh, since a single-subdomain query is then ambiguous.
Specification(s): error_test/distributed_surface_mesh, error_test/dim_mismatch, error_test/unsupported_element_type, error_test/fixed_x_ray_unsupported, error_test/ambiguous_subdomain
Design: SubdomainElementModifierSurfaceMeshBySubdomainBuilderPointInSubdomainCheckUO
Issue(s): #33397
Collection(s): FUNCTIONALFAILURE_ANALYSIS
Type(s): RunException
- shifted_boundary_method: AdaptiveRayContainmentCheck
- 18.9.1The system shall write an oriented three-dimensional bounding box as a mesh containing a first-order hexahedral element whose vertices coincide with the corners of the box.
Specification(s): write_3d_box
Design: AdaptiveRayContainmentCheck
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.9.2The system shall write an oriented two-dimensional bounding box as a mesh containing a first-order quadrilateral element whose vertices coincide with the corners of the box.
Specification(s): write_2d_box
Design: AdaptiveRayContainmentCheck
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.9.3The system shall write a ray along the shortest axis of an oriented bounding box as a mesh containing a first-order line element.
Specification(s): write_ray
Design: AdaptiveRayContainmentCheck
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.9.4The system shall report geometry, projected coordinates, and point containment for an axis-aligned oriented bounding box.
Specification(s): axis_aligned_queries
Design: AdaptiveRayContainmentCheck
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.9.5The system shall report projected coordinates and point containment in the local basis of a rotated oriented bounding box.
Specification(s): rotated_queries
Design: AdaptiveRayContainmentCheck
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest
- 18.9.6The system shall initialize the corners and centroid of an oriented bounding box constructed without geometric data at the origin.
Specification(s): default_construction
Design: AdaptiveRayContainmentCheck
Issue(s): #33397
Collection(s): FUNCTIONAL
Type(s): GoogleTest