1 Introduction

For computation of flow problems with moving boundaries and interfaces (MBI), including fluid–structure interaction (FSI), we introduce a low-distortion mesh moving method based on fiber-reinforced hyperelasticity and optimized zero-stress state (ZSS). With the large-deformation mechanics equations, we can expect to have a unique mesh associated with each step of the boundary motion. The method has been developed targeting isogeometric discretization but is also applicable to finite element discretization. To show how the method introduced performs, we present 2D and 3D test computations with isogeometric discretization.

1.1 Moving-mesh methods

1.1.1 Key features

In moving-mesh (interface-tracking) methods, as the interface moves and the fluid mechanics domain changes its shape, the mesh moves to adjust to the shape change and to follow (i.e. “track”) the interface. Moving the fluid mechanics mesh to follow a fluid–solid interface enables us to control the mesh resolution near the interface, have high-resolution representation of the boundary layers, and obtain accurate solutions in such critical flow regions. These desirable features do not come easily or do not come at all with the nonmoving-mesh (interface-capturing) methods. In these methods, the interface geometry is somehow represented over a nonmoving fluid mechanics mesh, with more accuracy in some methods than in some others, but the key point is that the fluid mechanics mesh does not move to follow the interface. Because the mesh is not following the interface, independent of how accurately the interface geometry is represented, the boundary layer resolution will be limited by the fluid mechanics mesh resolution where the interface is.

1.1.2 Mixed moving-mesh/nonmoving-mesh methods

As mentioned in [1], one of course recognizes that certain classes of interfaces (such as free-surface and two-fluid flows with splashing) might be too complex to handle with an interface-tracking technique and, therefore, for all practical purposes, require an interface-capturing technique. The Mixed Interface-Tracking/Interface-Capturing Technique (MITICT) [2] was introduced in 2000 for computation of MBI problems that involve both fluid–solid interfaces that can be accurately tracked with a moving-mesh method and fluid–fluid interfaces that are too complex or unsteady to be tracked. Such fluid–fluid interfaces are captured over the mesh tracking the fluid–solid interfaces. Thinking similarly about MBI problems with an actual contact or other topology change, the Fluid–Solid Interface-Tracking/Interface-Capturing Technique (FSITICT) was introduced in [3] as the FSI version of the MITICT. In the FSITICT, we track the interface we can with a moving mesh, and capture over that moving mesh the interfaces we cannot track, specifically the interfaces where we need to have an actual contact between the solid surfaces.

1.1.3 Space–time (ST) methods

The Deforming-Spatial-Domain/Stabilized ST (DSD/SST) method [4,5,6], introduced for computation of flows with MBI, including FSI, is a moving-mesh method, possessing the associated desirable features. The stabilization components of this original DSD/SST are the Streamline-Upwind/Petrov-Galerkin (SUPG) [7] and Pressure-Stabilizing/Petrov-Galerkin (PSPG) [4] stabilizations, and therefore it is now called “ST-SUPS.” The ST Variational Multiscale (ST-VMS) method [8,9,10], which subsumes its precursor ST-SUPS is the VMS version of the DSD/SST. The VMS components of the ST-VMS are from the residual-based VMS (RBVMS) method [11,12,13,14]. The ST-VMS has two more stabilization terms beyond those in the ST-SUPS, and the additional terms give the method better turbulence modeling features. The ST-SUPS and ST-VMS, because of the higher-order accuracy of the ST framework (see [8, 9]), are desirable also in computations without MBI.

1.1.4 ALE-SUPS and ALE-VMS methods and classes of problems computed

In the moving-mesh category, the DSD/SST is an alternative to the Arbitrary Lagrangian–Eulerian (ALE) method, which is older (see, for example, [15]) and more commonly used. The ALE-VMS method [1, 16,17,18,19,20,21] is the VMS version of the ALE. It succeeded the ST-SUPS and ALE-SUPS [22] and preceded the ST-VMS. To increase their scope and accuracy, the ALE-VMS and RBVMS are often supplemented with special methods, such as those for weakly-enforced Dirichlet boundary conditions [23,24,25] and “sliding interfaces” [26, 27]. The ALE-SUPS, RBVMS and ALE-VMS have been applied to many classes of FSI, MBI and fluid mechanics problems. The classes of problems include ram-air parachute FSI [22], wind-turbine aerodynamics and FSI [28,29,30,31,32,33,34,35,36,37,38], more specifically, vertical-axis wind turbines [37,38,39,40], floating wind turbines [41], wind turbines in atmospheric boundary layers [36,37,38, 42], and fatigue damage in wind-turbine blades [43], patient-specific cardiovascular fluid mechanics and FSI [16, 44,45,46,47,48,49], biomedical-device FSI [50,51,52,53,54,55], ship hydrodynamics with free-surface flow and fluid–object interaction [56, 57], hydrodynamics and FSI of a hydraulic arresting gear [58, 59], hydrodynamics of tidal-stream turbines with free-surface flow [60], passive-morphing FSI in turbomachinery [61], bioinspired FSI for marine propulsion [62, 63], bridge aerodynamics and fluid–object interaction [64,65,66], and mixed ALE-VMS/Immersogeometric computations [53,54,55, 67, 68] in the framework of the FSITICT. Recent advances in stabilized and multiscale methods may be found for stratified incompressible flows in [69], for divergence-conforming discretizations of incompressible flows in [70], and for compressible flows with emphasis on gas-turbine modeling in [71].

1.1.5 Classes of problems computed with the ST-SUPS and ST-VMS

The ST-SUPS and ST-VMS have also been applied to many classes of FSI, MBI and fluid mechanics problems (see [72] for a comprehensive summary). The classes of problems include spacecraft parachute analysis for the landing-stage parachutes [1, 73,74,75,76], cover-separation parachutes [77] and the drogue parachutes [78,79,80], wind-turbine aerodynamics for horizontal-axis wind-turbine rotors [1, 28, 81, 82], full horizontal-axis wind-turbines [34, 83,84,85] and vertical-axis wind-turbines [37, 38, 86], flapping-wing aerodynamics for an actual locust [1, 87,88,89], bioinspired MAVs [84, 85, 90, 91] and wing-clapping [92, 93], blood flow analysis of cerebral aneurysms [84, 94], stent-blocked aneurysms [94,95,96], aortas [97,98,99,100,101], heart valves [85, 92, 99, 101,102,103,104,105,106], ventricle-valve-aorta sequences [107], and coronary arteries in motion [108], spacecraft aerodynamics [77, 109], thermo-fluid analysis of ground vehicles and their tires [10, 103], thermo-fluid analysis of disk brakes [110], flow-driven string dynamics in turbomachinery [111,112,113], flow analysis of turbocharger turbines [114,115,116,117,118], flow around tires with road contact and deformation [103, 119,120,121,122], fluid films [122, 123], ram-air parachutes [124], and compressible-flow spacecraft parachute aerodynamics [125, 126].

1.2 Special ST methods

A number of special ST methods have been developed in conjunction with the ST-SUPS and ST-VMS to increase their accuracy and scope. They are the ST Slip Interface (ST-SI) method [86, 110], ST Topology Change (ST-TC) method [92, 102], ST Isogeometric Analysis (ST-IGA) [8, 87, 114], and their integration as the ST-SI-TC [119], ST-SI-IGA [114], and ST-SI-TC-IGA [104, 105].

1.2.1 ST-SI

The ST-SI was introduced in [86], in the context of incompressible-flow equations, to retain the desirable moving-mesh features of the ST-VMS and ST-SUPS in computations involving spinning solid surfaces, such as a turbine rotor. The mesh covering the spinning surface spins with it, retaining the high-resolution representation of the boundary layers, while the mesh on the other side of the SI remains unaffected. This is accomplished by adding to the ST-VMS formulation interface terms similar to those in the version of the ALE-VMS for computations with sliding interfaces [26, 27]. The interface terms account for the compatibility conditions for the velocity and stress at the SI, accurately connecting the two sides of the solution. An ST-SI version where the SI is between fluid and solid domains was also presented in [86]. The SI in that case is a “fluid–solid SI” rather than a standard “fluid–fluid SI” and enables weak enforcement of the Dirichlet boundary conditions for the fluid. The ST-SI introduced in [110] for the coupled incompressible-flow and thermal-transport equations retains the high-resolution representation of the thermo-fluid boundary layers near spinning solid surfaces. These ST-SI methods have been applied to aerodynamic analysis of vertical-axis wind turbines [37, 38, 86], thermo-fluid analysis of disk brakes [110], flow-driven string dynamics in turbomachinery [111,112,113], flow analysis of turbocharger turbines [114,115,116,117,118], flow around tires with road contact and deformation [103, 119,120,121,122], fluid films [122, 123], aerodynamic analysis of ram-air parachutes [124], and flow analysis of heart valves [99, 101, 104,105,106] and ventricle-valve-aorta sequences [107].

In the ST-SI version presented in [86] the SI is between a thin porous structure and the fluid on its two sides. This enables dealing with the porosity in a fashion consistent with how the standard fluid–fluid SIs are dealt with and how the Dirichlet conditions are enforced weakly with fluid–solid SIs. This version also enables handling thin structures that have T-junctions. This method has been applied to incompressible-flow aerodynamic analysis of ram-air parachutes with fabric porosity [124]. The compressible-flow ST-SI methods were introduced in [125], including the version where the SI is between a thin porous structure and the fluid on its two sides. Compressible-flow porosity models were also introduced in [125]. These, together with the compressible-flow ST SUPG method [127], extended the ST computational analysis range to compressible-flow aerodynamics of parachutes with fabric and geometric porosities. That enabled ST computational flow analysis of the Orion spacecraft drogue parachute in the compressible-flow regime [125, 126].

1.2.2 ST-TC

The ST-TC [92, 102] was introduced for moving-mesh computation of flow problems with TC, such as contact between solid surfaces. Even before the ST-TC, the ST-SUPS and ST-VMS, when used with robust mesh update methods, have proven effective in flow computations where the solid surfaces are in near contact or create other near TC, if the nearness is sufficiently near for the purpose of solving the problem. Many classes of problems can be solved that way with sufficient accuracy. For examples of such computations, see the references mentioned in [92]. The ST-TC made moving-mesh computations possible even when there is an actual contact between solid surfaces or other TC. By collapsing elements as needed, without changing the connectivity of the “parent” mesh, the ST-TC can handle an actual TC while maintaining high-resolution boundary layer representation near solid surfaces. This enabled successful moving-mesh computation of heart valve flows [85, 92, 99, 101,102,103,104,105,106], ventricle-valve-aorta flows [107], wing clapping [92, 93], flow around a rotating tire with road contact and prescribed deformation [103, 119,120,121,122], and fluid films [122, 123].

1.2.3 ST-SI-TC

The ST-SI-TC is the integration of the ST-SI and ST-TC. A fluid–fluid SI requires elements on both sides of the SI. When part of an SI needs to coincide with a solid surface, which happens for example when the solid surfaces on two sides of an SI come into contact or when an SI reaches a solid surface, the elements between the coinciding SI part and the solid surface need to collapse with the ST-TC mechanism. The collapse switches the SI from fluid–fluid SI to fluid–solid SI. With that, an SI can be a mixture of fluid–fluid and fluid–solid SIs. With the ST-SI-TC, the elements collapse and are reborn independent of the nodes representing a solid surface. The ST-SI-TC enables high-resolution flow representation even when parts of the SI are coinciding with a solid surface. It also enables dealing with contact location change and contact sliding. This was applied to heart valve flow analysis [99, 101, 104,105,106], ventricle-valve-aorta flows [107], tire aerodynamics with road contact and deformation [103, 119,120,121,122], and fluid films [122, 123].

1.2.4 ST-IGA

The success with IGA basis functions in space [16, 26, 44, 128] motivated the integration of the ST methods with isogeometric discretization, which we broadly call “ST-IGA.” The ST-IGA was introduced in [8]. Computations with the ST-VMS and ST-IGA were first reported in [8] in a 2D context, with IGA basis functions in space for flow past an airfoil, and in both space and time for the advection equation. Using higher-order basis functions in time enables deriving full benefit from using higher-order basis functions in space. This was demonstrated with the stability and accuracy analysis given in [8] for the advection equation.

The ST-IGA with IGA basis functions in time enables a more accurate representation of the motion of the solid surfaces and a mesh motion consistent with that. This was pointed out in [8, 9] and demonstrated in [87, 88, 90]. It also enables more efficient temporal representation of the motion and deformation of the volume meshes, and more efficient remeshing. These motivated the development of the ST/NURBS Mesh Update Method (STNMUM) [87, 88, 90], with the name coined in [83]. The STNMUM has a wide scope that includes spinning solid surfaces. With the spinning motion represented by quadratic NURBS in time, and with sufficient number of temporal patches for a full rotation, the circular paths are represented exactly. A “secondary mapping” [1, 8, 9, 87] enables also specifying a constant angular velocity for invariant speeds along the circular paths. The ST framework and NURBS in time also enable, with the “ST-C” method, extracting a continuous representation from the computed data and, in large-scale computations, efficient data compression [10, 103, 110,111,112,113, 129]. The STNMUM and the ST-IGA with IGA basis functions in time have been used in many 3D computations. The classes of problems solved are flapping-wing aerodynamics for an actual locust [1, 87,88,89], bioinspired MAVs [84, 85, 90, 91] and wing-clapping [92, 93], separation aerodynamics of spacecraft [77], aerodynamics of horizontal-axis [34, 83,84,85] and vertical-axis [37, 38, 86] wind-turbines, thermo-fluid analysis of ground vehicles and their tires [10, 103], thermo-fluid analysis of disk brakes [110], flow-driven string dynamics in turbomachinery [111,112,113], flow analysis of turbocharger turbines [114,115,116,117,118], and flow analysis of coronary arteries in motion [108].

The ST-IGA with IGA basis functions in space enables more accurate representation of the geometry and increased accuracy in the flow solution. It accomplishes that with fewer control points, and consequently with larger effective element sizes. That in turn enables using larger time-step sizes while keeping the Courant number at a desirable level for good accuracy. It has been used in ST computational flow analysis of turbocharger turbines [114,115,116,117,118], flow-driven string dynamics in turbomachinery [112, 113], ram-air parachutes [124], spacecraft parachutes [126], aortas [99,100,101], heart valves [99, 101, 104,105,106], ventricle-valve-aorta sequences [107], coronary arteries in motion [108], tires with road contact and deformation [120,121,122], and fluid films [122, 123]. Using IGA basis functions in space is now a key part of some of the newest arterial ZSS estimation methods [101, 130,131,132,133,134,135] and related shell analysis [136].

1.2.5 ST-SI-IGA and ST-SI-TC-IGA

The ST-SI-IGA is the integration of the ST-SI and ST-IGA, and the ST-SI-TC-IGA is the integration of the ST-SI, ST-TC and ST-IGA.

The turbocharger turbine flow [114,115,116,117,118] and flow-driven string dynamics in turbomachinery [112, 113] were computed with the ST-SI-IGA. The IGA basis functions were used in the spatial discretization of the fluid mechanics equations and also in the temporal representation of the rotor and spinning-mesh motion. That enabled accurate representation of the turbine geometry and rotor motion and increased accuracy in the flow solution. The IGA basis functions were used also in the spatial discretization of the string structural dynamics equations. That enabled increased accuracy in the structural dynamics solution, as well as smoothness in the string shape and fluid dynamics forces computed on the string.

The ram-air parachute analysis [124] and spacecraft parachute compressible-flow analysis [126] were conducted with the ST-SI-IGA, based on the ST-SI version that weakly enforces the Dirichlet conditions and the ST-SI version that accounts for the porosity of a thin structure. The ST-IGA with IGA basis functions in space enabled, with relatively few number of unknowns, accurate representation of the parafoil and parachute geometries and increased accuracy in the flow solution. The volume mesh needed to be generated both inside and outside the parafoil. Mesh generation inside was challenging near the trailing edge because of the narrowing space. The spacecraft parachute has a very complex geometry, including gores and gaps. Using IGA basis functions addressed those challenges and still kept the element density near the trailing edge of the parafoil and around the spacecraft parachute at a reasonable level.

The heart valve flow analyses [99, 101, 104,105,106] and ventricle-valve-aorta flow analysis [107] were conducted with the ST-SI-TC-IGA. The method, beyond enabling a more accurate representation of the geometry and increased accuracy in the flow solution, kept the element density in the narrow spaces near the contact areas at a reasonable level. When solid surfaces come into contact, the elements between the surface and the SI collapse. Before the elements collapse, the boundaries could be curved and rather complex, and the narrow spaces might have high-aspect-ratio elements. With NURBS elements, it was possible to deal with such adverse conditions rather effectively.

In computational analysis of flow around tires with road contact and deformation [120,121,122], the ST-SI-TC-IGA enables a more accurate representation of the geometry and motion of the tire surfaces, a mesh motion consistent with that, and increased accuracy in the flow solution. It also keeps the element density in the tire grooves and in the narrow spaces near the contact areas at a reasonable level. In addition, we benefit from the mesh generation flexibility provided by using SIs.

In computational analysis of fluid films [122, 123], the ST-SI-TC-IGA enables solution with a computational cost comparable to that of the Reynolds-equation model for the comparable solution quality [123]. With that, narrow gaps associated with the road roughness [122] can be accounted for in the flow analysis around tires.

An SI provides mesh generation flexibility in a general context by accurately connecting the two sides of the solution computed over nonmatching meshes. This type of mesh generation flexibility is especially valuable in complex-geometry flow computations with isogeometric discretization, removing the matching requirement between the NURBS patches without loss of accuracy. This feature was used in the flow analysis of heart valves [99, 101, 104, 105], ventricle-valve-aorta sequences [107], turbocharger turbines [114,115,116,117,118], and spacecraft parachute compressible-flow analysis [126].

1.3 Moving-mesh methods are worth the effort to make them work

It is quite evident from Sects. 1.1.4, 1.1.5 and 1.2 that moving-mesh methods have been practical in more classes of complex FSI and MBI problems than commonly thought of, and, with the increased scope provided by the special methods, the ST methods can now do even more. In many classes of computations, the moving-mesh methods are worth the effort to make them work.

1.4 Mesh moving methods

Good moving-mesh methods require good mesh moving methods, and that has to be part of the effort to make the moving-mesh methods work.

1.4.1 Mesh moving and remeshing

In a more general context, moving-mesh methods require mesh update methods. Mesh update has two components: moving the mesh for as long as it is possible, which is the core component, and full or partial remeshing (i.e. generating a new set of elements, and sometimes also a new set of nodes) when the element distortion becomes too high. The key objectives of a mesh moving method should be to maintain the element quality near solid surfaces and to minimize remeshing frequency. Provided that at the boundaries and interfaces the normal velocity of the mesh matches the normal velocity of the fluid, we can move the mesh any way we find most suitable for meeting those objectives.

1.4.2 Mesh moving based on linear elasticity and mesh-Jacobian-based stiffening

In the mesh moving method introduced in 1992 [137,138,139], the motion of the internal nodes is determined by solving the equations of linear elasticity. As the boundary condition, the normal velocity of the mesh at the boundaries and interfaces is specified to match the velocity of the fluid. The mesh deformation is dealt with selectively based on the sizes of the elements. Selective treatment based on element sizes is attained by altering the way we account for the Jacobian of the transformation from the element domain to the physical domain. The objective is to stiffen the smaller elements, which are typically placed near solid surfaces, more than the larger ones. When this method was first introduced in [137,138,139], it consisted of simply dropping Jacobian from the finite element formulation of the mesh moving (elasticity) equations. This results in the smaller elements being stiffened more than the larger ones. The method was given the name “Jacobian-based stiffening” (JBS) in [140]. It was also augmented in [140] to a more extensive kind by introducing a stiffening power \(\chi \) that determines the degree by which the smaller elements are rendered stiffer than the larger ones. This approach, when \(\chi \) = 1, would be identical to the method first introduced in [137], and most of the time \(\chi \) = 1. To also clarify that the “Jacobian” in the name of the method is the mesh Jacobian, in [107] the method was renamed “Mesh-Jacobian-based stiffening” (MJBS).

1.4.3 Solid-Extension Mesh Moving Technique (SEMMT)

In dealing with fluid–solid interfaces, sometimes we need to place thin layers of elements near the solid surfaces to fully control the mesh resolution there and have more accurate representation of the boundary layers. In the mesh moving method introduced in [137,138,139], such layers of elements move “glued” to the solid objects, undergoing rigid-body motion. No equations are solved for the motion of the nodes in these layers, because these nodal displacements are not governed by the equations of elasticity. This results in some cost reduction. But, more importantly, we have full control of the mesh resolution in these layers. Examples of automatic mesh moving combined with thin layers of elements undergoing rigid-body motion with solid objects were reported as early as 1993 (see [138, 139]). Earlier examples of element layers undergoing rigid-body motion, in combination with deforming structured meshes, were reported in 1990 [4]. In computation of flows with fluid–solid interfaces where the solid is deforming, the motion of the fluid mesh near the interface cannot be represented by a rigid-body motion. Depending on the deformation mode of the solid, the mesh moving method described in Sect. 1.4.2 may need to be used. In such cases, the thin layers of elements near the solid surface become a challenge for the mesh moving method.

The SEMMT was proposed in 2001 [141]. In the SEMMT [1, 141,142,143,144], the thin layers of elements are treated almost like an extension of the solid elements. In solving the equations of elasticity governing the motion of the fluid nodes, higher stiffness is assigned to the thin layers of elements compared to the other fluid elements. Two ways of accomplishing this were proposed in [141]: solving the elasticity equations for the nodes connected by the thin layers of elements separate from the elasticity equations for the other nodes, or together. If they are solved separately, for the thin layers of elements, as boundary conditions at the interface with the other elements, traction-free conditions would be used. The separate solution option is referred to as “SEMMT – Multiple Domain (SEMMT-MD),” and the unified solution option as “SEMMT – Single Domain (SEMMT-SD).” In [1, 143,144,145], test computations were presented to demonstrate how the SEMMT works as part of the mesh update method used with the ST-SUPS method. Both SEMMT options described above were employed. The tests included mesh deformation tests [1, 143,144,145] and a 2D FSI model problem [143, 144].

1.4.4 Mesh moving based on large-deformation mechanics

In computing the mesh motion from time level \(t_n\) to \(t_{n+1}\) with the linear-elasticity equations, typically the configuration at \(t_n\) is where we compute the displacement from. That works for most problems, but, as mentioned in [107], there are two closely related drawbacks: i) the method is path-dependent, ii) once elements accumulate in some region, it is hard to undo that. The path-dependence leads to non-cyclic results in FSI computations that we expect to have cyclic or near-cyclic results. While the “back-cycle-based mesh moving” (BCBMM) method introduced in [107] can remedy that, moving the mesh based on large-deformation mechanics equations provides a more general solution. That was the mesh moving method used in a number of recent FSI and other MBI computations with the ST-SUPS and ST-VMS (see, for example, [10, 75, 85, 92, 97]). Additional good features of this method are, as pointed out in [75], having many constitutive models to choose from and being able to define the ZSS locally in arbitrary orientations. The constitutive model was St. Venant–Kirchhoff in [75], and neo-Hookean in [10, 85, 92, 97]. The MJBS can still be part of the mesh moving method, and it was in the computations reported in [10, 97].

1.4.5 Element-based mesh relaxation (EBMR)

The EBMR was introduced in 2013 [75]. It restores, without resorting to remeshing, the mesh integrity lost during the mesh motion. The loss of mesh integrity, though not frequent because of the advanced mesh moving methods used with the ST-SUPS and ST-VMS, can happen in FSI computations with a high level of complexity. A recent example of such complexity is FSI computation of clusters of spacecraft parachutes with modified geometric porosity [74,75,76, 78, 79, 84]. When faced with a loss of mesh integrity, it was proposed in [75] to use the EBMR, where the mesh is “relaxed” without altering the mesh at the fluid–structure interface and thus the mesh integrity is somewhat restored. As commented in [75], this is of course a less costly and less disruptive alternative to remeshing.

In the EBMR, the new mesh has the same number of nodes and elements as before, but some of the nodes are moved slightly to improve the quality of some of the elements. The motion is determined by using the large-deformation mechanics equations and an element-based ZSS (EBZSS). This is essentially a shape generated for each element. By design, the undeformed shape, made of “target elements,” is the shape we want to obtain from solving the solid mechanics equations. There are several options for constructing the target element shapes, and those options can be found in [75]. The EBMR was successfully used in FSI computation of clusters of spacecraft parachutes with modified geometric porosity (see [75]).

1.5 Locally-defined ZSS

Locally-defined ZSS originated as arterial ZSS estimation (see [101, 130,131,132,133,134,135]). It was formulated first as the EBZSS in the finite element discretization context [130, 131], then as the EBZSS in the isogeometric discretization context [132, 133], and then as the integration point based ZSS (IPBZSS) in the isogeometric discretization context [134, 135].

1.5.1 EBZSS

In the EBZSS, we define the ZSS with a set of positions for each element. Positions of nodes (control points) from different elements mapping to the same node in the mesh do not have to be the same. In the reference configuration, all elements are connected by nodes, and we measure the displacement from that connected configuration. This way of formulating the structural mechanics problem was named in [130] “element-based total Lagrangian (EBTL)” method. The EBTL was used in the EBMR [75]. We explain more in Sect. 2.1.

1.5.2 IPBZSS

In the IPBZSS, we extended the way we define EBZSS to integration-point counterpart of that. The ZSS is represented in terms of the metric tensor. Converting the EBZSS representation to IPBZSS representation is straightforward and the conversion will be exact. Converting the IPBZSS representation to EBZSS representation will, in general, not be exact because the IPBZSS has more parameters than the EBZSS. Here we name this way of formulating the structural mechanics problem “integration-point-based total Lagrangian (IPBTL)” method. We explain more in Sect. 2.2.

1.6 Stabilization parameters and their mesh sensitivity

The ST-SUPS, ALE-SUPS, RBVMS, ALE-VMS and ST-VMS all have some embedded stabilization parameters that play a significant role (see [1]). These parameters involve a measure of the local length scale (quite often called “element length”) and other parameters such as the element Reynolds and Courant numbers. The interface terms in the ST-SI also involve the local length scale, in the direction normal to the interface. There are many ways of defining the stabilization parameters. Some of the newer options for the stabilization parameters used with the SUPS and VMS can be found in [10, 82, 83, 86, 87, 121, 146,147,148,149]. Some of the earlier stabilization parameters used with the SUPS and VMS were also used in computations with other SUPG-like methods, such as the computations reported in [61, 150,151,152,153,154,155,156,157,158,159,160,161].

Because the stabilization parameters depend on the local length scale, we expect them to have increased mesh sensitivity near the solid surfaces as the mesh moves, because the elements there are typically very thin in the direction normal to the surface. This is another reason to have a good mesh moving method, with the thin layers of elements near solid surfaces shielded from distortion. The SEMMT (see Sect. 1.4.3) accomplishes that to a large extent.

1.7 Mesh moving based on fiber-reinforced hyperelasticity and optimized ZSS

In the mesh moving method we introduce in this article, with the fibers placed in multiple directions, we stiffen the element in those directions for the purpose of reducing the distortion during the mesh deformation. We optimize the ZSS by seeking orthogonality of the parametric directions, by mesh relaxation, and by making the ZSS time-dependent as needed.

1.8 Test computations

We first conduct 2D test computations with a flow domain containing a beam undergoing three different modes of motion: translation, rotation and bending. Then we do 2D test computations with a rectangular domain undergoing compression and expansion. The 3D tests are with a box-shaped flow domain containing a square block undergoing torsion.

1.9 Outline of the remaining sections

In Sect. 2, we provide the large-deformation mechanics framework that we use in the mesh moving method we are introducing. We describe the fiber-reinforced hyperelasticity model in Sect. 3, and introduce the mesh moving method in Sect. 4. The test computations are presented in Sect. 5, and the concluding remarks in Sect. 6. The MJBS, which we also use in the test computations for comparison purposes, is described in Appendix A.

2 Large-deformation mechanics

We provide, mostly from [134], the large-deformation mechanics framework we will use in the mesh moving method we are introducing here. We note that there can be other ways to reach the same mesh moving functionality.

Let \(\varOmega _0\subset \mathbb {R}^{n_{\mathrm {sd}}}\) be the material domain in the ZSS, where \({n_{\mathrm {sd}}}\) is the number of space dimensions, and let \(\varGamma _0\) be its boundary. Let \(\varOmega _t\subset \mathbb {R}^{n_{\mathrm {sd}}}\), \(t \in (0,T)\), be the material domain in the deformed state, and let \(\varGamma _{t}\) be its boundary. The structural mechanics equations based on the total Lagrangian formulation can be written as

$$\begin{aligned}&\int _{\varOmega _0} \mathbf {w}\cdot \rho _0\frac{\mathrm {d}^2 \mathbf {y}}{\mathrm {d}t^2}~\mathrm {d}\varOmega + \int _{\varOmega _0} \delta \mathbf {E}: \mathbf {S}~\mathrm {d}\varOmega - \int _{\varOmega _0} \mathbf {w}\cdot \rho _0\mathbf {f}~\mathrm {d}\varOmega \nonumber \\&\quad = \int _{\left( \varGamma _t\right) _\mathrm {h}} \mathbf {w}\cdot \mathbf {h}~\mathrm {d}\varGamma . \end{aligned}$$
(1)

Here, \(\mathbf {y}\) is the displacement, \(\mathbf {w}\) is the virtual displacement, \(\delta \mathbf {E}\) is the variation of the Green–Lagrange strain tensor, \(\mathbf {S}\) is the second Piola–Kirchhoff stress tensor, \(\rho _0\) is the mass density in the ZSS, \(\mathbf {f}\) is the body force per unit mass, and \(\mathbf {h}\) is the external stress vector applied on the subset \(\left( \varGamma _t\right) _\mathrm {h}\) of the boundary \(\varGamma _{t}\).

2.1 EBZSS

In the EBTL method the ZSS is defined with a set of positions \(\mathbf {X}_0^e\) for each element e. Positions of nodes from different elements mapping to the same node in the mesh do not have to be the same. In the reference state, \(\mathbf {X}_\mathrm {REF}\in \varOmega _{\mathrm {REF}}\), all elements are connected by nodes, and we measure the displacement \(\mathbf {y}\) from that connected state. The implementation of the method is simple. The deformation gradient tensor \(\mathbf {F}\) is evaluated for each element:

$$\begin{aligned} \mathbf {F}^e&\equiv \frac{\partial \mathbf {x}}{\partial \mathbf {X}_0^e}, \end{aligned}$$
(2)
$$\begin{aligned}&= \frac{\partial \left( \mathbf {X}_\mathrm {REF}+ \mathbf {y}\right) }{\partial \mathbf {X}_0^e}, \end{aligned}$$
(3)

where \(\mathbf {x}\) is the position in the deformed configuration. The deformation gradient tensors for different elements are on different states, but the terms in Eq. (1), including the second term, do not depend on the orientation. Therefore the rest of the process is the same as it is in the total Lagrangian formulation.

2.2 IPBZSS

In the IPBTL method, we extend the way we see \(\mathbf {X}_0^e\) to integration-point counterpart of \(\mathbf {X}_0^e\). As we did with the EBZSS, we work with the reference domain. With the reference Jacobian

$$\begin{aligned} J_\mathrm {REF}&= \det \left( \frac{\partial \mathbf {X}_\mathrm {REF}}{\partial \mathbf {X}_0}\right) , \end{aligned}$$
(4)

Eq. (1) can be rearranged as

$$\begin{aligned}&\int _{\varOmega _{\mathrm {REF}}} \mathbf {w}\cdot \rho _0\frac{\mathrm {d}^2 \mathbf {y}}{\mathrm {d}t^2}~J_\mathrm {REF}^{-1} \mathrm {d}\varOmega + \int _{\varOmega _{\mathrm {REF}}} \delta \mathbf {E}: \mathbf {S}~J_\mathrm {REF}^{-1} \mathrm {d}\varOmega \nonumber \\&\quad - \int _{\varOmega _{\mathrm {REF}}} \mathbf {w}\cdot \rho _0\mathbf {f}~J_\mathrm {REF}^{-1} \mathrm {d}\varOmega = \int _{\left( \varGamma _t\right) _\mathrm {h}} \mathbf {w}\cdot \mathbf {h}~\mathrm {d}\varGamma . \end{aligned}$$
(5)

In our implementation, we use the natural coordinates, with covariant basis vectors

$$\begin{aligned} \mathbf {g}_\alpha&= \frac{\partial \mathbf {x}}{\partial \xi ^\alpha }, \end{aligned}$$
(6)
$$\begin{aligned} \mathbf {G}_\alpha&= \frac{\partial \mathbf {X}}{\partial \xi ^\alpha }, \end{aligned}$$
(7)

where \(\xi ^\alpha \) is the parametric coordinate, and \(\alpha = 1, \ldots , {n_{\mathrm {pd}}}\), with \({n_{\mathrm {pd}}}\) being the number of parametric dimensions. The contravariant basis vectors can be calculated with the metric tensor components as

$$\begin{aligned} \mathbf {g} ^\alpha&= g^{\alpha \beta } \mathbf {g} _\beta , \end{aligned}$$
(8)
$$\begin{aligned} \mathbf {G} ^\alpha&= G^{\alpha \beta } \mathbf {G}_\beta , \end{aligned}$$
(9)

where

$$\begin{aligned} g_{\alpha \beta }&= \mathbf {g}_\alpha \cdot \mathbf {g}_\beta , \end{aligned}$$
(10)
$$\begin{aligned} G_{\alpha \beta }&= \mathbf {G}_\alpha \cdot \mathbf {G}_\beta , \end{aligned}$$
(11)
$$\begin{aligned} \left[ g^{\alpha \beta } \right]&= \left[ g_{\alpha \beta } \right] ^{-1} , \end{aligned}$$
(12)
$$\begin{aligned} \left[ G^{\alpha \beta }\right]&= \left[ G_{\alpha \beta } \right] ^{-1} . \end{aligned}$$
(13)

With those vectors, we can express the deformation gradient tensor:

$$\begin{aligned} \mathbf {F}&= \mathbf {g}_\beta \mathbf {G}^\beta , \end{aligned}$$
(14)

and the Cauchy–Green deformation tensor:

$$\begin{aligned} \mathbf {C}&= \mathbf {F}^T \cdot \mathbf {F}\end{aligned}$$
(15)
$$\begin{aligned}&= \mathbf {G}^\alpha \mathbf {g}_\alpha \cdot \mathbf {g}_\beta \mathbf {G}^\beta \end{aligned}$$
(16)
$$\begin{aligned}&= g_{\alpha \beta } \mathbf {G}^\alpha \mathbf {G}^\beta . \end{aligned}$$
(17)

The Jacobian, \(J= \det \mathbf {F}\), can be expressed as

$$\begin{aligned} J^2&= \det \mathbf {C}. \end{aligned}$$
(18)

We can write \(\det \mathbf {C}\) as

$$\begin{aligned} \det \mathbf {C}&= \frac{\det \left[ g_{\alpha \beta }\right] }{\det \left[ G_{\alpha \beta }\right] }, \end{aligned}$$
(19)

and from that we obtain

$$\begin{aligned} J&= \left( \frac{\det \left[ g_{\alpha \beta }\right] }{\det \left[ G_{\alpha \beta }\right] } \right) ^{\frac{1}{2}}. \end{aligned}$$
(20)

We define the covariant basis vectors corresponding to \(\mathbf {X}_\mathrm {REF}\):

$$\begin{aligned} \left( \mathbf {G}_\mathrm {REF}\right) _\alpha&= \frac{\partial \mathbf {X}_\mathrm {REF}}{\partial \xi ^\alpha }, \end{aligned}$$
(21)

and the components of the metric tensor are

$$\begin{aligned} \left( G_\mathrm {REF}\right) _{\alpha \beta } = \left( \mathbf {G}_\mathrm {REF}\right) _\alpha \cdot \left( \mathbf {G}_\mathrm {REF}\right) _\beta . \end{aligned}$$
(22)

In the process leading to Eq. (20), we replace \(\mathbf {g}_\alpha \) and \(\mathbf {g}_\beta \) with \(\left( \mathbf {G}_\mathrm {REF}\right) _\alpha \) and \(\left( \mathbf {G}_\mathrm {REF}\right) _\beta \) and obtain an alternative to the expression given by Eq. (4):

$$\begin{aligned} J_\mathrm {REF}&= \left( \frac{\det \left[ \left( G_\mathrm {REF}\right) _{\alpha \beta }\right] }{\det \left[ G_{\alpha \beta }\right] } \right) ^{\frac{1}{2}} . \end{aligned}$$
(23)

The Green–Lagrange strain tensor,

$$\begin{aligned} \mathbf {E}&= \frac{1}{2}\left( \mathbf {C}- \mathbf {I}\right) , \end{aligned}$$
(24)

where \(\mathbf {I}\) is the identity tensor, can be expressed with the contravariant basis vectors as

$$\begin{aligned} \mathbf {E}&= \frac{1}{2}\left( g_{\alpha \beta } - G_{\alpha \beta } \right) \mathbf {G}^\alpha \mathbf {G}^\beta . \end{aligned}$$
(25)

The second Piola–Kirchhoff tensor can be expressed with the covariant basis vectors as

$$\begin{aligned} \mathbf {S}&= S^{\alpha \beta } \mathbf {G}_\alpha \mathbf {G}_\beta , \end{aligned}$$
(26)

where \(S^{\alpha \beta }\) can be expressed with the components of the metric tensors. Thus, the inner product \(\delta \mathbf {E}: \mathbf {S}\), and all the other quantities in the weak form given by Eq. (5), can be evaluated without actually using the basis vectors \(\mathbf {G}_\alpha \).

Based on that, we rearrange the formulation and obtain the “integration-point-based updated Lagrangian (IPBUL)” method:

$$\begin{aligned}&\int _{\varOmega _{t}} \mathbf {w}\cdot \rho \frac{\mathrm {d}^2 \mathbf {x}}{\mathrm {d}t^2}\mathrm {d}\varOmega + \int _{\varOmega _{t}} \pmb {\varepsilon }(\mathbf {w}): \pmb {\sigma }\mathrm {d}\varOmega \nonumber \\&\quad - \int _{\varOmega _{t}} \mathbf {w}\cdot \rho \mathbf {f}\mathrm {d}\varOmega = \int _{\left( \varGamma _t\right) _\mathrm {h}} \mathbf {w}\cdot \mathbf {h}~\mathrm {d}\varGamma , \end{aligned}$$
(27)

where \(\rho = \rho _0J^{-1}\),

$$\begin{aligned} \pmb {\varepsilon }(\mathbf {w})&= \frac{1}{2}\left( \pmb {\nabla }\mathbf {w}+ (\pmb {\nabla }\mathbf {w})^T\right) , \end{aligned}$$
(28)

and

$$\begin{aligned} \pmb {\sigma }&= J^{-1} \mathbf {F}\cdot \mathbf {S}\cdot \mathbf {F}^T \end{aligned}$$
(29)
$$\begin{aligned}&= J^{-1} S^{\alpha \beta } \mathbf {g}_\alpha \mathbf {g}_\beta . \end{aligned}$$
(30)

We note that we obtained the second term in Eq. (27) from

$$\begin{aligned} \delta \mathbf {E}: \mathbf {S}&= \frac{1}{2} \left( \frac{\partial \mathbf {w}}{\partial \xi ^\alpha } \cdot \mathbf {g}_\beta + \mathbf {g}_\alpha \cdot \frac{\partial \mathbf {w}}{\partial \xi ^\beta } \right) S^{\alpha \beta } \end{aligned}$$
(31)
$$\begin{aligned}&= \frac{1}{2} \left( \frac{\partial \mathbf {w}}{\partial \xi ^\alpha } \cdot \mathbf {g}_\beta + \mathbf {g}_\alpha \cdot \frac{\partial \mathbf {w}}{\partial \xi ^\beta } \right) S^{\alpha \beta } \end{aligned}$$
(32)
$$\begin{aligned}&= \frac{1}{2} \left( \mathbf {g}^\gamma \frac{\partial \mathbf {w}}{\partial \xi ^\gamma } + \frac{\partial \mathbf {w}}{\partial \xi ^\gamma } \mathbf {g}^\gamma \right) : \mathbf {g}_\alpha \mathbf {g}_\beta S^{\alpha \beta } \end{aligned}$$
(33)
$$\begin{aligned}&= \pmb {\varepsilon }(\mathbf {w}) : \mathbf {g}_\alpha \mathbf {g}_\beta S^{\alpha \beta } \end{aligned}$$
(34)

and \(\mathrm {d}\varOmega _t = J^{-1} \mathrm {d}\varOmega _0\).

3 Fiber-reinforced hyperelasticity

3.1 Hyperelasticity model

Here we consider a compressible-material hyperelasticity model, where the volumetric part of the strain energy is represented separately. The general strain-energy-density function can be written as

$$\begin{aligned} \varphi \left( \mathbf {C}\right) = \varphi _{\mathrm {iso}}\left( \overline{\mathbf {C}}\right) + \varphi _{\mathrm {vol}}(J), \end{aligned}$$
(35)

where

$$\begin{aligned} \overline{\mathbf {C}}&=J^{-\frac{2}{3}} \mathbf {C}, \end{aligned}$$
(36)

with \(\varphi _\mathrm {iso}\) and \(\varphi _\mathrm {vol}\) representing the isochoric and volumetric parts.

The isochoric part can be expressed with the invariants:

$$\begin{aligned} \overline{I}_1&= \mathbf {I}: \overline{\mathbf {C}} + 3 - {n_{\mathrm {pd}}}, \end{aligned}$$
(37)
$$\begin{aligned} \overline{I}_2&= \frac{1}{2} \left( \left( \mathbf {I}: \overline{\mathbf {C}}\right) ^2 - \mathbf {I}: \left( \overline{\mathbf {C}} \cdot \overline{\mathbf {C}} \right) \right) + 3 - {n_{\mathrm {pd}}}, \end{aligned}$$
(38)

making \(\varphi _{\mathrm {iso}} = \varphi _{\mathrm {iso}} (\overline{I}_1, \overline{I}_2)\). In most models, \(\varphi _{\mathrm {iso}}= \varphi _{\mathrm {iso}} (\overline{I}_1)\).

Remark 1

The last two terms on the right-hand-side of Eqs. (37) and (38) are to make the invariant calculations consistent with the plane-strain assumption in 2D computations.

For the volumetric part, we use the following expression:

$$\begin{aligned} \varphi _{\mathrm {vol}}&= \kappa _\mathrm {B} \beta _\mathrm {B}^{-2}\left( \beta _\mathrm {B} \ln J + J^{-\beta _\mathrm {B}} -1 \right) , \end{aligned}$$
(39)

where \(\kappa _\mathrm {B}\) is the bulk modulus and \(\beta _\mathrm {B}\) is a positive number based on [162]. However, we do not see anything wrong with using negative values for \(\beta _\mathrm {B}\), and actually we have been using \(\beta _\mathrm {B}=-2\) for nearly incompressible materials. We also note that the expression is defined for \(\beta _\mathrm {B} \rightarrow 0\) and gives

$$\begin{aligned} \varphi _{\mathrm {vol}}&= \kappa _\mathrm {B} \frac{1}{2}\left( \ln J\right) ^2. \end{aligned}$$
(40)

With \(\beta _\mathrm {B} < 0 \), the material is stiffer in expansion than in shrinkage, and with \(\beta _\mathrm {B} > 0 \), it is stiffer in shrinkage than in expansion (see Fig. 1).

Fig. 1
figure 1

The strain-energy-density dependence on the volume

3.2 Need for fiber-reinforced hyperelasticity

Consider a square domain expanding horizontally in a volume-preserving fashion (see Fig. 2). How an element deforms, and consequently how the mesh lines change, will depend on how the element is oriented. In Fig. 3, the element has an upright orientation and therefore does not undergo distortion. The mesh lines retain their orthogonality. In Fig. 4, the element has a rotated orientation and therefore undergoes distortion. The mesh lines lose their orthogonality. Clearly, the constitutive model does not see the mesh lines, and keeping the mesh-line orthogonality is not an objective of the model.

Fig. 2
figure 2

A square domain. Expansion in the horizontal direction in a volume-preserving fashion. The thick blue line represents the ZSS and the thin red line represents the deformed state. (Color figure online)

Fig. 3
figure 3

A square domain. Expansion in the horizontal direction in a volume-preserving fashion. An upright-orientation element in the ZS and deformed states and the parametric-coordinate directions

Fig. 4
figure 4

A square domain. Expansion in the horizontal direction in a volume-preserving fashion. A rotated-orientation element in the ZS and deformed states and the parametric-coordinate directions

3.3 Constitutive model for fiber-reinforced hyperelasticity

The constitutive model is obtained by adding an invariant that represents the fiber. We consider two options for that invariant, which are commonly seen in the literature. In the first option,

$$\begin{aligned} I_\mathbf {a}&= \mathbf {C}:\mathbf {a} \mathbf {a} \end{aligned}$$
(41)
$$\begin{aligned}&= \lambda _\mathbf {a}^2, \end{aligned}$$
(42)

where \(\lambda _\mathbf {a}\) is the stretch in the fiber direction (see [163]). In the second option,

$$\begin{aligned} \overline{I}_\mathbf {a}&= \overline{\mathbf {C}}:\mathbf {a} \mathbf {a} \end{aligned}$$
(43)
$$\begin{aligned}&= \overline{\lambda }_\mathbf {a}^2, \end{aligned}$$
(44)

where \(\overline{\lambda }_\mathbf {a}\) is the stretch associated with \(\overline{\mathbf {C}}\). With the index k being the fiber-direction counter, we write

$$\begin{aligned} I_{2k+2}&= I_{\mathbf {a}_k} \end{aligned}$$
(45)

and

$$\begin{aligned} \overline{I}_{2k+2}&= \overline{I}_{\mathbf {a}_k}. \end{aligned}$$
(46)

Remark 2

We note that there are other invariants [164], such as

$$\begin{aligned} \overline{I}_{2k+3}&= \left( \mathbf {C}\cdot \mathbf {C}\right) : \mathbf {a}_k \mathbf {a}_k, \end{aligned}$$
(47)

but we do not consider them here.

With \(n_\mathrm {fib}\) fiber directions, we express the strain-energy-density function with

$$\begin{aligned} \varphi \left( \mathbf {C}\right) = \varphi _{\mathrm {iso}}\left( \overline{I}_1, \overline{I}_2\right) + \sum _{k=1}^{n_\mathrm {fib}} \varphi _{\mathrm {ani}}\left( \overline{I}_1, \overline{I}_2, \overline{I}_{2k+2}\right) + \varphi _{\mathrm {vol}}(J), \end{aligned}$$
(48)

or with its slightly modified version:

$$\begin{aligned}&\varphi _\mathrm {mod}\left( \mathbf {C}\right) = \varphi _{\mathrm {iso}}\left( \overline{I}_1, \overline{I}_2\right) \nonumber \\&\quad + \sum _{k=1}^{n_\mathrm {fib}} \varphi _{\mathrm {ani}}\left( \overline{I}_1, \overline{I}_2, I_{2k+2}\right) + \varphi _{\mathrm {vol}}(J). \end{aligned}$$
(49)

We use the neo-Hookean model for the isotropic part:

$$\begin{aligned} \varphi _{\mathrm {iso}}\left( I_1, I_2\right)&= \frac{\mu }{2} \left( I_1 - 3 \right) , \end{aligned}$$
(50)

where \(\mu \) is the shear modulus. The anisotropic part, from [165], is given as

$$\begin{aligned}&\varphi _{\mathrm {ani}}\left( I_1, I_2, I_\mathbf {a}\right) \nonumber \\&\quad = C_1 \left( \exp \left( C_2 \left( \kappa I_1 + (1 - 3 \kappa ) I_\mathbf {a} - 1\right) ^2\right) - 1 \right) , \end{aligned}$$
(51)

where \(C_1\) is a stress-like coefficient, and \(C_2\) and \(0 \le \kappa < \frac{1}{3}\) are nondimensional parameters. When \(\kappa = \frac{1}{3}\), the model becomes an isotropic Fung-type model.

4 Mesh-moving method

Here we explain the method and options for the mesh moving. We assume that the initial mesh we begin the mesh relaxation with has reasonable resolution and aspect ratio. Most of the time we create thin layers of elements near the solid surfaces and we want the mesh moving method to retain such features.

4.1 Mesh relaxation method

The objective of the mesh relaxation is to have a better quality mesh and to have an equilibrium state with the optimized ZSS, boundary conditions and the constitutive law. We let \(\mathbf {x}_0\) denote our initial mesh. We evaluate the corresponding metric tensor at each integration point from the expressions given by Eqs. (6) and (10). When the parametric directions are orthogonal, the metric tensor does not have off-diagonal terms. As the simplest choice, we just remove the off-diagonal terms, and write the ZSS as

$$\begin{aligned} G_{\alpha \beta }&= g_{\alpha \beta } \delta _{\alpha \beta }&\text {(no sum)}. \end{aligned}$$
(52)

We write the volume-preserving version of that as

$$\begin{aligned} G_{\alpha \beta }&= \left( \frac{\det \left[ g_{\gamma \delta }\right] }{\displaystyle \prod _{\kappa =1}^{{n_{\mathrm {pd}}}} g_{\kappa \kappa }}\right) ^{\frac{1}{{n_{\mathrm {pd}}}}} g_{\alpha \beta } \delta _{\alpha \beta }&\text {(no sum)}. \end{aligned}$$
(53)

We note that \(\sqrt{G_{\alpha \alpha }} / \sqrt{ G_{\beta \beta }}\) represents the aspect ratio between the \(\alpha \) and \(\beta \) directions.

Let \(\mathbf {a} = \mathsf {a}^\alpha \mathbf {G}_\alpha \) denote the fiber direction in the ZSS. We recall that the metric tensor was used in Eqs. (1), (5) and (27) to represent the ZSS, without using the basis vectors \(\mathbf {G}_\alpha \). Similarly, \(\mathsf {a}^\alpha \) will be used in the constitutive model to represent the fiber direction, without using the basis vectors \(\mathbf {G}_\alpha \). We will use \(2^{{n_{\mathrm {pd}}}-1}\) fiber directions, and we recall that the index k is the fiber-direction counter. We propose two options for defining \(\mathsf {a}_k^\alpha \). In the first option,

$$\begin{aligned} \mathsf {a}^\alpha _k&= \left\{ \begin{array}{ll} -1 &{} \quad \text {if } k-1 = 2^{\alpha -1} \\ 1 &{} \quad \text {otherwise} \end{array} \right. . \end{aligned}$$
(54)

We omit the normalization \(\left\| \mathbf {a}_k\right\| = 1\). In the second option,

$$\begin{aligned} \mathsf {a}^\alpha _k&= \frac{1}{\sqrt{G_{\alpha \alpha }}} \left\{ \begin{array}{ll} -1 &{}\quad \text {if } k-1 = 2^{\alpha -1} \\ 1 &{}\quad \text {otherwise} \end{array} \right.&\text {(no sum)} . \end{aligned}$$
(55)

Beginning with \(\mathbf {x} = \mathbf {x}_0\), metric tensor \({G_{\alpha \beta }}\), reinforcement fibers, and appropriate boundary conditions, including the prescribed boundary positions, we carry out a steady-state structural mechanics computation based on Eq. (27). The constitutive models and parameters can be defined individually for the elements or mesh regions. To avoid any negative impact of the ZSS modifications given by Eqs. (52) and (53), we put the modification into effect gradually:

$$\begin{aligned} G_{\alpha \beta } \leftarrow (1 - s) g_{\alpha \beta } + s G_{\alpha \beta }. \end{aligned}$$
(56)

The ramp-up parameter s is increased from 0 to 1 typically in 10 equal increments, with 3–5 nonlinear iterations at each increment to obtain the steady-state solution.

If the mesh quality is not satisfactory, we repeat the process with \(\mathbf {x}_0 \leftarrow \mathbf {x}\) or adjust the metric tensor. The key point here is that the mesh \(\mathbf {x}\) should be in equilibrium state with the ZSS before we start the mesh moving computation.

4.2 Mesh moving computation

With the starting mesh \(\mathbf {x}\), metric tensor \({G}_{\alpha \beta }\), reinforcement fibers, and the prescribed boundary positions coming from the time-dependent boundary motion, we solve the structural mechanics equations at each time step to compute the mesh positions. Let \(\mathbf {b}_n\) and \(\mathbf {b}_{n+1}\) be the prescribed boundary positions at time levels n and \(n+1\), and let \(\mathbf {x}_{n}\) and \(\mathbf {x}_{n+1}\) be the rest of the mesh positions at those time levels. As we move from time level n to \(n+1\), sometimes the boundary motion might be too large relative to the thickness of the layers of elements close to the boundary. Simply setting the initial guess in the steady-state computation as

$$\begin{aligned} \mathbf {b}_{n+1}^{0}&= \mathbf {b}_{n+1}, \end{aligned}$$
(57)
$$\begin{aligned} \mathbf {x}_{n+1}^{0}&= \mathbf {x}_{n}, \end{aligned}$$
(58)

where the superscript is the iteration counter, would very likely lead to convergence difficulties. As an option, we have been setting the initial guess as

$$\begin{aligned} \mathbf {b}_{n+1}^{0}&= \mathbf {b}_{n+1}, \end{aligned}$$
(59)
$$\begin{aligned} \mathbf {x}_{n+1}^{0}&= 2 \mathbf {x}_{n} - \mathbf {x}_{n-1}, \end{aligned}$$
(60)

which requires additional positions \(\mathbf {x}_{n-1}\) as input, and even with that it may not work when there are sudden condition changes, such as reversing from an expansion to a compression. Here we propose an iteration sequence \(i=1, 2, \ldots , L\), where the prescribed boundary positions are applied gradually with a ramp-up factor \(0 < \tilde{\alpha }^1 \le \ldots \le \tilde{\alpha }^{L-1} \le \tilde{\alpha }^L = 1\). We form the increment equations by evaluating the residuals and derivatives at

Table 1 Material properties for the tests with the MJBS
Table 2 Material properties for tests with the neo-Hookean model (“NH”) and fiber-reinforced hyperelasticity (“FR”)
$$\begin{aligned} \tilde{\mathbf {b}}_{n+1}^{i}&= \mathbf {b}_{n} + \tilde{\alpha }^i \left( \mathbf {b}_{n+1}^{i-1} - \mathbf {b}_{n}\right) , \end{aligned}$$
(61)
$$\begin{aligned} \tilde{\mathbf {x}}_{n+1}^{i}&= \mathbf {x}_{n} + \tilde{\alpha }^i \left( \mathbf {x}_{n+1}^{i-1} - \mathbf {x}_{n}\right) , \end{aligned}$$
(62)

with \({\mathbf {b}}_{n+1}^{0} = \mathbf {b}_{n+1}\) and \({\mathbf {x}}_{n+1}^0 = \mathbf {x}_{n}\). With the increment \(\varDelta \tilde{\mathbf {x}}_{n+1}^i\), we update \(\mathbf {b}_{n+1}\) and \(\mathbf {x}_{n+1}\) by extrapolation:

$$\begin{aligned} \mathbf {b}_{n+1}^{i}&= \mathbf {b}_{n} + \frac{1}{\tilde{\alpha }^i} \left( \tilde{\mathbf {b}}_{n+1}^i - \mathbf {b}_{n}\right) \end{aligned}$$
(63)
$$\begin{aligned}&= \mathbf {b}_{n+1}, \end{aligned}$$
(64)
$$\begin{aligned} \mathbf {x}_{n+1}^{i}&= \mathbf {x}_{n} + \frac{1}{\tilde{\alpha }^i} \left( \tilde{\mathbf {x}}_{n+1}^i+ \varDelta \tilde{\mathbf {x}}_{n+1}^{i} - \mathbf {x}_n\right) \end{aligned}$$
(65)
$$\begin{aligned}&= \mathbf {x}_{n+1}^i + \frac{1}{\tilde{\alpha }^i} \varDelta \tilde{\mathbf {x}}_{n+1}^{i}. \end{aligned}$$
(66)

We note that for linear mesh moving equations, such as the linear-elasticity equations, the solution is independent of \(\tilde{\alpha }^i\).

Fig. 5
figure 5

2D tests with a beam: translation, rotation and bending. Problem setup

Fig. 6
figure 6

2D tests with a beam: translation, rotation and bending. The initial mesh \(\mathbf {x}_0\). The checkerboard pattern is for differentiating between the NURBS elements, and the colors are for differentiating between the NURBS patches. The lines are control lines, where the control points are at the intersections. (Color figure online)

Fig. 7
figure 7

2D tests with a beam: translation, rotation and bending. Mesh after the relaxation. Neo-Hookean model (top) and fiber-reinforced hyperelasticity (bottom)

Here we also introduce the option of changing the ZSS at each time level. For example, we can calculate the domain volume as it changes in time, and scale with that the metric tensor globally or in selected mesh regions, excluding regions near the solid surfaces. That would give us a good mesh-resolution control through \(\varphi _\mathrm {vol}\). To avoid any negative impact on the solution, the ZSS change should be gradual.

Fig. 8
figure 8

2D tests with a beam: translation. MJBS (top), neo-Hookean model (middle) and fiber-reinforced hyperelasticity (bottom). The right frame is the zoomed view

Fig. 9
figure 9

2D tests with a beam: rotation. MJBS (top), neo-Hookean model (middle) and fiber-reinforced hyperelasticity (bottom). The right frame is the zoomed view

Fig. 10
figure 10

2D tests with a beam: bending. MJBS (top), neo-Hookean model (middle) and fiber-reinforced hyperelasticity (bottom). The right frame is the zoomed view

5 Test computations

Here we compare the MJBS (see Appendix A), neo-Hookean model, and fiber-reinforced hyperelasticity. Both hyperelasticity models are based on Eqs. (48), (39), (50) and (51), with \(\kappa = 0\). For both hyperelasticity models, the ZSS is based on Eq. (53). The fiber directions are based on Eq. (55). Table 1 shows the material properties for the MJBS, and Table 2 shows the material properties for the hyperelasticity models. We are working with nondimensional numbers. We note that for the hyperelasticity models, the Poisson’s ratio can be seen as

$$\begin{aligned} \nu&= \frac{3 \kappa _\mathrm {B} - \mu }{2\left( 3 \kappa _\mathrm {B} + \mu \right) }. \end{aligned}$$
(67)
Table 3 2D tests with a beam. Overall mesh orthogonality for the initial mesh and meshes after relaxation with the neo-Hookean model (“NH”) and fiber-reinforced hyperelasticity (“FR”)

5.1 2D tests with a beam: translation, rotation and bending

Figure 5 shows the problem setup. There are three deformation patterns: translation, rotation and bending. We use the material properties (MJBS1, NH1, FR1) for two layers of elements on each side of the beam, and the material properties (MJBS2, NH2, FR2) for the rest of the mesh.

Figure 6 shows the initial quadratic NURBS mesh \(\mathbf {x}_0\). The number of elements and control points are 3220 and 3626. For the numerical integration, \(4{\times }4\) quadrature points are used. We do not use mesh relaxation with the MJBS. Figure 7 shows the mesh after the relaxation. Because the relaxations are based on different material models, the two meshes are slightly different. In both cases the mesh-line orthogonality is improved with the relaxation. Table 3 shows the overall mesh-orthogonality statistics in the whole domain, for the initial mesh and meshes after relaxation.

The translation, rotation and bending take place in 500 steps. The number of iterations per step (see Sect. 4.2) is 6, with \(\left[ \tilde{\alpha }^i\right] = \left[ 0.01, 0.04, 0.16, 1, 1, 1\right] \). We note that for the MJBS we have only one iteration per step. Figures 8, 9 and 10 show the mesh at the end of the translation, rotation and bending, respectively. For all the deformation patterns, the MJBS and fiber-reinforced hyperelasticity result in a better mesh than the neo-Hookean model does. Comparing the MJBS and fiber-reinforced hyperelasticity, we see that with the MJBS, distortion is more localized, close to the beam, while with the fiber-reinforced hyperelasticity, it spreads more to regions not close to the beam. Tables 4, 5 and 6 show, at the maximum translation, rotation and bending, the overall mesh-orthogonality statistics in the whole domain.

Table 4 2D tests with a beam. Overall mesh orthogonality at the maximum translation, with the MJBS, neo-Hookean model (“NH”) and fiber-reinforced hyperelasticity (“FR”)
Table 5 2D tests with a beam. Overall mesh orthogonality at the maximum rotation, with the MJBS, neo-Hookean model (“NH”) and fiber-reinforced hyperelasticity (“FR”)
Table 6 2D tests with a beam

5.2 2D tests with a rectangular domain undergoing compression and expansion

Figure 11 shows the rectangular domain. The mesh first undergoes compression, then expansion. We use the material properties (MJBS2, NH3, FR3) for all the elements. Even though the domain is rectangular, we intentionally use a mesh with non-orthogonal mesh lines to see the effect of the relaxation.

Fig. 11
figure 11

2D tests with a rectangular domain undergoing compression and expansion. Domain in its initial (red), compressed (green) and expanded (gold) states. (Color figure online)

Figure 12 shows the initial quadratic NURBS mesh \(\mathbf {x}_0\). The number of elements and control points are 2600 and 2928. For the numerical integration, \(4{\times }4\) quadrature points are used. We do not use mesh relaxation with the MJBS. Figure 13 shows the mesh after the relaxation. Again, with both models, the mesh-line orthogonality is improved. At points where three patches meet, it is impossible to have orthogonality, the angle between the mesh lines becomes close to \(2\pi /3\), and that is the best we can expect. Table 7 shows the overall mesh-orthogonality statistics in the whole domain, for the initial mesh and meshes after relaxation.

Fig. 12
figure 12

2D tests with a rectangular domain undergoing compression and expansion. The initial mesh \(\mathbf {x}_0\)

Fig. 13
figure 13

2D tests with a rectangular domain undergoing compression and expansion. Mesh after the relaxation. Neo-Hookean model (top) and fiber-reinforced hyperelasticity (bottom)

Fig. 14
figure 14

2D tests with a rectangular domain undergoing compression. MJBS (top), neo-Hookean model (middle) and fiber-reinforced hyperelasticity (bottom). Frame in every second position is the zoomed view

Fig. 15
figure 15

2D tests with a rectangular domain undergoing expansion. MJBS (top), neo-Hookean model (middle) and fiber-reinforced hyperelasticity (bottom)

Table 7 2D tests with a rectangular domain undergoing compression and expansion

The compression takes place in 250 steps, and the expansion in 500 steps beyond that. The number of iterations per step is 6, with \(\left[ \tilde{\alpha }^i\right] = \left[ 0.01, 0.04, 0.16, 1, 1, 1\right] \). We note that for the MJBS we have only one iteration per step. Figures 14 and 15 show the mesh at the end of the compression and expansion, respectively. In all three cases the mesh quality is reasonably good. When we look closer, we see that the neo-Hookean model and fiber-reinforced hyperelasticity give smoothness across patch boundaries, which is because of targeting mesh-line orthogonality. Tables 8 and 9 show, at the maximum compression and expansion, the overall mesh-orthogonality statistics in the whole domain.

Table 8 2D tests with a rectangular domain
Table 9 2D tests with a rectangular domain

5.3 3D tests with a square block undergoing torsion

Figure 16 shows the box-shaped domain containing the block and the block in its initial and twisted states. The block, with one end fixed centrally on one of the box surfaces, extends halfway through the box. The opposite end of the block undergoes a \(90^\circ \) rotation about its own center. This motion defines the prescribed boundary positions in computing the rest of the mesh positions in the box. We use the material properties (MJBS1, NH1, FR1) for two layers of elements around the block, and the material properties (MJBS2, NH2, FR2) for the rest of the mesh.

Fig. 16
figure 16

3D tests with a square block undergoing torsion. Domain containing the block and the block in its initial (red) and twisted (green) states

Fig. 17
figure 17

3D tests with a square block undergoing torsion. The initial mesh \(\mathbf {x}_0\)

Fig. 18
figure 18

3D tests with a square block undergoing torsion. Mesh after the relaxation. Neo-Hookean model (top) and fiber-reinforced hyperelasticity (bottom)

Figure 17 shows the initial quadratic NURBS mesh \(\mathbf {x}_0\). The number of elements and control points are 136,000 and 167,728. For the numerical integration, \(4{\times }4{\times }4\) quadrature points are used. We do not use mesh relaxation with the MJBS. Figure 18 shows the mesh after the relaxation. Table 10 shows the overall mesh-orthogonality statistics in the whole domain, for the initial mesh and meshes after relaxation.

Table 10 3D tests with a square block undergoing torsion

The torsion takes place in 500 steps. The number of iterations per step is 3, with \(\left[ \tilde{\alpha }^i\right] = \left[ 1, 1, 1\right] \). We note that for the MJBS we have only one iteration per step. Figure 19 shows the portion of the initial mesh \(\mathbf {x}_0\) used in visualizing the deformed states. Because of the symmetry of the mesh, we will visualize only half of the NURBS patches in that portion. Figure 20 shows the NURBS patches at the end of the torsion. Table 11 shows, at the maximum torsion, the overall mesh-orthogonality statistics in the whole domain. Overall, the behavior tends to be the same as what we observed in the 2D cases.

Fig. 19
figure 19

3D tests with a square block undergoing torsion. The portion of the initial mesh \(\mathbf {x}_0\) used in visualizing the deformed states

Fig. 20
figure 20

3D tests with a square block undergoing torsion. MJBS (top), neo-Hookean model (middle) and fiber-reinforced hyperelasticity (bottom). The right frame is the zoomed view

Table 11 3D tests with a square block undergoing torsion

6 Concluding remarks

We have introduced a low-distortion mesh moving method based on fiber-reinforced hyperelasticity and optimized ZSS. A good mesh moving method is essential in computation of FSI and MBI problems with moving-mesh methods, which enable mesh-resolution control near the interfaces and consequently high-resolution representation of the boundary layers. The mesh moving method, developed targeting isogeometric discretization, is also applicable to finite element discretization. With the large-deformation mechanics equations, we can expect to have a unique mesh associated with each step of the boundary or interface motion. With the fibers placed in multiple directions, the element is stiffened in those directions for the purpose of reducing the distortion during the mesh deformation. The ZSS is optimized by seeking orthogonality of the parametric directions, by mesh relaxation, and by making the ZSS time-dependent as needed. We conducted both 2D and 3D test computations with isogeometric discretization to demonstrate how the mesh moving method performs. The computations show that the method improves the quality of the initial mesh coming from the mesh generation, giving us a better starting mesh for the mesh motion, and reduces the element distortion experienced during the motion.