SIFEL/MEFEL/SRC/sequent.cpp File Reference

#include <string.h>
#include <limits.h>
#include <math.h>
#include <float.h>
#include "sequent.h"
#include "global.h"
#include "matrix.h"
#include "vector.h"
#include "gtopology.h"
#include "mathem.h"
#include "element.h"
#include "elemhead.h"
#include "intpoints.h"

Go to the source code of this file.

Functions

void adjacip (void)
 creates list of adjacent integration points
void dist (long ipp, long ri, long ci, long max_nadjip, vector &coord, long *adjelel, long &nae, double rlim)
 computes distances of adjacent integration points closer than given limit
long give_max_adjacip ()
 returns estimated number of adjacent integration points
void in_dist (long ipp, long ri, long ci, vector &coord, long *adjelel, long &nae, double rlim)
 computes number of adjacent integration points closer than given limit
void ipcoord (long eid, long ipp, long ri, long ci, vector &ipcoord)
 function computes coordinates of the given integration point
void newadjelel (long *adjelelback, long *adjelel, long &nae, long &nnae, long *treatedel, long &nte)
 creates list of adjacent elements
void newnadjelel (long ipp, long *adjelelback, long *adjelel, long &nae, long &nnae)
 computes number of non-eliminated adjacent elements
void reallocate (long *&array, long req_size, long &capacity)
 reallocates memory for onedimensional array of long
long restore_adjacip ()
 restores list of adjacent integration points
void restore_adjacip_bin (FILE *aux)
 restores list of adjacent integration points in a binary file
void restore_adjacip_txt (FILE *aux)
 restores list of adjacent integration points in a text file
void save_adjacip ()
 saves list of adjacent integration points
void save_adjacip_bin (FILE *aux)
 saves list of adjacent integration points in a binary file
void save_adjacip_txt (FILE *aux)
 saves list of adjacent integration points in a text file

Function Documentation

void adjacip ( void   ) 

creates list of adjacent integration points

Function creates list of adjacent integration points and their distances. Results are stored in object Mt (class mechtop):

  • Mt->nadjip[i] - number of adjacent integration points to the i-th integration point
  • Mt->adjip[i] - array of numbers of adjacent integration points to the i-th integration point
  • Mt->dist[i] - array of distances of adjacent integration points to the i-th integration point
    Returns:
    The function does not return anything.
    Created by JK, Modified by TKo

Definition at line 32 of file sequent.cpp.

References gtopology::adjelel, mechtop::adjip, dist(), mechtop::dist, mechtop::elements, mechtop::give_nb(), mechtop::give_nip(), mechmat::givenonlocid(), Gtm, intpoints::hmt, in_dist(), mechmat::ip, ipcoord(), element::ipp, memset(), Mm, Mt, gtopology::nadjelel, mechtop::nadjip, gtopology::ne, newadjelel(), newnadjelel(), mechmat::nonlocradius(), Out, reallocate(), time, and mechmat::tnip.

Referenced by mefel_init(), metr_init(), pmefel_init(), and pmetr_init().

void dist ( long  ipp,
long  ri,
long  ci,
long  max_nadjip,
vector coord,
long *  adjelel,
long &  nae,
double  rlim 
)

computes distances of adjacent integration points closer than given limit

Function computes distances of integration points which are closer to required integration point (ipp) than rlim.

Function is used in adjacip.

Parameters:
ipp - integration point pointer
ri,ci - row and column indices
max_nadjip - maximum number of adjacent integration points
coord - coordinates of one of integration points
adjelel - array of adjacent elements
nae - number of adjacent elements
rlim - limit distance
Returns:
The function does not return anything.

Created by JK,

Definition at line 747 of file sequent.cpp.

References mechtop::adjip, mechtop::dist, mechtop::elements, mechtop::give_nip(), intpoints::hmt, mechmat::ip, ipcoord(), element::ipp, length(), Mm, Mt, and mechtop::nadjip.

Referenced by adjacip(), least_square::adjap_assembling(), cemhydmat::chkfloc(), cemhydmat::chksph(), closest_node(), cemhydmat::drawfloc(), cemhydmat::maketemp(), and whereispoint_outpoint().

long give_max_adjacip (  ) 

returns estimated number of adjacent integration points

Function estimates maximum number of adjacent integration points.

Return values:
Function returns estimated maximum number of adjacent integration points.

Created by Tomas Koudelka 8.2008

Definition at line 470 of file sequent.cpp.

References mechtop::elements, mechtop::give_area(), mechtop::give_dimension(), mechtop::give_length(), mechtop::give_tnip(), mechtop::give_volume(), mechmat::givenonlocid(), intpoints::hmt, mechmat::ip, element::ipp, length(), long(), M_PI, Mm, Mt, mechtop::ne, mechmat::nonlocradius(), and print_err().

void in_dist ( long  ipp,
long  ri,
long  ci,
vector coord,
long *  adjelel,
long &  nae,
double  rlim 
)

computes number of adjacent integration points closer than given limit

Function computes number of integration points which are closer to required integration point (ipp) than rlim.

Function is used in adjacip.

Parameters:
ipp - integration point pointer
ri,ci - row and column indices
coord - coordinates of one of integration points
adjelel - array of adjacent elements
nae - number of adjacent elements
rlim - limit distance
Returns:
The function does not return anything.

Created by JK,

Definition at line 696 of file sequent.cpp.

References mechtop::elements, mechtop::give_nip(), intpoints::hmt, mechmat::ip, ipcoord(), element::ipp, length(), Mm, Mt, and mechtop::nadjip.

Referenced by adjacip().

void ipcoord ( long  eid,
long  ipp,
long  ri,
long  ci,
vector ipcoord 
)

function computes coordinates of the given integration point

Function returns coordinates of integration point (ipp) on element (eid).

Function is used in adjacip.

Parameters:
eid - element id
ipp - integration point pointer
ri,ci - row and column indices
ipcoord - array containing coordinates of integration point (output)
Returns:
The function returns coordinates in the parameter ipcoord.

Created by JK,

Definition at line 796 of file sequent.cpp.

References Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar3d, bar3d, mechtop::give_elem_type(), quadhex::ipcoord(), linhex::ipcoord(), quadtet::ipcoord(), lintet::ipcoord(), planeelemrotlq::ipcoord(), planeelemqq::ipcoord(), planeelemlq::ipcoord(), planeelemrotlt::ipcoord(), planeelemqt::ipcoord(), planeelemlt::ipcoord(), axisymqq::ipcoord(), axisymlq::ipcoord(), axisymlt::ipcoord(), barel3d::ipcoord(), Lhex, linearhex, lineartet, Ltet, Mt, Pelq, Pelt, Peqq, Peqt, Perlq, Perlt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, print_err(), Qhex, Qtet, quadrhex, and quadrtet.

Referenced by adjacip(), dist(), mechtop::give_ipcoord_elem(), elastortomat::give_transf_mat(), in_dist(), elastortomat::matstiff(), elemoutm::print_stra(), elemoutm::print_stre(), write_gid_elem_type_scalar(), and write_gid_elem_type_tensor().

void newadjelel ( long *  adjelelback,
long *  adjelel,
long &  nae,
long &  nnae,
long *  treatedel,
long &  nte 
)

creates list of adjacent elements

Function creates list of adjacent elements to required element. Function is used in function adjacip.

Parameters:
adjelelback - auxiliary array of adjacent elements
adjelel - array of adjacent elements
nae - number of adjacent elements
nnae - new number of adjacent elements
treatedel - array of treated elements
nte - number of treated elements
Returns:
The function does not return anything.

Created by JK,

Definition at line 628 of file sequent.cpp.

References gtopology::adjelel, Gtm, and gtopology::nadjelel.

Referenced by adjacip().

void newnadjelel ( long  ipp,
long *  adjelelback,
long *  adjelel,
long &  nae,
long &  nnae 
)

computes number of non-eliminated adjacent elements

Function calculates number of non-eliminated adjacent elements. Function is used in function adjacip.

Parameters:
ipp - integration point pointer
adjelelback - auxiliary array of numbers of adjacent elements
adjelel - array of numbers of adjacent elements
nae - number of adjacent elements
nnae - new number of adjacent elements
Returns:
The function does not return anything.

Created by JK,

Definition at line 587 of file sequent.cpp.

References Gtm, and gtopology::nadjelel.

Referenced by adjacip().

void reallocate ( long *&  array,
long  req_size,
long &  capacity 
)

reallocates memory for onedimensional array of long

Function performs "smart" allocation and reallocation of memory for array of long integer values.

Parameters:
array - pointer to array which should be allocated
req_size - required size of array which should be allocated
capacity - maximum size of allocated array in history
Returns:
The function does not return anything.

Created by Tomas Koudelka 8.2008

Definition at line 557 of file sequent.cpp.

Referenced by adjacip().

long restore_adjacip (  ) 

restores list of adjacent integration points

The function restores adjacent integration points on the elements. The process is controlled by the hdb controller.

Return values:
0 - restorage has not been performed
1 - successfull restorage

Created by Tomas Koudelka, 2008

Definition at line 286 of file sequent.cpp.

References FNAMELEN, probdesc::hdbcont, hdbcontr::hdbfmtr, hdbcontr::hdbnamer, hdbr_multiple, hdbr_nonloc, hdbr_single, hdbrs_multiple, hdbrs_nonloc, hdbrs_single, hdbcontr::hdbtype, Mp, print_err(), restore_adjacip_bin(), restore_adjacip_txt(), and text.

Referenced by mefel_init(), metr_init(), pmefel_init(), and pmetr_init().

void restore_adjacip_bin ( FILE *  aux  ) 

restores list of adjacent integration points in a binary file

The function restores adjacent integration points on the elements from the binary file.

Parameters:
aux - pointer to the opened file
Returns:
The function does not return anything.

Created by Tomas Koudelka, 2008

Definition at line 429 of file sequent.cpp.

References mechtop::adjip, mechtop::dist, memset(), Mespr, Mm, Mt, mechtop::nadjip, print_err(), and mechmat::tnip.

Referenced by restore_adjacip().

void restore_adjacip_txt ( FILE *  aux  ) 

restores list of adjacent integration points in a text file

The function restores adjacent integration points on the elements from the text file.

Parameters:
aux - pointer to the opened file
Returns:
The function does not return anything.

Created by Tomas Koudelka, 2008

Definition at line 389 of file sequent.cpp.

References mechtop::adjip, mechtop::dist, memset(), Mespr, Mm, Mt, mechtop::nadjip, print_err(), and mechmat::tnip.

Referenced by restore_adjacip().

void save_adjacip (  ) 

saves list of adjacent integration points

The function saves adjacent integration points on the elements. The backup is controlled by the hdb controller.

Returns:
The function does not return anything.

Created by Tomas Koudelka, 2008

Definition at line 240 of file sequent.cpp.

References FNAMELEN, probdesc::hdbcont, hdbcontr::hdbfmts, hdbcontr::hdbnames, hdbrs_multiple, hdbrs_nonloc, hdbrs_single, hdbs_multiple, hdbs_nonloc, hdbs_single, hdbcontr::hdbtype, Mp, print_err(), save_adjacip_bin(), save_adjacip_txt(), and text.

Referenced by mefel_init(), metr_init(), pmefel_init(), and pmetr_init().

void save_adjacip_bin ( FILE *  aux  ) 

saves list of adjacent integration points in a binary file

The function saves adjacent integration points on the elements in the binary format.

Parameters:
aux - pointer to the opened file
Returns:
The function does not return anything.

Created by Tomas Koudelka, 2008

Definition at line 360 of file sequent.cpp.

References mechtop::adjip, mechtop::dist, Mespr, Mm, Mt, mechtop::nadjip, and mechmat::tnip.

Referenced by save_adjacip().

void save_adjacip_txt ( FILE *  aux  ) 

saves list of adjacent integration points in a text file

The function saves adjacent integration points on the elements in the text format.

Parameters:
aux - pointer to the opened file
Returns:
The function does not return anything.

Created by Tomas Koudelka, 2008

Definition at line 334 of file sequent.cpp.

References mechtop::adjip, mechtop::dist, Mespr, Mm, Mt, mechtop::nadjip, and mechmat::tnip.

Referenced by save_adjacip().


Generated by  doxygen 1.6.2