Particles handled by AcuTrace

K. Yamamoto
K. Yamamoto Altair Community Member
edited September 25 in Community Q&A

Hi, experts.

I have the following two questions.

(1) In AcuTrace, the volume of a particle is used to calculate the external force acting on the particle, but what values of the flow velocity and pressure (calculated by AcuSolve) are used for calculating the particle behavior? For example, when a particle exists on some meshes near a wall with very fine meshes, the flow velocity and pressure for simulating the particle behavior are the average value obtained from some meshes where the particle exists?

(2) The AcuTrace manual (https://2022.help.altair.com/2022.3/hwcfdsolvers/acusolve/topics/acusolve/finite_mass_acutrace_com_ref.htm) says that the default value of constant_gravity is 0, so the users must set it by themselves, but I can't find the constant_gravity item in the *.tin file that was output after setting up AcuTrace for a model that has been AcuSolve run. How do I set it?

Best Answer

  • acupro
    acupro
    Altair Employee
    edited September 18 Answer ✓

    1 - The flow forces acting on the particle are local to the current position of the particle - consistent with the current local flowfield.  That is for particles with mass.  Massless particles simply follow the flowfield.

    2- You would need to manually edit the .tin file in the FINITE_MASS command to add the constant_gravity parameter and vector/setting - like

    constant_gravity = { 0.0, -9.80665, 0.0 }

Answers

  • acupro
    acupro
    Altair Employee
    edited September 18 Answer ✓

    1 - The flow forces acting on the particle are local to the current position of the particle - consistent with the current local flowfield.  That is for particles with mass.  Massless particles simply follow the flowfield.

    2- You would need to manually edit the .tin file in the FINITE_MASS command to add the constant_gravity parameter and vector/setting - like

    constant_gravity = { 0.0, -9.80665, 0.0 }

  • K. Yamamoto
    K. Yamamoto Altair Community Member
    edited September 11

    1 - The flow forces acting on the particle are local to the current position of the particle - consistent with the current local flowfield.  That is for particles with mass.  Massless particles simply follow the flowfield.

    2- You would need to manually edit the .tin file in the FINITE_MASS command to add the constant_gravity parameter and vector/setting - like

    constant_gravity = { 0.0, -9.80665, 0.0 }

    Thank you for your reply.

    1- Your information is helpful for me. I am conducting the simulation of particles with mass. For my understanding, your explanation means that the mesh flow field is directly applied to the particle behavior. So how is it calculated when the particle diameter is much larger than the mesh size? I suspect that the following (A- or B-) is the possible case for the interrelationship between particles and mesh size, but is any of them correct? If none of them are correct, I would like you to explain the relationship between the mesh and particle sizes, and how to apply the flow field to the particles.

    A- The flow field of the mesh where the particle's center coordinates are located is applied, meaning that the particle is essentially treated as a "point" with no volume.
    B- In the first place, it is not assumed that the particle will be larger than the mesh in AcuTrace. In other words, the mesh size needs to be set to be sufficiently larger than the particle size.

    2- I can't find the "constant_gravity" item in "FINITE_MASS" in the *.tin file. For reference, attached the contents of *.tin file. Could you teach me the reason for this. Is there any mode settings required to set "constant_gravity"?

     

    <Contents of *.tin file>

    # +----------------------------------------------------------------------+
    # |                 This is AcuTrace input file.                         |
    # |                                                                      |
    # |                Generated by: HyperworksCFD 2022.2                    |
    # +----------------------------------------------------------------------+


    # +----------------------------------------------------------------------+
    # | Equation                                                             |
    # +----------------------------------------------------------------------+

    EQUATION {
        particle                            = finite_mass
    }

    # +----------------------------------------------------------------------+
    # | Flow Field                                                           |
    # +----------------------------------------------------------------------+

    FLOW_FIELD {
        flow_field_type                     = dynamic
        from_problem                        = "Tube"
        from_directory                      = "/work/gg38/g38000/ACUSOLVE/240825_U400+240_tryH850-p/ACUSIM.DIR"
        from_run                            = 1
        mesh_motion                         = on
    }

    # +----------------------------------------------------------------------+
    # | Auto Solution Strategy                                               |
    # +----------------------------------------------------------------------+

    AUTO_SOLUTION_STRATEGY {
        max_time                            = 50
        max_segments                        = 10000
    }

    # +----------------------------------------------------------------------+
    # | Finite Mass                                                          |
    # +----------------------------------------------------------------------+

    FINITE_MASS {
        drag_law_type                       = standard_drag_law
        drag_coefficient_model              = standard
        drag_coefficient                    = 0
        viscosity_model                     = constant
        constant_viscosity                  = 0.001
        density_model                       = constant
        constant_density                    = 1000
        wall_type                           = reflect
    }

    # +----------------------------------------------------------------------+
    # | Trace Output                                                         |
    # +----------------------------------------------------------------------+

    TRACE_OUTPUT {
        active                              = on
        output_frequency                    = 1
        flow_state_data                     = off
        flow_gradient_data                  = off
    }

    # +----------------------------------------------------------------------+
    # | Time Cut Output                                                      |
    # +----------------------------------------------------------------------+

    TIME_CUT_OUTPUT {
        active                              = on
        time_cut_type                       = "time_interval"
        time_cut_start_time                 = 0
        time_cut_stop_time                  = 50
        time_cut_interval                   = 0.01
        flow_state_data                     = off
        flow_gradient_data                  = off
    }

    # +----------------------------------------------------------------------+
    # | Seeds                                                                |
    # +----------------------------------------------------------------------+

    PARTICLE_SEED( "p_1.6" ) {
        seed_coordinates                    = Read("/work/gg38/g38000/ACUSOLVE/240825_U400+240_tryH850-p/Tube_0.seeds")
        time                                = 0
        time_type                           = emission_times
        emission_time_type                  = time_interval
        emission_start_time                 = 1
        emission_stop_time                  = 1.01
        emission_time_interval              = 0.01
        constant_density                    = 1600
        constant_radius                     = 0.00015
    }

    # +----------------------------------------------------------------------+
    # | Seeds                                                                |
    # +----------------------------------------------------------------------+

    PARTICLE_SEED( "p_1.0" ) {
        seed_coordinates                    = Read("/work/gg38/g38000/ACUSOLVE/240825_U400+240_tryH850-p/Tube_1.seeds")
        time                                = 0
        time_type                           = emission_times
        emission_time_type                  = time_interval
        emission_start_time                 = 1
        emission_stop_time                  = 1.01
        emission_time_interval              = 0.01
        constant_density                    = 1000
        constant_radius                     = 0.00015
    }

    # +----------------------------------------------------------------------+
    # | Finite Mass                                                          |
    # +----------------------------------------------------------------------+

    FINITE_MASS_BOUNDARY_CONDITION( "Stopping Wall" ) {
        wall_type                           = stop
        constant_wall_et                    = 1
        constant_wall_en                    = 1
        particle_surface                    = "Slip"
    }

    # +----------------------------------------------------------------------+
    # | Finite Mass                                                          |
    # +----------------------------------------------------------------------+

    FINITE_MASS_BOUNDARY_CONDITION( "Stopping Wall 1" ) {
        wall_type                           = stop
        constant_wall_et                    = 1
        constant_wall_en                    = 1
        particle_surface                    = "Outlet"
    }

    # +----------------------------------------------------------------------+
    # | Finite Mass                                                          |
    # +----------------------------------------------------------------------+

    FINITE_MASS_BOUNDARY_CONDITION( "Reflecting Wall" ) {
        wall_type                           = reflect
        constant_wall_et                    = 1
        constant_wall_en                    = 1
        particle_surface                    = "Wall"
    }

    # +----------------------------------------------------------------------+
    # | Run                                                                  |
    # +----------------------------------------------------------------------+

    RUN {
    }

  • acupro
    acupro
    Altair Employee
    edited September 11

    Thank you for your reply.

    1- Your information is helpful for me. I am conducting the simulation of particles with mass. For my understanding, your explanation means that the mesh flow field is directly applied to the particle behavior. So how is it calculated when the particle diameter is much larger than the mesh size? I suspect that the following (A- or B-) is the possible case for the interrelationship between particles and mesh size, but is any of them correct? If none of them are correct, I would like you to explain the relationship between the mesh and particle sizes, and how to apply the flow field to the particles.

    A- The flow field of the mesh where the particle's center coordinates are located is applied, meaning that the particle is essentially treated as a "point" with no volume.
    B- In the first place, it is not assumed that the particle will be larger than the mesh in AcuTrace. In other words, the mesh size needs to be set to be sufficiently larger than the particle size.

    2- I can't find the "constant_gravity" item in "FINITE_MASS" in the *.tin file. For reference, attached the contents of *.tin file. Could you teach me the reason for this. Is there any mode settings required to set "constant_gravity"?

     

    <Contents of *.tin file>

    # +----------------------------------------------------------------------+
    # |                 This is AcuTrace input file.                         |
    # |                                                                      |
    # |                Generated by: HyperworksCFD 2022.2                    |
    # +----------------------------------------------------------------------+


    # +----------------------------------------------------------------------+
    # | Equation                                                             |
    # +----------------------------------------------------------------------+

    EQUATION {
        particle                            = finite_mass
    }

    # +----------------------------------------------------------------------+
    # | Flow Field                                                           |
    # +----------------------------------------------------------------------+

    FLOW_FIELD {
        flow_field_type                     = dynamic
        from_problem                        = "Tube"
        from_directory                      = "/work/gg38/g38000/ACUSOLVE/240825_U400+240_tryH850-p/ACUSIM.DIR"
        from_run                            = 1
        mesh_motion                         = on
    }

    # +----------------------------------------------------------------------+
    # | Auto Solution Strategy                                               |
    # +----------------------------------------------------------------------+

    AUTO_SOLUTION_STRATEGY {
        max_time                            = 50
        max_segments                        = 10000
    }

    # +----------------------------------------------------------------------+
    # | Finite Mass                                                          |
    # +----------------------------------------------------------------------+

    FINITE_MASS {
        drag_law_type                       = standard_drag_law
        drag_coefficient_model              = standard
        drag_coefficient                    = 0
        viscosity_model                     = constant
        constant_viscosity                  = 0.001
        density_model                       = constant
        constant_density                    = 1000
        wall_type                           = reflect
    }

    # +----------------------------------------------------------------------+
    # | Trace Output                                                         |
    # +----------------------------------------------------------------------+

    TRACE_OUTPUT {
        active                              = on
        output_frequency                    = 1
        flow_state_data                     = off
        flow_gradient_data                  = off
    }

    # +----------------------------------------------------------------------+
    # | Time Cut Output                                                      |
    # +----------------------------------------------------------------------+

    TIME_CUT_OUTPUT {
        active                              = on
        time_cut_type                       = "time_interval"
        time_cut_start_time                 = 0
        time_cut_stop_time                  = 50
        time_cut_interval                   = 0.01
        flow_state_data                     = off
        flow_gradient_data                  = off
    }

    # +----------------------------------------------------------------------+
    # | Seeds                                                                |
    # +----------------------------------------------------------------------+

    PARTICLE_SEED( "p_1.6" ) {
        seed_coordinates                    = Read("/work/gg38/g38000/ACUSOLVE/240825_U400+240_tryH850-p/Tube_0.seeds")
        time                                = 0
        time_type                           = emission_times
        emission_time_type                  = time_interval
        emission_start_time                 = 1
        emission_stop_time                  = 1.01
        emission_time_interval              = 0.01
        constant_density                    = 1600
        constant_radius                     = 0.00015
    }

    # +----------------------------------------------------------------------+
    # | Seeds                                                                |
    # +----------------------------------------------------------------------+

    PARTICLE_SEED( "p_1.0" ) {
        seed_coordinates                    = Read("/work/gg38/g38000/ACUSOLVE/240825_U400+240_tryH850-p/Tube_1.seeds")
        time                                = 0
        time_type                           = emission_times
        emission_time_type                  = time_interval
        emission_start_time                 = 1
        emission_stop_time                  = 1.01
        emission_time_interval              = 0.01
        constant_density                    = 1000
        constant_radius                     = 0.00015
    }

    # +----------------------------------------------------------------------+
    # | Finite Mass                                                          |
    # +----------------------------------------------------------------------+

    FINITE_MASS_BOUNDARY_CONDITION( "Stopping Wall" ) {
        wall_type                           = stop
        constant_wall_et                    = 1
        constant_wall_en                    = 1
        particle_surface                    = "Slip"
    }

    # +----------------------------------------------------------------------+
    # | Finite Mass                                                          |
    # +----------------------------------------------------------------------+

    FINITE_MASS_BOUNDARY_CONDITION( "Stopping Wall 1" ) {
        wall_type                           = stop
        constant_wall_et                    = 1
        constant_wall_en                    = 1
        particle_surface                    = "Outlet"
    }

    # +----------------------------------------------------------------------+
    # | Finite Mass                                                          |
    # +----------------------------------------------------------------------+

    FINITE_MASS_BOUNDARY_CONDITION( "Reflecting Wall" ) {
        wall_type                           = reflect
        constant_wall_et                    = 1
        constant_wall_en                    = 1
        particle_surface                    = "Wall"
    }

    # +----------------------------------------------------------------------+
    # | Run                                                                  |
    # +----------------------------------------------------------------------+

    RUN {
    }

    You would add the constant_gravity parameter into that existing FINITE_MASS you show above - just insert another line.

    For AcuTrace, the particles need to be much smaller than the mesh element size.  For larger particles you probably need to move to EDEM.

  • K. Yamamoto
    K. Yamamoto Altair Community Member
    edited September 18

    You would add the constant_gravity parameter into that existing FINITE_MASS you show above - just insert another line.

    For AcuTrace, the particles need to be much smaller than the mesh element size.  For larger particles you probably need to move to EDEM.

    (1) Are there any guidelines or standards for particle size relative to mesh size in AcuTrace?

    (2) When the particle size is as large as the mesh size or is larger than the mesh size in AcuTrace, what adverse effects will occur in the simulation analysis?

  • acupro
    acupro
    Altair Employee
    edited September 25

    (1) Are there any guidelines or standards for particle size relative to mesh size in AcuTrace?

    (2) When the particle size is as large as the mesh size or is larger than the mesh size in AcuTrace, what adverse effects will occur in the simulation analysis?

    For AcuTrace the particle diameter should be much smaller than the mesh element size.