Skip to content

[beaminteraction] Individual augmentation scaling parameters#1897

Open
isteinbrecher wants to merge 2 commits into4C-multiphysics:mainfrom
isteinbrecher:individual-augmentation-parameters
Open

[beaminteraction] Individual augmentation scaling parameters#1897
isteinbrecher wants to merge 2 commits into4C-multiphysics:mainfrom
isteinbrecher:individual-augmentation-parameters

Conversation

@isteinbrecher
Copy link
Copy Markdown
Contributor

@maxfirmbach this should somewhat do what we talked about. We can now scale the augmentation blocks for beam and solid independently. This can be controlled via the parameters AUGMENTATION_SCALING_PARAMETER_BEAM and AUGMENTATION_SCALING_PARAMETER_SOLID which simply scale the penalty terms. The underlying penalty calculation is not changed.

I think it makes sense to do it this way, as a different penalty parameter for beam and solid violates momentum conservation and I prefer not to have that in the main evaluation routine of the penalty terms.

We still have to think about a good way to test this feature.

@isteinbrecher isteinbrecher changed the title Allow individual scaling parameters [beaminteractionAllow individual scaling parameters Mar 27, 2026
@isteinbrecher isteinbrecher changed the title [beaminteractionAllow individual scaling parameters [beaminteraction] Individual augmentation scaling parameters Mar 27, 2026
@isteinbrecher isteinbrecher requested a review from Copilot March 27, 2026 09:41
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds independent augmentation scaling for beam vs. solid DOFs in beam-to-solid volume meshtying by introducing two new input parameters and applying them during augmented Lagrange penalty regularization assembly.

Changes:

  • Introduce AUGMENTATION_SCALING_PARAMETER_BEAM / ..._SOLID parameters and plumb them through beam-to-solid params.
  • Expose beam/solid DOF row maps from the mortar manager to support selective scaling.
  • In indirect assembly, assemble penalty regularization into temporary objects, apply row-wise scaling, and accumulate into the global system.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/core/linalg/src/sparse/4C_linalg_fevector.hpp Inline-implements FEVector::multiply(...) via Epetra call wrapper.
src/beaminteraction/src/contact/beam_to_solid/4C_beaminteraction_contact_beam_to_solid_params_base.hpp Adds getters + members for beam/solid augmentation scaling parameters.
src/beaminteraction/src/contact/beam_to_solid/4C_beaminteraction_contact_beam_to_solid_params_base.cpp Initializes + reads new scaling parameters from input list.
src/beaminteraction/src/contact/beam_to_solid/4C_beaminteraction_contact_beam_to_solid_mortar_manager.hpp Adds accessors for beam and solid DOF row maps.
src/beaminteraction/src/contact/beam_to_solid/4C_beaminteraction_contact_beam_to_solid_input.cpp Registers new input parameters with defaults and descriptions.
src/beaminteraction/src/contact/4C_beaminteraction_contact_submodel_evaluator_assembly_manager_indirect.hpp Extends assembly manager interface to accept meshtying params.
src/beaminteraction/src/contact/4C_beaminteraction_contact_submodel_evaluator_assembly_manager_indirect.cpp Applies beam/solid-specific scaling to penalty regularization contributions before adding to system.
src/beaminteraction/src/contact/4C_beaminteraction_contact_submodel_evaluator_assembly_manager_direct.hpp Extends direct assembly manager interface to accept meshtying params.
src/beaminteraction/src/contact/4C_beaminteraction_contact_submodel_evaluator_assembly_manager_direct.cpp Updates signature to match new interface (params currently unused here).
src/beaminteraction/src/contact/4C_beaminteraction_contact_submodel_evaluator_assembly_manager.hpp Updates base virtual interface for evaluate_force_stiff(...).
src/beaminteraction/src/contact/4C_beaminteraction_contact_submodel_evaluator.cpp Passes meshtying params through to assembly managers.

@maxfirmbach maxfirmbach force-pushed the individual-augmentation-parameters branch from e65ea1d to 19d0d3c Compare March 30, 2026 11:11
@maxfirmbach maxfirmbach added the type: enhancement A new feature or enhancement to be implemented label Mar 30, 2026
Copy link
Copy Markdown
Contributor Author

@isteinbrecher isteinbrecher left a comment

Choose a reason for hiding this comment

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

@maxfirmbach Thanks for the changes!

Do you have an idea how we can actually test this feature? I think with the current test, different values of the scaling parmeters will lead to a passing test, since in the converged state these values don't matter. Should we maybe test all the "augmented" test cases with a single newton step and ConstDis predictor? (Of course it would be nice if we could simply test the global tangent matrix, but for now the other approach should also work).

};

add_scaling_values_to_vector(*solid_map,
beam_to_solid_volume_meshtying_params->get_augmentation_scaling_parameter_solid());
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Should we add a check at the beginning of this if clause, that this is not a nullptr?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Yes, I guess this makes sense.

@maxfirmbach
Copy link
Copy Markdown
Contributor

@maxfirmbach Thanks for the changes!

Do you have an idea how we can actually test this feature? I think with the current test, different values of the scaling parmeters will lead to a passing test, since in the converged state these values don't matter. Should we maybe test all the "augmented" test cases with a single newton step and ConstDis predictor? (Of course it would be nice if we could simply test the global tangent matrix, but for now the other approach should also work).

Yeah, not sure yet ... we could do it that way.

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

Labels

type: enhancement A new feature or enhancement to be implemented

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants