Advanced Multi-Physics (AMP)
On-Line Documentation
Public Member Functions | Protected Attributes | List of all members
AMP::MechanicsManufacturedSolution::MMSTrigonometric Class Reference

#include <MechanicsManufacturedSolutions.h>

Inheritance diagram for AMP::MechanicsManufacturedSolution::MMSTrigonometric:
Inheritance graph
[legend]

Public Member Functions

std::vector< double > getExactSolutions (const std::vector< double > &xyz) const
 
std::vector< double > getExactSolutions (double x, double y, double z) const
 
double getExactSolutionX (const std::vector< double > &xyz) const
 
double getExactSolutionX (double x, double y, double z) const override
 
double getExactSolutionY (const std::vector< double > &xyz) const
 
double getExactSolutionY (double, double y, double z) const override
 
double getExactSolutionZ (const std::vector< double > &xyz) const
 
double getExactSolutionZ (double, double y, double z) const override
 
std::vector< double > getForcingTerms (const std::vector< double > &xyz) const
 
std::vector< double > getForcingTerms (double x, double y, double z) const
 
double getForcingTermX (const std::vector< double > &xyz) const
 
double getForcingTermX (double x, double y, double z) const override
 
double getForcingTermY (const std::vector< double > &xyz) const
 
double getForcingTermY (double x, double y, double z) const override
 
double getForcingTermZ (const std::vector< double > &xyz) const
 
double getForcingTermZ (double x, double y, double z) const override
 
const std::string & getName () const
 
std::vector< double > getStressTensor (const std::vector< double > &xyz) const
 
std::vector< double > getStressTensor (double x, double y, double z) const override
 
 MMSTrigonometric (double E=0.0, double nu=0.0)
 
void multX (double M)
 
void multXYZ (double M)
 
void multY (double M)
 
void multZ (double M)
 
void scaleX (double L)
 
void scaleXYZ (double L)
 
void scaleY (double L)
 
void scaleZ (double L)
 
void set_axx (double v)
 
void set_axy (double v)
 
void set_axz (double v)
 
void set_ayx (double v)
 
void set_ayy (double v)
 
void set_ayz (double v)
 
void set_azx (double v)
 
void set_azy (double v)
 
void set_azz (double v)
 
void set_bxx (double v)
 
void set_bxy (double v)
 
void set_bxz (double v)
 
void set_byx (double v)
 
void set_byy (double v)
 
void set_byz (double v)
 
void set_bzx (double v)
 
void set_bzy (double v)
 
void set_bzz (double v)
 
void setPoissonsRatio (double PR)
 
void setYoungsModulus (double YM)
 

Protected Attributes

double axx
 
double axy
 
double axz
 
double ayx
 
double ayy
 
double ayz
 
double azx
 
double azy
 
double azz
 
double bxx
 
double bxy
 
double bxz
 
double byx
 
double byy
 
double byz
 
double bzx
 
double bzy
 
double bzz
 
double E
 Young's modulus.
 
double Lx
 
double Ly
 
double Lz
 scaling factors
 
double Mx
 
double My
 
double Mz
 multiplying factors
 
std::string name
 name/type of mechanics manufactured solution
 
double nu
 Poisson's ratio.
 

Detailed Description

The class MMSTrigonometric implements the following manufactured solution for the displacement along axis \( i \) \( \displaystyle{ u_i = M_i \prod_{j \in \{x,y,z\}} \sin\left[ \frac{\pi}{2} \left(a_{ij} \frac{j}{L_j} + b_{ij}\right) \right] \qquad \forall i \in \{x, y, z\} } \)

The c++ code below is a direct copy and paste from the output of the matlab script I provided

This manufactured solution should allow you to monitor the convergence rates for any order of polynomial approximation

Definition at line 261 of file MechanicsManufacturedSolutions.h.

Constructor & Destructor Documentation

◆ MMSTrigonometric()

AMP::MechanicsManufacturedSolution::MMSTrigonometric::MMSTrigonometric ( double  E = 0.0,
double  nu = 0.0 
)
inline

Member Function Documentation

◆ getExactSolutions() [1/2]

std::vector< double > AMP::MechanicsManufacturedSolution::MMS::getExactSolutions ( const std::vector< double > &  xyz) const
inlineinherited

◆ getExactSolutions() [2/2]

std::vector< double > AMP::MechanicsManufacturedSolution::MMS::getExactSolutions ( double  x,
double  y,
double  z 
) const
inlineinherited

All the following points to the method described above and is provided for conveniance only You may add as many as you want For instance if you want to pass a Point directly as an argument or if you want to pass vectors of integration point (then do it by constant reference!!)

Definition at line 131 of file MechanicsManufacturedSolutions.h.

References AMP::MechanicsManufacturedSolution::MMS::getExactSolutionX(), AMP::MechanicsManufacturedSolution::MMS::getExactSolutionY(), and AMP::MechanicsManufacturedSolution::MMS::getExactSolutionZ().

Referenced by AMP::MechanicsManufacturedSolution::MMS::getExactSolutions().

◆ getExactSolutionX() [1/2]

double AMP::MechanicsManufacturedSolution::MMS::getExactSolutionX ( const std::vector< double > &  xyz) const
inlineinherited

◆ getExactSolutionX() [2/2]

double AMP::MechanicsManufacturedSolution::MMSTrigonometric::getExactSolutionX ( double  x,
double  y,
double  z 
) const
overridevirtual

These are overridden in derived classes and constains exact solutions and forcing terms for the displacement along the i-axis

Implements AMP::MechanicsManufacturedSolution::MMS.

◆ getExactSolutionY() [1/2]

double AMP::MechanicsManufacturedSolution::MMS::getExactSolutionY ( const std::vector< double > &  xyz) const
inlineinherited

◆ getExactSolutionY() [2/2]

double AMP::MechanicsManufacturedSolution::MMSTrigonometric::getExactSolutionY ( double  ,
double  y,
double  z 
) const
overridevirtual

◆ getExactSolutionZ() [1/2]

double AMP::MechanicsManufacturedSolution::MMS::getExactSolutionZ ( const std::vector< double > &  xyz) const
inlineinherited

◆ getExactSolutionZ() [2/2]

double AMP::MechanicsManufacturedSolution::MMSTrigonometric::getExactSolutionZ ( double  ,
double  y,
double  z 
) const
overridevirtual

◆ getForcingTerms() [1/2]

std::vector< double > AMP::MechanicsManufacturedSolution::MMS::getForcingTerms ( const std::vector< double > &  xyz) const
inlineinherited

◆ getForcingTerms() [2/2]

std::vector< double > AMP::MechanicsManufacturedSolution::MMS::getForcingTerms ( double  x,
double  y,
double  z 
) const
inlineinherited

◆ getForcingTermX() [1/2]

double AMP::MechanicsManufacturedSolution::MMS::getForcingTermX ( const std::vector< double > &  xyz) const
inlineinherited

◆ getForcingTermX() [2/2]

double AMP::MechanicsManufacturedSolution::MMSTrigonometric::getForcingTermX ( double  x,
double  y,
double  z 
) const
overridevirtual

◆ getForcingTermY() [1/2]

double AMP::MechanicsManufacturedSolution::MMS::getForcingTermY ( const std::vector< double > &  xyz) const
inlineinherited

◆ getForcingTermY() [2/2]

double AMP::MechanicsManufacturedSolution::MMSTrigonometric::getForcingTermY ( double  x,
double  y,
double  z 
) const
overridevirtual

◆ getForcingTermZ() [1/2]

double AMP::MechanicsManufacturedSolution::MMS::getForcingTermZ ( const std::vector< double > &  xyz) const
inlineinherited

◆ getForcingTermZ() [2/2]

double AMP::MechanicsManufacturedSolution::MMSTrigonometric::getForcingTermZ ( double  x,
double  y,
double  z 
) const
overridevirtual

◆ getName()

const std::string & AMP::MechanicsManufacturedSolution::MMS::getName ( ) const
inlineinherited

Accessor to the name/type of mechanics manufactured solution that have been instancied

Definition at line 98 of file MechanicsManufacturedSolutions.h.

References AMP::MechanicsManufacturedSolution::MMS::name.

◆ getStressTensor() [1/2]

std::vector< double > AMP::MechanicsManufacturedSolution::MMS::getStressTensor ( const std::vector< double > &  xyz) const
inlineinherited

◆ getStressTensor() [2/2]

std::vector< double > AMP::MechanicsManufacturedSolution::MMSTrigonometric::getStressTensor ( double  x,
double  y,
double  z 
) const
overridevirtual

This is needed for traction boundary conditions The function will return the stress tensor \( \sigma \) under the form of a vector \( (\sigma_{xx}, \sigma_{yy}, \sigma_{zz}, \sigma_{yz}, \sigma_{xz}, \sigma_{xy})^T \)

Implements AMP::MechanicsManufacturedSolution::MMS.

◆ multX()

void AMP::MechanicsManufacturedSolution::MMS::multX ( double  M)
inlineinherited

◆ multXYZ()

void AMP::MechanicsManufacturedSolution::MMS::multXYZ ( double  M)
inlineinherited

◆ multY()

void AMP::MechanicsManufacturedSolution::MMS::multY ( double  M)
inlineinherited

◆ multZ()

void AMP::MechanicsManufacturedSolution::MMS::multZ ( double  M)
inlineinherited

◆ scaleX()

void AMP::MechanicsManufacturedSolution::MMS::scaleX ( double  L)
inlineinherited

Mutators to set scaling factor \( L_{i} \) and multiplying factor \( M_{i} \) for displacement along axes \( i \in \{x,y,z\} \) Defaults values are \( L_{i} = 1 \) and \( M_{i} = 1 \)

Definition at line 51 of file MechanicsManufacturedSolutions.h.

References AMP::MechanicsManufacturedSolution::MMS::Lx.

◆ scaleXYZ()

void AMP::MechanicsManufacturedSolution::MMS::scaleXYZ ( double  L)
inlineinherited

◆ scaleY()

void AMP::MechanicsManufacturedSolution::MMS::scaleY ( double  L)
inlineinherited

◆ scaleZ()

void AMP::MechanicsManufacturedSolution::MMS::scaleZ ( double  L)
inlineinherited

◆ set_axx()

void AMP::MechanicsManufacturedSolution::MMS::set_axx ( double  v)
inlineinherited

Mutators for the coefficients \( a_{ij} \) and \( b_{ij} \) for all \( (i,j) \in \{x,y,z\} \) Default values are \( a_{ij} = 0 \) and \( b_{ij} = 1 \) By setting one of the \( b_{ij} \) to zero you impose \( u_i = 0 \)

Definition at line 76 of file MechanicsManufacturedSolutions.h.

References AMP::MechanicsManufacturedSolution::MMS::axx.

◆ set_axy()

void AMP::MechanicsManufacturedSolution::MMS::set_axy ( double  v)
inlineinherited

◆ set_axz()

void AMP::MechanicsManufacturedSolution::MMS::set_axz ( double  v)
inlineinherited

◆ set_ayx()

void AMP::MechanicsManufacturedSolution::MMS::set_ayx ( double  v)
inlineinherited

◆ set_ayy()

void AMP::MechanicsManufacturedSolution::MMS::set_ayy ( double  v)
inlineinherited

◆ set_ayz()

void AMP::MechanicsManufacturedSolution::MMS::set_ayz ( double  v)
inlineinherited

◆ set_azx()

void AMP::MechanicsManufacturedSolution::MMS::set_azx ( double  v)
inlineinherited

◆ set_azy()

void AMP::MechanicsManufacturedSolution::MMS::set_azy ( double  v)
inlineinherited

◆ set_azz()

void AMP::MechanicsManufacturedSolution::MMS::set_azz ( double  v)
inlineinherited

◆ set_bxx()

void AMP::MechanicsManufacturedSolution::MMS::set_bxx ( double  v)
inlineinherited

◆ set_bxy()

void AMP::MechanicsManufacturedSolution::MMS::set_bxy ( double  v)
inlineinherited

◆ set_bxz()

void AMP::MechanicsManufacturedSolution::MMS::set_bxz ( double  v)
inlineinherited

◆ set_byx()

void AMP::MechanicsManufacturedSolution::MMS::set_byx ( double  v)
inlineinherited

◆ set_byy()

void AMP::MechanicsManufacturedSolution::MMS::set_byy ( double  v)
inlineinherited

◆ set_byz()

void AMP::MechanicsManufacturedSolution::MMS::set_byz ( double  v)
inlineinherited

◆ set_bzx()

void AMP::MechanicsManufacturedSolution::MMS::set_bzx ( double  v)
inlineinherited

◆ set_bzy()

void AMP::MechanicsManufacturedSolution::MMS::set_bzy ( double  v)
inlineinherited

◆ set_bzz()

void AMP::MechanicsManufacturedSolution::MMS::set_bzz ( double  v)
inlineinherited

◆ setPoissonsRatio()

void AMP::MechanicsManufacturedSolution::MMS::setPoissonsRatio ( double  PR)
inlineinherited

Mutator for Poissons modulus nu

Definition at line 43 of file MechanicsManufacturedSolutions.h.

References AMP::MechanicsManufacturedSolution::MMS::nu.

◆ setYoungsModulus()

void AMP::MechanicsManufacturedSolution::MMS::setYoungsModulus ( double  YM)
inlineinherited

Mutator for Youngs modulus E

Definition at line 38 of file MechanicsManufacturedSolutions.h.

References AMP::MechanicsManufacturedSolution::MMS::E.

Member Data Documentation

◆ axx

double AMP::MechanicsManufacturedSolution::MMS::axx
protectedinherited

a few extra coefficients :) Please refer to the derived classes to see how these coefficients are used

Definition at line 212 of file MechanicsManufacturedSolutions.h.

Referenced by AMP::MechanicsManufacturedSolution::MMS::set_axx().

◆ axy

double AMP::MechanicsManufacturedSolution::MMS::axy
protectedinherited

◆ axz

double AMP::MechanicsManufacturedSolution::MMS::axz
protectedinherited

◆ ayx

double AMP::MechanicsManufacturedSolution::MMS::ayx
protectedinherited

◆ ayy

double AMP::MechanicsManufacturedSolution::MMS::ayy
protectedinherited

◆ ayz

double AMP::MechanicsManufacturedSolution::MMS::ayz
protectedinherited

◆ azx

double AMP::MechanicsManufacturedSolution::MMS::azx
protectedinherited

◆ azy

double AMP::MechanicsManufacturedSolution::MMS::azy
protectedinherited

◆ azz

double AMP::MechanicsManufacturedSolution::MMS::azz
protectedinherited

◆ bxx

double AMP::MechanicsManufacturedSolution::MMS::bxx
protectedinherited

◆ bxy

double AMP::MechanicsManufacturedSolution::MMS::bxy
protectedinherited

◆ bxz

double AMP::MechanicsManufacturedSolution::MMS::bxz
protectedinherited

◆ byx

double AMP::MechanicsManufacturedSolution::MMS::byx
protectedinherited

◆ byy

double AMP::MechanicsManufacturedSolution::MMS::byy
protectedinherited

◆ byz

double AMP::MechanicsManufacturedSolution::MMS::byz
protectedinherited

◆ bzx

double AMP::MechanicsManufacturedSolution::MMS::bzx
protectedinherited

◆ bzy

double AMP::MechanicsManufacturedSolution::MMS::bzy
protectedinherited

◆ bzz

double AMP::MechanicsManufacturedSolution::MMS::bzz
protectedinherited

◆ E

double AMP::MechanicsManufacturedSolution::MMS::E
protectedinherited

Young's modulus.

Definition at line 204 of file MechanicsManufacturedSolutions.h.

Referenced by AMP::MechanicsManufacturedSolution::MMS::setYoungsModulus().

◆ Lx

double AMP::MechanicsManufacturedSolution::MMS::Lx
protectedinherited

◆ Ly

double AMP::MechanicsManufacturedSolution::MMS::Ly
protectedinherited

◆ Lz

double AMP::MechanicsManufacturedSolution::MMS::Lz
protectedinherited

◆ Mx

double AMP::MechanicsManufacturedSolution::MMS::Mx
protectedinherited

◆ My

double AMP::MechanicsManufacturedSolution::MMS::My
protectedinherited

◆ Mz

double AMP::MechanicsManufacturedSolution::MMS::Mz
protectedinherited

◆ name

std::string AMP::MechanicsManufacturedSolution::MMS::name
protectedinherited

◆ nu

double AMP::MechanicsManufacturedSolution::MMS::nu
protectedinherited

Poisson's ratio.

Definition at line 205 of file MechanicsManufacturedSolutions.h.

Referenced by AMP::MechanicsManufacturedSolution::MMS::setPoissonsRatio().


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



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:43.
Comments on this page