Files
LaGriT/docs/pages/docs/commands/MASSAGE2.md
2025-12-17 11:00:57 +08:00

2.7 KiB
Executable File

title, tags
title tags
MASSAGE2 massage2, refinement

MASSAGE2


MASSAGE2 iteratively calls MASSAGE to refine adaptively according to a gradient field. Thus, the bisection_length option must be a field.

SYNTAX

massage2 / infile_name / min_scale / bisection_length / merge_length / toldamage / &
[tolroughness] /[ifirst,ilast,istride]/ [nosmooth**]/[norecon**] &
[strictmergelength ]/[ignoremats ]/[lite] /[checkaxy]/[semiexclusive]/[exclusive]

   

infile_name is a file which contains a set of LaGriT infile commands that calculates the gradient field based on the distance field. In other words, the gradient field is a function of the distance field. It is necessary to have this file when using this routine, as the field must be updated after each refinement iteration. See sample infile below.

min_scale is the minimum length scale of the mesh (the minimum desired edge length).

See MASSAGE for a full description of all command parameters.

Creating user function infile for MASSAGE2

This file contains a set of LaGriT commands which calculate the gradient field for refinement based on the distance field.

A file could be written like this:

  #user_function.mlgi
  #An example of calculating the gradient field F 
  # as a linear function of the distance field D
  
  #Define some coefficients for the function
  define / COEF_A /
  define / COEF_B /

  #Formula F = COEF_A times D + COEF_B
  #First remove any distance field that exists and recompute the distance field
  cmo / DELATT / mo_sink / dfield
  compute / distance_field / mo_sink / mo_src / dfield

  #Calculate F
  math / multiply / mo_sink / ref_field / 1,0,0 / mo_sink / dfield /COEF_A
  math / add / mo_sink / ref_field / 1,0,0 / mo_sink / ref_field /COEF_B

  finish

The user does not have to put a floor value for the gradient field in this case (unlike in MASSAGE), as MASSAGE2 will calculate the floor value automatically. However, the minimum length scale 'min_scale' must be specified.

The user must also create a node-based attribute for the gradient field before calling MASSAGE2. In the example above, attribute 'ref_field' must already exist in the mesh object. The name of the field must also match the 'field_name' argument in the MASSAGE2 command.

EXAMPLES

massage2 / user_function.mlgi / 0.1 / ref_field / 1.e-5 / 1.e-5 / strictmergelength

Call massage refinement with commands defined in the infile user_function.mlgi using attribute ref_field.