MFEM v4.9.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::LogarithmicSpacingFunction Class Reference

Logarithmic spacing function, uniform in log base 10 by default. More...

#include <spacing.hpp>

Inheritance diagram for mfem::LogarithmicSpacingFunction:
[legend]
Collaboration diagram for mfem::LogarithmicSpacingFunction:
[legend]

Public Member Functions

 LogarithmicSpacingFunction (int n, bool r, bool sym=false, real_t b=10.0)
 
void SetSize (int size) override
 Sets the size, or number of intervals (elements).
 
real_t Eval (int p) const override
 Returns the width of interval p (between 0 and Size() - 1).
 
void Print (std::ostream &os) const override
 Prints all the data necessary to define the spacing function and its current state (size and other parameters).
 
SpacingType GetSpacingType () const override
 Returns the spacing type, indicating the derived class.
 
int NumIntParameters () const override
 Returns the number of integer parameters defining the spacing function.
 
int NumDoubleParameters () const override
 Returns the number of double parameters defining the spacing function.
 
void GetIntParameters (Array< int > &p) const override
 
void GetDoubleParameters (Vector &p) const override
 
bool Nested () const override
 Returns true if the spacing function is nested during refinement.
 
std::unique_ptr< SpacingFunctionClone () const override
 Returns a clone (deep-copy) of this spacing function.
 
- Public Member Functions inherited from mfem::SpacingFunction
 SpacingFunction (int n, bool r=false, bool s=false)
 Base class constructor.
 
int Size () const
 Returns the size, or number of intervals (elements).
 
void SetReverse (bool r)
 Sets the property that determines whether the spacing is reversed.
 
bool GetReverse () const
 
void Flip ()
 
void EvalAll (Vector &s) const
 Returns the width of all intervals, resizing s to Size().
 
virtual void ScaleParameters (real_t a)
 Scales parameters by the factor a associated with Size().
 
void FullyCoarsen ()
 
virtual ~SpacingFunction ()=default
 

Additional Inherited Members

- Protected Attributes inherited from mfem::SpacingFunction
int n
 Size, or number of intervals (elements)
 
bool reverse
 Whether to reverse the spacing.
 
bool scale
 Whether to scale parameters in ScaleParameters.
 

Detailed Description

Logarithmic spacing function, uniform in log base 10 by default.

The log base can be changed as an input parameter. Decreasing it makes the distribution more uniform, whereas increasing it makes the spacing vary more. Another input option is a flag to make the distribution symmetric (default is non-symmetric). There are no scaled parameters. This function is nested.

Definition at line 546 of file spacing.hpp.

Constructor & Destructor Documentation

◆ LogarithmicSpacingFunction()

mfem::LogarithmicSpacingFunction::LogarithmicSpacingFunction ( int n,
bool r,
bool sym = false,
real_t b = 10.0 )
inline

Definition at line 549 of file spacing.hpp.

Member Function Documentation

◆ Clone()

std::unique_ptr< SpacingFunction > mfem::LogarithmicSpacingFunction::Clone ( ) const
inlineoverridevirtual

Returns a clone (deep-copy) of this spacing function.

Reimplemented from mfem::SpacingFunction.

Definition at line 595 of file spacing.hpp.

◆ Eval()

real_t mfem::LogarithmicSpacingFunction::Eval ( int p) const
inlineoverridevirtual

Returns the width of interval p (between 0 and Size() - 1).

Implements mfem::SpacingFunction.

Definition at line 561 of file spacing.hpp.

◆ GetDoubleParameters()

void mfem::LogarithmicSpacingFunction::GetDoubleParameters ( Vector & p) const
inlineoverridevirtual

Returns the array of double parameters defining the spacing function.

Parameters
[out]pArray of double parameters, resized appropriately.

Implements mfem::SpacingFunction.

Definition at line 587 of file spacing.hpp.

◆ GetIntParameters()

void mfem::LogarithmicSpacingFunction::GetIntParameters ( Array< int > & p) const
inlineoverridevirtual

Returns the array of integer parameters defining the spacing function.

Parameters
[out]pArray of integer parameters, resized appropriately.

Implements mfem::SpacingFunction.

Definition at line 579 of file spacing.hpp.

◆ GetSpacingType()

SpacingType mfem::LogarithmicSpacingFunction::GetSpacingType ( ) const
inlineoverridevirtual

Returns the spacing type, indicating the derived class.

Implements mfem::SpacingFunction.

Definition at line 574 of file spacing.hpp.

◆ Nested()

bool mfem::LogarithmicSpacingFunction::Nested ( ) const
inlineoverridevirtual

Returns true if the spacing function is nested during refinement.

Implements mfem::SpacingFunction.

Definition at line 593 of file spacing.hpp.

◆ NumDoubleParameters()

int mfem::LogarithmicSpacingFunction::NumDoubleParameters ( ) const
inlineoverridevirtual

Returns the number of double parameters defining the spacing function.

Implements mfem::SpacingFunction.

Definition at line 577 of file spacing.hpp.

◆ NumIntParameters()

int mfem::LogarithmicSpacingFunction::NumIntParameters ( ) const
inlineoverridevirtual

Returns the number of integer parameters defining the spacing function.

Implements mfem::SpacingFunction.

Definition at line 576 of file spacing.hpp.

◆ Print()

void mfem::LogarithmicSpacingFunction::Print ( std::ostream & os) const
inlineoverridevirtual

Prints all the data necessary to define the spacing function and its current state (size and other parameters).

The format is generally SpacingType numIntParam numDoubleParam {int params} {double params}

Implements mfem::SpacingFunction.

Definition at line 567 of file spacing.hpp.

◆ SetSize()

void mfem::LogarithmicSpacingFunction::SetSize ( int size)
inlineoverridevirtual

Sets the size, or number of intervals (elements).

Implements mfem::SpacingFunction.

Definition at line 555 of file spacing.hpp.


The documentation for this class was generated from the following files: