Skip to content

Conversation

@danielemoretto44
Copy link

@danielemoretto44 danielemoretto44 commented Oct 23, 2025

This PR implements the mortar method for solid mechanics to enforce continuity between the displacements of non-conforming mesh bodies.

The formulation uses piecewise constant Lagrange multipliers with one-sided bubble stabilization, as described in
Hauret, P., & Le Tallec, P. (2007). A discontinuous stabilized mortar method for general 3d elastic problems. Computer Methods in Applied Mechanics and Engineering, 196(49-52), 4881-4900.

Useful references for implementation details:

  • contact searching:
    Yang, B., & Laursen, T. A. (2008). A contact searching algorithm including bounding volume trees applied to finite sliding mortar formulations. Computational mechanics, 41(2), 189-205.

  • segment based quadrature scheme:
    Laursen, T. A., Puso, M. A., & Sanders, J. (2012). Mortar contact formulations for deformable–deformable contact: past contributions and new extensions for enriched and embedded interface formulations. Computer methods in applied mechanics and engineering, 205, 3-15.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should not be here

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

results should not be here

@jhuang2601
Copy link
Contributor

@danielemoretto44 Could you please provide the reference of the implemented method, if available? A documentation for the work is highly expected.

protected:

/// The array containing the nodal position array.
//arrayView2d< real64 const, nodes::REFERENCE_POSITION_USD > const m_X;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove?

DofManager::Connector::Elem,
meshTargets );

//dofManager.addCoupling( solidMechanics::totalDisplacement::key(),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove?

solution.create( dofManager.numLocalDofs(), MPI_COMM_GEOS );


//Write the matrix pattern to a file for debugging
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also remove


// ParallelMatrix parallel_matrix_3;
// parallel_matrix_3.create( localMatrix.toViewConst(), dofManager.numLocalDofs(), MPI_COMM_GEOS );
// parallel_matrix_3.write("systemMatrix.mtx");
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clean up this function

/*
* ------------------------------------------------------------------------------------------------------------
* SPDX-License-Identifier: LGPL-2 std::map< ElementShape, array1d< localIndex > > const &
faceTypesToFaceElementsSlave = m_faceTypeToElementList.at( MortarSide::Slave );
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

something happened here

Copy link
Collaborator

@paveltomin paveltomin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just some cleanup

@danielemoretto44
Copy link
Author

@danielemoretto44 Could you please provide the reference of the implemented method, if available? A documentation for the work is highly expected.

@jhuang2601 I updated the description of the PR with some references. Please let me know if more material is needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changes XML input ci: run CUDA builds Allows to triggers (costly) CUDA jobs flag: requires rebaseline Requires rebaseline branch in integratedTests type: feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants