FrontISTR  6.0.0
Large-scale structural analysis program with finit element method
m_fstr_residual Module Reference

This module provides function to calculate residual of nodal force. More...

Functions/Subroutines

subroutine, public fstr_update_ndforce (cstep, hecMESH, hecMAT, fstrSOLID, conMAT)
 
subroutine, public fstr_update_ndforce_mpc (hecMESH, B)
 
subroutine, public fstr_update_ndforce_spc (cstep, hecMESH, fstrSOLID, B)
 
subroutine, public fstr_update_reaction_spc (cstep, hecMESH, fstrSOLID)
 Set fstrSOLIDREACTION at constrained DOFs using current fstrSOLIDQFORCE. Constrained DOFs are enumerated from BOUNDARY_ngrp_*, and (when present) VELOCITY_ngrp_* / ACCELERATION_ngrp_* with non-initial type. This subroutine must be called after fstr_UpdateNewton so that REACTION reflects the converged internal nodal force of the current (sub)step. More...
 
subroutine fstr_calc_residual_vector (hecMESH, hecMAT, fstrSOLID, ctime, tincr, iter, cstep, dtime, fstrPARAM)
 \breaf This subroutine calculate residual vector More...
 
subroutine fstr_calc_residual_vector_with_x (hecMESH, hecMAT, fstrSOLID, ctime, tincr, iter, cstep, dtime, fstrPARAM)
 \breaf This subroutine calculate residual vector More...
 
real(kind=kreal) function fstr_get_energy (force, displacement, hecMESH)
 Calculate magnitude of a real vector. More...
 
subroutine, public fstr_assemble_residual_contact (hecMAT, hecLagMAT, conMAT, hecMESH, resid_vec, nresid)
 Assemble contact residual vector (hecMATB + conMATB + Lagrange) into a single vector. More...
 
real(kind=kreal) function, public fstr_get_potential (cstep, hecMESH, hecMAT, fstrSOLID, ptype)
 
real(kind=kreal) function fstr_get_potential_with_x (cstep, hecMESH, hecMAT, fstrSOLID, ptype)
 
subroutine plot_potential_graph (cstep, hecMESH, hecMAT, fstrSOLID, fstrPARAM, restrt_step_num, sub_step, ctime, dtime, iter, tincr)
 

Detailed Description

This module provides function to calculate residual of nodal force.

Function/Subroutine Documentation

◆ fstr_assemble_residual_contact()

subroutine, public m_fstr_residual::fstr_assemble_residual_contact ( type(hecmwst_matrix), intent(in)  hecMAT,
type(hecmwst_matrix_lagrange), intent(in)  hecLagMAT,
type(hecmwst_matrix), intent(in)  conMAT,
type(hecmwst_local_mesh), intent(in)  hecMESH,
real(kind=kreal), dimension(:), intent(out)  resid_vec,
integer(kind=kint), intent(out)  nresid 
)

Assemble contact residual vector (hecMATB + conMATB + Lagrange) into a single vector.

conMAT holds the contact contribution on its own partition boundary, so it has to be summed across subdomains before being added to hecMATB.

Definition at line 304 of file fstr_Residual.f90.

Here is the caller graph for this function:

◆ fstr_calc_residual_vector()

subroutine m_fstr_residual::fstr_calc_residual_vector ( type (hecmwst_local_mesh)  hecMESH,
type (hecmwst_matrix)  hecMAT,
type (fstr_solid)  fstrSOLID,
real(kind=kreal), intent(in)  ctime,
real(kind=kreal), intent(in)  tincr,
integer(kind=kint)  iter,
integer, intent(in)  cstep,
real(kind=kreal), intent(in)  dtime,
type (fstr_param)  fstrPARAM 
)

\breaf This subroutine calculate residual vector

Parameters
[in]cstepcurrent loading step
hecmeshhecmw mesh
hecmathecmw matrix
fstrsolidfstr_solid
[in]ctimecurrent time
[in]dtimetime increment
fstrparamtype fstr_param

Definition at line 215 of file fstr_Residual.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fstr_calc_residual_vector_with_x()

subroutine m_fstr_residual::fstr_calc_residual_vector_with_x ( type (hecmwst_local_mesh)  hecMESH,
type (hecmwst_matrix)  hecMAT,
type (fstr_solid)  fstrSOLID,
real(kind=kreal), intent(in)  ctime,
real(kind=kreal), intent(in)  tincr,
integer(kind=kint)  iter,
integer, intent(in)  cstep,
real(kind=kreal), intent(in)  dtime,
type (fstr_param)  fstrPARAM 
)

\breaf This subroutine calculate residual vector

Parameters
[in]cstepcurrent loading step
hecmeshhecmw mesh
hecmathecmw matrix
fstrsolidfstr_solid
[in]ctimecurrent time
[in]dtimetime increment
fstrparamtype fstr_param

Definition at line 246 of file fstr_Residual.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fstr_get_energy()

real(kind=kreal) function m_fstr_residual::fstr_get_energy ( real(kind=kreal), dimension(:), intent(in)  force,
real(kind=kreal), dimension(:), intent(in)  displacement,
type(hecmwst_local_mesh), intent(in)  hecMESH 
)

Calculate magnitude of a real vector.

Parameters
[in]hecmeshmesh information

Definition at line 291 of file fstr_Residual.f90.

◆ fstr_get_potential()

real(kind=kreal) function, public m_fstr_residual::fstr_get_potential ( integer(kind=kint), intent(in)  cstep,
type(hecmwst_local_mesh), intent(in)  hecMESH,
type(hecmwst_matrix), intent(inout)  hecMAT,
type(fstr_solid), intent(inout)  fstrSOLID,
integer(kind=kint), intent(in)  ptype 
)
Parameters
[in]cstepcurrent step
[in]hecmeshmesh information
[in,out]hecmatlinear equation, its right side modified here
[in,out]fstrsolidwe need boundary conditions of curr step

Definition at line 341 of file fstr_Residual.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fstr_get_potential_with_x()

real(kind=kreal) function m_fstr_residual::fstr_get_potential_with_x ( integer(kind=kint), intent(in)  cstep,
type(hecmwst_local_mesh), intent(in)  hecMESH,
type(hecmwst_matrix), intent(inout)  hecMAT,
type(fstr_solid), intent(inout)  fstrSOLID,
integer(kind=kint), intent(in)  ptype 
)
Parameters
[in]cstepcurrent step
[in]hecmeshmesh information
[in,out]hecmatlinear equation, its right side modified here
[in,out]fstrsolidwe need boundary conditions of curr step

Definition at line 407 of file fstr_Residual.f90.

Here is the call graph for this function:

◆ fstr_update_ndforce()

subroutine, public m_fstr_residual::fstr_update_ndforce ( integer(kind=kint), intent(in)  cstep,
type(hecmwst_local_mesh), intent(in)  hecMESH,
type(hecmwst_matrix), intent(inout)  hecMAT,
type(fstr_solid), intent(inout)  fstrSOLID,
type(hecmwst_matrix), intent(inout), optional  conMAT 
)
Parameters
[in]cstepIn this subroutine, nodal force arising from prescribed displacement constraints are cleared and nodal force residual is calculated. Those constraints considered here includes:
  1. nodal displacement
  2. equation (or mpc)
[in]cstepcurrent step
[in]hecmeshmesh information
[in,out]hecmatlinear equation, its right side modified here
[in,out]fstrsolidwe need boundary conditions of curr step

Definition at line 22 of file fstr_Residual.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fstr_update_ndforce_mpc()

subroutine, public m_fstr_residual::fstr_update_ndforce_mpc ( type(hecmwst_local_mesh), intent(in)  hecMESH,
real(kind=kreal), dimension(:), intent(inout)  B 
)
Parameters
[in]hecmeshmesh information
[in,out]bright hand side

Definition at line 65 of file fstr_Residual.f90.

Here is the caller graph for this function:

◆ fstr_update_ndforce_spc()

subroutine, public m_fstr_residual::fstr_update_ndforce_spc ( integer(kind=kint), intent(in)  cstep,
type(hecmwst_local_mesh), intent(in)  hecMESH,
type(fstr_solid), intent(in)  fstrSOLID,
real(kind=kreal), dimension(:), intent(inout)  B 
)
Parameters
[in]cstepcurrent step
[in]hecmeshmesh information
[in]fstrsolidwe need boundary conditions of curr step
[in,out]bright hand side

Definition at line 95 of file fstr_Residual.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fstr_update_reaction_spc()

subroutine, public m_fstr_residual::fstr_update_reaction_spc ( integer(kind=kint), intent(in)  cstep,
type(hecmwst_local_mesh), intent(in)  hecMESH,
type(fstr_solid), intent(in)  fstrSOLID 
)

Set fstrSOLIDREACTION at constrained DOFs using current fstrSOLIDQFORCE. Constrained DOFs are enumerated from BOUNDARY_ngrp_*, and (when present) VELOCITY_ngrp_* / ACCELERATION_ngrp_* with non-initial type. This subroutine must be called after fstr_UpdateNewton so that REACTION reflects the converged internal nodal force of the current (sub)step.

Parameters
[in]cstepcurrent step
[in]hecmeshmesh information
[in]fstrsolidconstraints and QFORCE

Definition at line 135 of file fstr_Residual.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ plot_potential_graph()

subroutine m_fstr_residual::plot_potential_graph ( integer, intent(in)  cstep,
type (hecmwst_local_mesh)  hecMESH,
type (hecmwst_matrix)  hecMAT,
type (fstr_solid)  fstrSOLID,
type (fstr_param)  fstrPARAM,
integer(kind=kint)  restrt_step_num,
integer, intent(in)  sub_step,
real(kind=kreal), intent(in)  ctime,
real(kind=kreal), intent(in)  dtime,
integer(kind=kint)  iter,
real(kind=kreal)  tincr 
)
Parameters
[in]cstepcurrent loading step
hecmeshhecmw mesh
hecmathecmw matrix
fstrsolidfstr_solid
[in]sub_stepsubstep number of current loading step
[in]ctimecurrent time
[in]dtimetime increment
fstrparamtype fstr_param

Definition at line 450 of file fstr_Residual.f90.

Here is the call graph for this function: